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);