12345678910111213141516171819202122232425262728293031323334353637383940 |
- const crypto = require('crypto');
- const APPFLAG = 'dpfx91801';
- const APPSECRET = '88fa244d77fce2b9b92c83a0dc88e38d';
- function sign(params) {
- // 1. 对参数key做ASCII升序排序
- const sortedKeys = Object.keys(params).sort();
- let str = '';
- for (let key of sortedKeys) {
- if (key === 'sign') {
- // 签名串中不包含sign字段
- continue;
- }
- // 2. 拼接key和value,不添加任何字符
- str += key + params[key];
- }
- // 3. 在头部拼接appsecret
- str = APPSECRET + str;
- // 4. 计算md5值并转换为大写
- const hash = crypto.createHash('md5').update(str, 'utf8').digest('hex');
- return hash.toUpperCase();
- }
- let params = {
- 'appflag': APPFLAG, // 通用参数appflag必传
- 'timestamp': String(Math.floor(Date.now() / 1000)) // 通用参数timestamp实时获取
- };
- console.log("params:",params)
- // let helper = require('./src/helper')
- // let timestamp = helper.getCurrentUnixTimestamp()
- // 通用参数sign计算生成
- params['sign'] = sign(params);
- console.log(params);
|