zoukankan      html  css  js  c++  java
  • paip.银联支付接口订单号uuid算法

    paip.银联支付接口订单号uuid算法

    这几天给项目接了个银联支付接口,接口订单号uuid算法按文档说明如下:

    在银联支付时,商户提交给银联支付系统的订单号(长度为16 个字节的数字串)前4是自定义的,商户可以根据商户业务的不同,头四位不同。例如ET业务为4000,邮件业务为5000,实物销售业务为6000等。此外订单号的5-9位必须为商户号MerId的最后5位。

    也就是说,共16位,其中5位被占用..有效利用的只能是11位了。。

    而我的项目订单号格式是yyyyMMdd_HHmmssfff,比如20120816_1918011234

    长度达19位,看来在传参时需要转为银联格式的订单号,因为时间要精确到MS,所以最短也是yyMMddHHMMssfff格式,需要15位..

    看来只能使用相对ms数了。我先定一个基准时间,我用2012-01-01 00:00:00.000,然后现在时间减去这个基准时间,得到毫秒总数,先用11位9算了下,可以得到了最大载止时间是 2015-03-03 09:46:39 ,可以循环使用..到头再从0开始..

    然后把这11订单号分成两部分,中间插入商户号MerId的最后5位。。就拼成了符合银联接口标准的订单号了..

    ------得到11位订单号,精确到MS..
       // from 2012.1.1   
            public static string getUUID11(string uuid)
            {
    //20120816_1918011234
                uuid = uuid.Substring(0, 18); 
                DateTime dt1 = new DateTime(2012, 1, 1);
                DateTime dt2 = DateTime.ParseExact(uuid, "yyyyMMdd_HHmmssfff", null);
            //    dt2.Ticks = "634807414811230000";
                TimeSpan ts = dt2 - dt1;
                string ms = ts.TotalMilliseconds.ToString();
                ms = pad0left(ms, 11);
                return ms;
            }

    //计算最大最大载止时间 ,
        private static string test2( )
            {
                string TotalMilliseconds = "99999999999";
                long ticks =long.Parse( TotalMilliseconds) * 10000;
                TimeSpan ts = new TimeSpan(ticks);
                DateTime dt1 = new DateTime(2012, 1, 1);

                DateTime dt2 = dt1.Add(ts);    //{2015-03-03 09:46:39

              
                return "";
            }

  • 相关阅读:
    应用上架前如何知道自己应用的下载地址?
    Multi-line NSAttributedString with truncated text
    Adding AirDrop File Sharing Feature to Your iOS Apps
    Add sharing to your app via UIActivityViewController
    [原]iOS自带社会化分享框架——Social.framework
    xcode 制作静态库.a文件 详解
    Fiddler怎么对IPhone手机的数据进行抓包分析
    Mac上的抓包工具Charles
    30、准确计算CoreText高度的方法
    keil MDK中如何生成*.bin格式的文件
  • 原文地址:https://www.cnblogs.com/attilax/p/15199893.html
Copyright © 2011-2022 走看看