PHP生成唯一订单号

利用PHP生成唯一订单号,可用作于商城下单,以及和支付宝等第三方支付进行对接

先来一段测试代码:

$i = 10;
while($i) {
    $no = build_order_no();
    $uniqid = uniqid();
 
    var_dump("$non$uniqidn");      // file_put_contents('test.log', "$non$uniqidn", FILE_APPEND);
    --$i;
}
 
echo PHP_EOL;

测试结果见:http://3v4l.org/BBQ6m#v5515

来自ECSHOP订单号生成函数:/includes/lib_order.php文件中的get_order_sn()

/**
 * 得到新订单号
 * @return  string
 */
function build_order_no()
{
    /* 选择一个随机的方案 */
    mt_srand((double) microtime() * 1000000);
 
    return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}

原订单号格式为年月日+5位随机数,例如:2012022112345。如果你想改变订单号的生成规则,可对该函数进行修改,我想让订单号改为 “PHPALLY” + 年月日 + 6位随机数字,那么可以这样修改:

/**
 * 得到新订单号
 * @return  string
 */
function build_order_no()
{
    /* 选择一个随机的方案 */
    mt_srand((double) microtime() * 1000000);
 
    /* PHPALLY + 年月日 + 6位随机数 */
    return 'PHPALLY' . date('Ymd') . str_pad(mt_rand(1, 999999), 6, '0', STR_PAD_LEFT);
}