导航:首页 > 源码编译 > js订单号生成算法

js订单号生成算法

发布时间:2022-07-14 05:29:08

javaScript 中 var s=“订单号:12345”如何取 到123456

方法很多种,如用split(":"),得到的就是一个以:分割的结果数组

Ⅱ 如何生成订单号比较好


由于我在工作中遇到这个问题,借此与大家分享一下各大电子商务网站订单号的生成方式。



订单号概念

它是您在购物网站购物后获得的订单号,记录的是购物订单信息。


作用

在您需要与购物网站进行订单查询等操作时,需要给购物网站提供商家订单号。


几种下单途径?

  1. web网站下单
  2. 打电话到呼叫中心(CallCenter)下单
  3. 手机wap下单

如果采用单数据库来存储的话,随着订单量的增加,单库的写压力增大,造成数据库服务器性能下降。一般会采用分库来缓解数据库服务器的压力。



那么怎么来进行分库呢?



web来源订单,存入web订单库。
CallCenter来源订单,存入CallCenter订单库。
wap来源订单,存入wap订单库。
最终,将这三种类型的数据库同步到订单主库中。



问题来了,怎么把不同的订单同步到订单主库呢?



电商网站一般利用订单号来作为订单表的主键。因此,我们必须保证订单号不重复,才能将订单安全的同步到订单主库中。


订单命名规定唯一性

这个大家都明白,主要保证订单号不重复。


安全性

订单编号不能透露你公司的真实运营信息,比如你的订单就是流水号的话,那么别人就可以从订单号推测出你公司的整体运营概括了。所以订单编码必须是除了你们公司少部分人外,其他人基本看不懂的。可以参考京东和淘宝的编码规则。


不能使用大规模随机码

因为大规模的随机码随机生成,因为本身就没有意义所以无所谓泄密了。但是事实上这种编码规则在实现上会有很大问题的。随机码满足第二点安全性要求,为了满足唯一性,那就得在生成随机码的时候对比历史数据是否有重复,如果你的订单数量到达了十万次,你每次生成订单编码时就得对比十万条历史数据。


随机码就不能在编码中使用了吗?小规模的随机码是可以使用的,比如2~3位,这种随机码一般都是和流水号等结合使用,主要作用是为了隐藏流水号的真实数据而进行使用的。


防止并发

主要针对编码中有时间的设定。


控制位数

订单号的作用就是便于查询。一般正常使用场景应该是订单出异状或者退货的时候,用户将订单号报给客服,由客服进行查询。所以一般在10~15位为好。目前京东11位,淘宝16位。


怎么保证订单号的唯一性订单号命名规则来生成

比如“业务编码 + 时间戳 + 机器编号[前4位] + 随机4位数 + 毫秒数”。



说明:业务编码(OrderType: Web=1 CallCenter=2 Wap=3) 机器编号(用来表示由那台服务器生成的订单)



伪代码如下:


总结

订单号的生成方案,需要根据目前的订单量而定;因为各种方案都有各自的使用场景。

Ⅲ 淘宝的订单号是怎么生成和设计的呢知道的来讨论下

淘宝的订单号是自然生成的。只要有客户下单后就会自动生成一个订单号。

查看订单号的方法:

1、首先先打开一个浏览器,然后在网络中输入“淘宝网”,然后点击“网络一下”按钮。

Ⅳ 生成订单号,要求是唯一的,如何实现

guid

Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier)

GUID/UUID是通过特定算法产生的一个二进制长度为128位的数字,

在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同,

在公元3400年以前产生的UUID/GUID与任何其他产生过的UUIDs/GUIDs都不相同。

在需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。

GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。

Ⅳ 用JSP如何产生连续的订单号,NO.00001 NO.00002

使用Java+数据库实现

由于确定NO.00001里面有不规则的字母+特殊字符+数字

所有查询出数据库中最后一行数据,并获取编号例如:NO.00099

已知有2个字符一个特殊字符,那么我们把字符串截取掉,把字符、特殊字符和数字分开

Stringstr="NO.00099";
StringtmpW=str.substring(0,2);//NO.
StringtmpN=str.substring(3,str.length());//00099
intnum=Integer.valueOf(tmpN)+1;
Stringtmp_num=num+"";
for(inti=5-tmp_num.length();i>0;i--){
tmp_num="0"+tmp_num;
}
//最终要的结果NO.00100
Stringresult=tmpW+tmp_num;

查询最后一个id的语句

selecttop1idfrom表orderbyiddesc

Ⅵ 如何生成一个这种形式的订单号

DateTime dttime=DateTime.Now;
string str=dttime.Year.ToString()+dttime.Month+dttime.Day;

string sql="select top 1 订单号 from 订单表 order by 订单号 desc";
执行该语句,返回现在数据库中最近一次生成的订单号.

然后对其进行操作:(比如最近一次生成订单号为 str2 )

int ii=Convert.ToInt32(str2.SubString(str2.Lenght-4))+1;
int len=ii.ToString().Length;
string str3="";
switch (len){
case 1:
str3="000"+ii.ToString();
break;
case 2:
str3="00"+ii.ToString();
break;
case 3:
str3="0"+ii.ToString();
break;
}

最后.你当前的订单号就是:
str+=str3;

---------------------

rebinglunlun - 高级魔法师 六级
愿听其详~~

Ⅶ 给个绝对不重复的生成订单号的思路或者逻辑!

多用户的话,简单一点的,可以由用户ID(数字)、时间、随机数组合生成,因为用户ID是唯一的,生成的订单号也就绝对不会重复了。

Ⅷ 怎么用JS或php实现自动生成单据编号(以10+当天日期的格式)

php:
$number
=
"10".date("Ymd",time());
可以得到10开头紧接年月日及时间(到秒)如1020120603
$number
=
"10".date("YmdHis",time());
可以得到10开头紧接年月日及时间(到秒)如1020120603231120
如果怕有重复可以在接一些随机数
$number
.=
rand(1000,9999);

Ⅸ 如何生成唯一订单号

首先,订单号有3个性质:1.唯一性 2.不可推测性 3.效率性

唯一性和不可推测性不用说了,效率性是指不能频繁的去数据库查询以避免重复。
况且满足这些条件的同时订单号还要足够的短。
我在java下定制的订单号生成方式如下:
int r1=(int)(Math.random()*(10));//产生2个0-9的随机数
int r2=(int)(Math.random()*(10));
long now = System.currentTimeMillis();//一个13位的时间戳
String paymentID =String.valueOf(r1)+String.valueOf(r2)+String.valueOf(now);// 订单ID

目前规则来看,两个人在同一微秒提交订单重复的概率为1%
订单效果:251393292999921

望采纳!

阅读全文

与js订单号生成算法相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:577
python员工信息登记表 浏览:375
高中美术pdf 浏览:159
java实现排列 浏览:511
javavector的用法 浏览:980
osi实现加密的三层 浏览:230
大众宝来原厂中控如何安装app 浏览:912
linux内核根文件系统 浏览:241
3d的命令面板不见了 浏览:524
武汉理工大学服务器ip地址 浏览:147
亚马逊云服务器登录 浏览:523
安卓手机如何进行文件处理 浏览:70
mysql执行系统命令 浏览:929
php支持curlhttps 浏览:142
新预算法责任 浏览:443
服务器如何处理5万人同时在线 浏览:249
哈夫曼编码数据压缩 浏览:424
锁定服务器是什么意思 浏览:383
场景检测算法 浏览:616
解压手机软件触屏 浏览:348