PHP 商城订单生成 无规则 不通过数据库检查是否是自己系统的订单 可承受高并发

生成时会进行99乘法表计算 所以 长度 在24 到25 位之间  如果长度过短 也可以加个平方啊 开方 之类的。发挥想象力吧 。

    public function create_order(){
        $str = "qwertyuio";
        $len=strlen($str); //字符串长度
        $rand=mt_rand(0,$len-1); //随机在字符串中选一个位置
        $number= mt_rand(0,9); // 0-9 随机一个数字
        $number2= mt_rand(0,9);// 0-9 随机一个数字
        $answer = $number*$number2; // 随机数相乘 获得99乘法表答案
        $answer_len=strlen($answer); // 答案长度
        $mm=microtime(); //时间戳毫秒级
        $msec=substr($mm, 2,8);
        $a= substr($msec,4,3);
        $b= substr($msec,0,5);
        $time = time();
        $time_5 = substr($time, 0,5);
        $time_4 = substr($time, 5,4);
        $time_1 = substr($time, 9);
        return $a.$number.substr($str,$rand,1).$time_5.$rand.$b.$time_4.$answer_len.$number2.$answer.$time_1;
          //   3    1       1                      5      1   5     4          1           1    1-2     1
        //3:$a 时间戳毫秒级 第位取3位  个数是3个
        //4:$number 9*9  个数是1个
        //5:$str 9个字母取随机取一个 个数是1个
        //6-10:时间戳前5位           个数是5个
        //11: $rand 字母在程序中的位置 个数是1个
        //12-16 :$b 时间戳 取5位 个数是5个
        //17-20 时间戳5位到9位  取4个
        //21: $answer_len 9*9 答案长度  取1个
        //23: $number2 9*9 第二位数  取1个
        //24: $answer 9*9 答案  取1-2个
        //25: 时间戳最后一位
    }

    public function order_id_verify($string){
        $str_code = "qwertyuio";
        $letter= substr($string,4,1);
        $letter_location = substr($string,10,1);
        $answer_len = substr($string,20,1);
        $number = substr($string,3,1);
        $number2 = substr($string,21,1);
        $answer = substr($string,22,$answer_len);
        $sys_letter=substr($str_code,$letter_location,1);
        if($sys_letter==$letter){
            $sys_answer=$number*$number2;
            if($sys_answer==$answer){
                return true;
            }else{
                return false;
            }
        }else{
            return false;
        }
    }

长这样 

PHP 商城订单生成 无规则 不通过数据库检查是否是自己系统的订单 可承受高并发_第1张图片

你可能感兴趣的:(PHP 商城订单生成 无规则 不通过数据库检查是否是自己系统的订单 可承受高并发)