申通淘寶單號(hào)開(kāi)頭數(shù)字(申通快遞單號(hào)生成規(guī)則詳解)

訂單號(hào)就是您在購(gòu)物網(wǎng)站購(gòu)物后獲得的訂單號(hào),記錄的是購(gòu)物訂單信息。在您需要與購(gòu)物網(wǎng)站進(jìn)行訂單查詢等操作時(shí),需要給購(gòu)物網(wǎng)站提供商家訂單號(hào)。【來(lái)自百度百科】

軟件開(kāi)發(fā)中我們經(jīng)常會(huì)遇到生成訂單號(hào)的業(yè)務(wù)邏輯來(lái)記錄用戶下單、物流、發(fā)票、支付、結(jié)算等信息。生成訂單號(hào)的方式多種多樣。大部分會(huì)參考業(yè)務(wù)需求來(lái)設(shè)計(jì)生成方式,但訂單號(hào)的生成規(guī)則大同小異相差不大。下面給大家總結(jié)介紹幾種訂單號(hào)的生成規(guī)則以供參考。

1、隨機(jī)數(shù)方法。

function gen_order_rand() {
	$strTime 	= str_pad(str_replace(".", "", microtime(true)), 14, "0", STR_PAD_RIGHT);
	$strRand	= strval(mt_rand(10000, 99999));
	return $strTime . $strRand;
}

var_dump(gen_order_rand());
運(yùn)行結(jié)果:
string(19) "1648171258258353703"

2、隨機(jī)數(shù)+uid方法

function gen_order_uid_rand($uid) {
	$strUid		= str_pad(substr(strval($uid), -5), 5, "0", STR_PAD_RIGHT);
	$strTime	= date('ymdHis');
	$strRand	= strval(mt_rand(1000, 9999));
	return $strUid . $strTime . $strRand;
}

$intUid = 1234567890;
var_dump(gen_order_uid_rand($intUid));
運(yùn)行結(jié)果:
string(21) "678902203250120587473"

3、uniqid+crc64方法

function crc64Table()
{
? ? $crc64tab = [];

? ? // ECMA polynomial
? ? $poly64rev = (0xC96C5795 << 32) | 0xD7870F42;

? ? // ISO polynomial
? ? // $poly64rev = (0xD8 << 56);

? ? for ($i = 0; $i < 256; $i++)
? ? {
? ? ? ? for ($part = $i, $bit = 0; $bit < 8; $bit++) {
? ? ? ? ? ? if ($part & 1) {
? ? ? ? ? ? ? ? $part = (($part >> 1) & ~(0x8 << 60)) ^ $poly64rev;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? $part = ($part >> 1) & ~(0x8 << 60);
? ? ? ? ? ? }
? ? ? ? }

?? ? ? $crc64tab[$i] = $part;
? ? }

? ? return $crc64tab;
}

/**
* @param string $string
* @param string $format
* @return mixed
*
* Formats:
*? crc64('php'); // afe4e823e7cef190
*? crc64('php', '0x%x'); // 0xafe4e823e7cef190
*? crc64('php', '0x%X'); // 0xAFE4E823E7CEF190
*? crc64('php', '%d'); // -5772233581471534704 signed int
*? crc64('php', '%u'); // 12674510492238016912 unsigned int
*/
function crc64($string, $format = '%x')
{
? ? static $crc64tab;

? ? if ($crc64tab === null) {
? ? ? ? $crc64tab = crc64Table();
? ? }

? ? $crc = 0;

? ? for ($i = 0; $i < strlen($string); $i++) {
? ? ? ? $crc = $crc64tab[($crc ^ ord($string[$i])) & 0xff] ^ (($crc >> 8) & ~(0xff << 56));
? ? }

? ? return sprintf($format, $crc);
}

//uniqid方法
function gen_order_uuid() {
	$strUuid	= crc64(uniqid(), '%u');
	return $strUuid;
}

var_dump(gen_order_uuid());
運(yùn)行結(jié)果:
string(19) "2559207576599622011"

4、隨機(jī)字符串+crc64方法

function crc64Table()
{
? ? $crc64tab = [];

? ? // ECMA polynomial
? ? $poly64rev = (0xC96C5795 << 32) | 0xD7870F42;

? ? // ISO polynomial
? ? // $poly64rev = (0xD8 << 56);

? ? for ($i = 0; $i < 256; $i++)
? ? {
? ? ? ? for ($part = $i, $bit = 0; $bit < 8; $bit++) {
? ? ? ? ? ? if ($part & 1) {
? ? ? ? ? ? ? ? $part = (($part >> 1) & ~(0x8 << 60)) ^ $poly64rev;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? $part = ($part >> 1) & ~(0x8 << 60);
? ? ? ? ? ? }
? ? ? ? }

?? ? ? $crc64tab[$i] = $part;
? ? }

? ? return $crc64tab;
}

/**
* @param string $string
* @param string $format
* @return mixed
*
* Formats:
*? crc64('php'); // afe4e823e7cef190
*? crc64('php', '0x%x'); // 0xafe4e823e7cef190
*? crc64('php', '0x%X'); // 0xAFE4E823E7CEF190
*? crc64('php', '%d'); // -5772233581471534704 signed int
*? crc64('php', '%u'); // 12674510492238016912 unsigned int
*/
function crc64($string, $format = '%x')
{
? ? static $crc64tab;

? ? if ($crc64tab === null) {
? ? ? ? $crc64tab = crc64Table();
? ? }

? ? $crc = 0;

? ? for ($i = 0; $i < strlen($string); $i++) {
? ? ? ? $crc = $crc64tab[($crc ^ ord($string[$i])) & 0xff] ^ (($crc >> 8) & ~(0xff << 56));
? ? }

? ? return sprintf($format, $crc);
}
//隨機(jī)字符串+crc64方法
function gen_order_randchar() {
	$strChar	= "QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";
	$strRandChar	= substr(str_shuffle($strChar), mt_rand(0, strlen($strChar) - 11), 16);
	$strRandChar	= crc64($strRandChar, '%u');
	return $strRandChar;
}

var_dump(gen_order_randchar());
運(yùn)行結(jié)果:
string(20) "15531636943001169826"

5、Twitter SnowFlake算法方法

composer require youthage/snowflake

require_once 'vendor/autoload.php';

use Ysnowflake\Snowflake;

function gen_order_snowflake() {
	$objSnowflake = new Snowflake();
	return $objSnowflake->nextId();
}

var_dump(gen_order_snowflake());
運(yùn)行結(jié)果:
int(434087018926964736)

感謝大家評(píng)論、點(diǎn)贊、分享

聲明:本文由網(wǎng)站用戶香香發(fā)表,超夢(mèng)電商平臺(tái)僅提供信息存儲(chǔ)服務(wù),版權(quán)歸原作者所有。若發(fā)現(xiàn)本站文章存在版權(quán)問(wèn)題,如發(fā)現(xiàn)文章、圖片等侵權(quán)行為,請(qǐng)聯(lián)系我們刪除。

(0)
上一篇 2023年5月12日 09:04:15
下一篇 2023年5月12日 09:14:18

相關(guān)推薦

發(fā)表回復(fù)

您的電子郵箱地址不會(huì)被公開(kāi)。 必填項(xiàng)已用*標(biāo)注

主站蜘蛛池模板: 666永久视频在线| 中文在线日本免费永久18近| 欧美极品少妇×XXXBBB| 免费观看中文字幕| 中文字幕乱码无线码在线| 日韩精品专区在线影院重磅| 免费观看男男污污ww网站| 菠萝视频在线完整版| 在线毛片免费观看| 一本久久a久久精品亚洲| 欧美11一12周岁a在线观看| 又黄又骚的网站| 18精品久久久无码午夜福利| 大胆gogo高清在线观看| 一区二区三区国产最好的精华液| 最近最好看2019年中文字幕| 亚洲欧洲精品成人久久曰影片| 男人桶女人叽叽| 国产午夜精品理论片| 免费视频www| 大学生情侣在线| xxxx性开放xxxx| 性欧美video在线播放| 中文字幕日韩三级片| 欧美一级中文字幕| 免费A级毛片无码视频| 精品日韩欧美一区二区三区| 四虎国产成人永久精品免费| 亚洲精品一二区| 国产精品大bbwbbwbbw| 丁香六月婷婷综合激情动漫| 樱桃黄高清完整版在线观看| 亚洲成人xxx| 欧美极品少妇无套实战| 亚洲欧美在线精品一区二区| 每日更新在线观看av| 台湾佬中文222vvv娱乐网在线| 被公侵犯肉体中文字幕电影| 国产午夜成人AV在线播放| 香港台湾日本三级纶理在线视| 国内一级黄色片|