电商网站或app使用php生成唯一订单号和生成唯一优惠码

生成唯一订单号:


/**
 * @return string
 *@介绍:生成唯一订单号 1
 * @author  huangpeng
 * @Time 2020/1/3 11:00
 */
function build_order_no(){
    return time().substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
}

/**
 * @return string
 *@介绍:生成唯一订单号2
 * @author  huangpeng
 * @Time 2020/1/3 11:00
 */
function build_order_num(){
    $yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
    $orderSn = $yCode[intval(date('Y')) - 2020] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));
    return $orderSn;
}

php生成唯一优惠码

/**  
 * @param int $no_of_codes//定义一个int类型的参数 用来确定生成多少个优惠码 
 * @param array $exclude_codes_array//定义一个exclude_codes_array类型的数组 
 * @param int $code_length //定义一个code_length的参数来确定优惠码的长度 
 * @return array//返回数组 
 */  
function generate_promotion_code($no_of_codes, $exclude_codes_array = '', $code_length = 4) {  
    $characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";  
    $promotion_codes = array(); //这个数组用来接收生成的优惠码  
    for ($j = 0; $j < $no_of_codes; $j++) {  
        $code = "";  
        for ($i = 0; $i < $code_length; $i++) {  
            $code.= $characters[mt_rand(0, strlen($characters) - 1) ];  
        }  
        //如果生成的4位随机数不再我们定义的$promotion_codes函数里面  
        if (!in_array($code, $promotion_codes)) {  
            if (is_array($exclude_codes_array)) //  
            {  
                if (!in_array($code, $exclude_codes_array)) //排除已经使用的优惠码  
                {  
                    $promotion_codes[$j] = $code;  
                    将生成的新优惠码赋值给promotion_codes数组  
                } else {  
                    $j--;  
                }  
            } else {  
                $promotion_codes[$j] = $code; //将优惠码赋值给数组  
                  
            }  
        } else {  
            $j--;  
        }  
    }  
    return $promotion_codes;  
}  
echo '<h1>Promotion / Discount Codes</h1>';  
echo '<pre>';  
print_r(generate_promotion_code(50, '', 4));  
echo '</pre>';  
本文由37°5【https://www.alvinxiao.comhttps://blog.alvinxiao.com原创,转载请注明来源。请注意原创和打造和谐的网络环境,谢谢! 


分享到: