// 支付 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) + ''
}
来源: http://www.bubuko.com/infodetail-3182111.html