开发者社区 问答 正文

酷应用部署到自己的服务端时,签名总是校验错误,实际上我是按照文档说明去操作

我签名的代码如下

function calculateSignature(jsapiTicket, nonceStr, timeStamp, url, algo = 'sha256') {
  const decodedUrl = decodeUrl(url);

  // 构建签名字符串
  const plain = `jsapi_ticket=${jsapiTicket}&noncestr=${nonceStr}&timestamp=${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分钟,网址也是对的

展开
收起
游客fek5n2pj3qfas 2026-01-21 11:48:33 31 分享 版权
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: