PHP-php订单号生成方案

发布于 2017-02-18 16:21:06 字数 64 浏览 1386 评论 5

在高并发的支付平台上偶尔的订单重复带来很麻烦的事情,大家有没有好的避免重复的订单号生成算法(以固定长度的数字串)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

泛泛之交 2017-09-17 11:20:47

其实用“年+月+日+下单时间的秒数+毫秒+下单的顺序号或者是用户ID”就完全能够保证订单号的唯一性。
例如:

订单号:2012021331990528
2012年02月13日3199(下单时间:00:53:19)052(毫秒)8为下单顺序号

灵芸 2017-08-22 20:14:54

我刚解答了另外一位的高并发ID重复的问题,彻底的解决办法是一个while判断该订单号是否存在数据库中(缓存),如果不存在,那么继续

浮生未歇 2017-06-28 11:10:11

生成订单的时候 标示符 + 年 + 月 + 日 + 用户id + (n-用户id)位的随机数

订单 为 18 位

比如 D + 12 +01 + 12 + 312 + (11 - 3)位随机数

晚风撩人 2017-04-10 17:29:04

可以把用户ID加入到订单号序列中。
由于用户会不断增加,所以此位数长度不定,会导致订单号长度不一致。
可以对用户ID进行运算,使用一定的算法进行处理,最终变成一个四位长度左右的字符串。这样可以将重复的机率再降低一些。具体能降到多少,暂时没法计算。

虐人心 2017-03-31 02:40:14

我觉得可以用microtime()获得微秒值加上客户端ip生成md5值作为订单号

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文