postman 验签
sign 验签规则
var timestamp = getTimeStamp(); postman.setEnvironmentVariable("timestamp", timestamp) var sign = makeSign(); postman.setEnvironmentVariable("sign", sign) console.log("++++++++++++++++++++") console.log(timestamp) console.log(sign) //获取时间戳 function getTimeStamp() { var time = Date(); var date = new Date(time); Y = date.getFullYear() + '-'; M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; D = date.getDate(); if (D < 10) { D = '0' + D; } D = D + ' ' var h = date.getHours(); if (h < 10) { h = '0' + h + ':'; } else { h = h + ':'; } m = date.getMinutes(); if (m < 10) { m = '0' + m + ':'; } else { m = m + ':'; } s = date.getSeconds(); if (s < 10) { s = '0' + s; } time = Y + M + D + h + m + s; return time; } function makeSign() //得到md5签名 { var requestUrl = request.url; //获取url 字符串 // console.log(requestUrl); //去除空白字符 // console.log((requestUrl)); var requestBody = request.data; //获取请求体 var appsecret = "7bea0f725c2f"; //appsercet 随环境而改变 var position = requestUrl.indexOf('?'); requestUrl = requestUrl.substring(position + 1); var keyValueArr = requestUrl.split("&"); var paramsArr = {}; var key = "", value = ""; for (var i = 0, count = keyValueArr.length; i < count; i++) { position = keyValueArr[i].indexOf('='); key = keyValueArr[i].substring(0, position); switch (key) { case "timestamp": value = postman.getEnvironmentVariable("timestamp"); // console.log(value); break; default: value = keyValueArr[i].substring(position + 1); break; } paramsArr[key] = value; } paramsArr = objKeySort(paramsArr); //paramsArr 数组按照字典序排序 var md5Str = ""; for (key in paramsArr) { // console.log(key + paramsArr[key]); if (key == "sign") { continue; } md5Str += key + paramsArr[key]; } console.log("::::::::::::::::::::::::::::::") console.log(md5Str) console.log(requestBody) md5Str = appsecret + md5Str + requestBody + appsecret; // md5Str = requestBody // md5Str = md5Str.replace(/\s+/g,""); //去除空白字符 // console.log((md5Str)); var sign = CryptoJS.MD5(md5Str).toString().toUpperCase(); return sign; } function objKeySort(arys) //将关联数组按照key 字典序排序,返回值是排序后的数组。 { //先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组 var newkey = Object.keys(arys).sort(); var newObj = {}; //创建一个新的对象,用于存放排好序的键值对 for (var i = 0; i < newkey.length; i++) { newObj[newkey[i]] = arys[newkey[i]]; } return newObj; }
你所浪费的今天是那些死去的人所奢望的明天,你所厌恶的现在是未来的你所回不去的曾经。