• 微信支付签名算法JavaScript版,参数名ASCII码从小到大排序;0,A,B,a,b;


      // 支付md5加密获取sign
      paysignjs: function (jsonobj) {
        var signstr = this.obj2str(jsonobj)
        signstr = signstr + '&key=' + key;
        console.log("signstrkey:",signstr)
        var sign = md5util.hexMD5(signstr); //验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
        return sign.toUpperCase()
      },
      //object转string,用于签名计算
      obj2str: function (args) {
        var keys = Object.keys(args)
        keys = keys.sort() //参数名ASCII码从小到大排序(字典序);
        var newArgs = {}
        keys.forEach(function (key) {
          if (args[key] != "" && args[key] != 'undefined') {  //如果参数的值为空不参与签名;
            newArgs[key] = args[key]  //参数名区分大小写;
          }
          
        })
        var string = ''
        for (var k in newArgs) {
          string += '&' + k + '=' + newArgs[k]
        }
        string = string.substr(1)
        return string
      }, 
      //随机函数的产生:
      createNonceStr: function () {
        return Math.random().toString(36).substr(2, 15)   //随机小数,转换36进制,去掉0.,保留余下部分
      },
      //时间戳产生的函数, 当前时间以证书表达,精确到秒的字符串
      createTimeStamp: function () {
        return parseInt(new Date().getTime() / 1000) + ''
      }
  • 相关阅读:
    testng 控制case运行顺序
    0518 Scrum 项目 5.0
    0506团队项目Scrum 项目1.0
    0429团队项目Scrum团队成立
    0429团队项目对师姐的软件的一些改进
    0422团队项目:二次开发
    0511团队项目2.0产品product backlog
    实验三进程调度模拟程序
    0517 SCRUM团队项目4.0
    0512 SCRUM团队项目3.0
  • 原文地址:https://www.cnblogs.com/jopny/p/11454952.html
Copyright © 2020-2023  润新知