电商网站订单号怎么生成呢?我目前用订单ID来做感觉不行,从1开始这样太不好看了,像淘宝那样的订单ID怎么生成的呢?
电商网站订单号怎么生成呢?我目前用订单ID来做感觉不行,从1开始这样太不好看了,像淘宝那样的订单ID怎么生成的呢?
订单号基本的原则就是不能重复。
我们公司的后台也有订单号,和前面说的差不多,时间精确到毫秒,然后加一个随机数,基本不会重复的。这是一个订单号,2015120320550551513
给你参考下。^_^
简单讲一楼所说,时间戳+随机。
其实,用uuid是一劳永逸的。
http://pecl.php.net/ --->search --->uuid
连时间戳都没有,猜去吧。
在开发购物功能,涉及到支付比如 微信、支付宝,当下单时需要生成一条唯一的订单,需要用到唯一的订单号管理。
/**
* 得到新订单号
* @return string
*/
function get_order_sn()
{
/* 选择一个随机的方案 */
mt_srand((double) microtime() * 1000000);
return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}
/* 插入订单表 */
$error_no = 0;
do
{
$order['order_sn'] = get_order_sn(); //获取新订单号
$GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');
$error_no = $GLOBALS['db']->errno();
if ($error_no > 0 && $error_no != 1062)
{
die($GLOBALS['db']->errorMsg());
}
}
while ($error_no == 1062); //如果是订单号重复则重新提交数据
$new_order_id = $db->insert_id();
$order['order_id'] = $new_order_id;
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
我注意到题主提到:
这是万万不可的!电商平台的订单绝对不能给别人看出规律,更不能按顺序增加。因为对手可能通过订单号的规律就能知道你的日销量这些商业信息,这是非常危险的。
我的方案是:
建议结合实际情况,充分利用时间,随机数,商家ID,会员ID,自增ID这些来组合,根据自身运营特点来制定。