php 生成唯一订单号

时间:2020-04-02 10:40:06   收藏:0   阅读:67
/*获取唯一订单号*/
function order_number($order_header){
    global $redis;
    if(trim_all($order_header)!=""){
         $order_header=trim_all($order_header)."-";
    }
    $time=time();
    $microtime_arr=explode(".",microtime(true));
    $order_microtime=str_pad($microtime_arr[1],4,"0",STR_PAD_LEFT);
    $order_date=date("ymdHis",$time);
    $order_redis_num=rand(0,9999);
    if(REDIS_STATE==1){//如果redis服务器正常开启,则获取redis自增值,最大限度降低订单号重复概率
        $order_redis_num=$redis->incr("order_redis_num:".$order_date.$order_microtime);
        $redis->setTimeout("order_redis_num:".$order_date.$order_microtime, 2); //设置两秒后自动过期,释放内存
    }
    $order_redis_num=str_pad($order_redis_num,4,"0",STR_PAD_LEFT);//支持每毫秒9999次访问,解决重复访问,可根据redis访问情况再增大
    $order_rand=rand(10,99);
    $order_number=$order_header.$order_date.$order_microtime.$order_redis_num.$order_rand;
    return strtoupper($order_number);
}

 

原文:https://www.cnblogs.com/chengfengchi/p/12617759.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!