我签名的代码如下
function calculateSignature(jsapiTicket, nonceStr, timeStamp, url, algo = 'sha256') {
const decodedUrl = decodeUrl(url);
// 构建签名字符串
const plain = `jsapi_ticket=${jsapiTicket}&noncestr=${nonceStr}×tamp=${timeStamp}&url=${decodedUrl}`;
const normalizedAlgo = (algo || 'sha1').toLowerCase();
if (normalizedAlgo !== 'sha1' && normalizedAlgo !== 'sha256') {
throw new Error(`不支持的签名算法: ${algo}`);
}
const signature = crypto.createHash(normalizedAlgo).update(plain, 'utf8').digest('hex');
return signature;
}
但最后的结果是
{
"reason": "签名校验失败,nonce:[7M2D9xSfi7eIgqce],timestamp:[1768965431],url:[https://dingtalk.do****d.cc/sidebar.html],ticketList:[X8OnzRvynq******************************************************************VwZWfsV0Mp]",
"code": "52013"
}
请问是什么地方的问题,时间戳相差不到1分钟,网址也是对的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。