使用sign加密传参

需求:接口内传参使用md5加密后传参
参考:使用sign加密传参_第1张图片
整体思路如上图:转换为前端写法就可以了

1.获取时间戳

//获取当前的时间戳
var timestamp = Date.parse(new Date());  
timestamp = timestamp.toString()   //这两步是后台只需要到秒,我便自己截取前10位,
timestamp=Number(timestamp.substring(0,timestamp.length-3))

2.定义方法

//加密
    getSign(obj) {
            //获取当前的时间戳
            // var timestamp =Date.parse(new Date());  //上边已经定义可以忽略
            obj['timestamp']=timestamp
            //对于传的参数值进行排序
            var param = [];
            for(var k in obj){
                param.push(k);
            }
            param = param.sort();  
            //把数组拼接为字符串形式
            var str = "";
            for(var key in param){
                str += param[key] + '=' + obj[param[key]]+"&";
            }
            //字符串拼接上时间戳并且拼接secret(secre是后台提供)
            var secret = "xxxxxxxxx";	
            var slist = str.slice(0,-1)+secret; //+ 具有隐式转换功能
            //拼接完成引入md5,并把上述字符串返回给请求接口
            var jshexmd5=hex_md5(slist)
            jshexmd5=jshexmd5.toLowerCase()
            return jshexmd5;
    },

3.调用

            const nms={"mch_product_name":"客户还款",apply_amount:obj[apply_amount],"bind_card_id":bind_card_id};
            var listcont=this.getSign(nms)
            f.append("sign",listcont)  //当参数传递就可以了

你可能感兴趣的:(sign加密)