收藏
回答

微信支付APIv3服务商平台报错误的签名,验签失败

根据签名生成的案例操作调用:https://api.mch.weixin.qq.com/v3/certificates

签名字符串为:GET\n/v3/certificates\n1610469421\nWYIIIHLWWN9AXHVJ1DHRCMZAJJIDCS6C\n\n

获得signature为:Coss1Ki5kxzaq6WM3/WBzsEZHffqDm8Kgr5aBwpfGj50pX3fFfuQgbjJlvSlcwyVu0JKnOqrV/7aUDhW+s4oD1OvesLuwDc3zDHaO7dfIqbSyxk+dDmj2Oz1kePaUU9Uswxba+ucY8eIAWv41TIlxLAyNLMAeyCXPssRv9s9vXOu9eyT0MuAxXSiaVIUuRyWQhxI1DfYAjBkb2BdXAPR1bMCLkx0eNDLOR7rLIU5arYFTnx5JkboD2ksbwS2NGHiCmVzz9jklwqv8i6C9wg/rlmSV6Uo1gKjeHPTeCkUUR5sp6yF5ahOlT/FXRi5AsJ1Lej3v3c9hNzOKqPEjbWqYg==

签名工具验证正确:

但是还是返回了:错误的签名,验签失败

返回内容为:{"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature","location":"authorization","sign_information":{"method":"GET","sign_message_length":66,"truncated_sign_message":"GET\n/v3/certificates\n1610469421\nWYIIIHLWWN9AXHVJ1DHRCMZAJJIDCS6C\n\n","url":"/v3/certificates"}},"message":"错误的签名,验签失败"}

API证书是根据:https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 的方法获取的,已经重新获取过一次,还是报同样的错误。

请求支援...

根据


回答关注问题邀请回答
收藏

2 个回答

  • 北望沣渭
    北望沣渭
    01-13
    验签失败需要平台证书,请求/v3/certificates接口是获取平台证书,官方文档有说明这块逻辑应该咋处理,另也有专用获取平台证书工具,建议使用
    01-13
    有用 1
    回复 8
    查看更多(3)
  • Dream
    Dream
    04-23

    你好,我也遇到了错误的签名,验签失败这个问题,请问这个问题怎么解决啊,平台证书已经下载了

    04-23
    有用
    回复 2
    • 北望沣渭
      北望沣渭
      04-23
      我扒了官方文档的图如下 https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay3_0.shtml :签名的时候,上行请求要用 **M私钥** 签名,同步应答的要用 **W公钥** 验签;异步验签的要用 **W公钥** 验签。平台证书下载同步应答有个「先有鸡还是先有蛋」的 **W公钥** 问题,建议用专用平台证书下载器下载,文档上有写。
      04-23
      回复
    • 北望沣渭
      北望沣渭
      04-23
      **M私钥** = apiclient_key.pem 文件
      **W公钥** = 平台证书下载下载的证书文件
      04-23
      回复
登录 后发表内容
问题标签