const crypto = require('crypto'); const token = 'IitPatientWechat2026JanToken'; const timestamp = '1234567890'; const nonce = 'test123'; // 字典序排序 const arr = [token, timestamp, nonce].sort(); console.log('Sorted array:', arr); // 拼接字符串 const str = arr.join(''); console.log('Concatenated string:', str); // SHA1 加密 const hash = crypto.createHash('sha1').update(str).digest('hex'); console.log('Calculated signature:', hash); // 使用这个签名测试 console.log(''); console.log('Test URL:'); console.log(`curl "https://iit.xunzhengyixue.com/wechat/patient/callback-plain?signature=${hash}×tamp=${timestamp}&nonce=${nonce}&echostr=hello"`);