test.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const crypto = require('crypto');
  2. const APPFLAG = 'dpfx91801';
  3. const APPSECRET = '88fa244d77fce2b9b92c83a0dc88e38d';
  4. function sign(params) {
  5. // 1. 对参数key做ASCII升序排序
  6. const sortedKeys = Object.keys(params).sort();
  7. let str = '';
  8. for (let key of sortedKeys) {
  9. if (key === 'sign') {
  10. // 签名串中不包含sign字段
  11. continue;
  12. }
  13. // 2. 拼接key和value,不添加任何字符
  14. str += key + params[key];
  15. }
  16. // 3. 在头部拼接appsecret
  17. str = APPSECRET + str;
  18. // 4. 计算md5值并转换为大写
  19. const hash = crypto.createHash('md5').update(str, 'utf8').digest('hex');
  20. return hash.toUpperCase();
  21. }
  22. let params = {
  23. 'appflag': APPFLAG, // 通用参数appflag必传
  24. 'timestamp': String(Math.floor(Date.now() / 1000)) // 通用参数timestamp实时获取
  25. };
  26. console.log("params:",params)
  27. // let helper = require('./src/helper')
  28. // let timestamp = helper.getCurrentUnixTimestamp()
  29. // 通用参数sign计算生成
  30. params['sign'] = sign(params);
  31. console.log(params);