收藏
回答

微信支付,APP下订单接口,返回结果验签为什么失败?

com.wechat.pay.java.core.exception.ValidationException: Validate response failed,the WechatPay signature is incorrect.

Request-ID[08CBB4DACE0610BB0218A699F5AF01209A810B28F08603-0] responseHeader[Keep-Alive=timeout=8,Wechatpay-Timestamp=1775671883,Server=nginx,X-Content-Type-Options=nosniff,Connection=keep-alive,Date=Wed, 08 Apr 2026 18:11:23 GMT,Wechatpay-Signature-Type=WECHATPAY2-SHA256-RSA2048,Wechatpay-Serial=5273F570169F776DDA526309D9871F33A89973CC,Wechatpay-Nonce=3b82aa05388227ff95aa1bc8f8daf0c4,Wechatpay-Signature=Cibal9eWHlbGxCxOKiNOFQ+3dBhs7DZ6Q6NflpgarC9OSikPXfShzmygFRkwXcGDoznE3G1N7xU7cMUDcgy/scEw1dz7DdwxlWKzFCQcjL/S54FvzLe8klL2tLDCZyu22xx3Kk0ZnnQlUCuA/znM/NfI3h7Bfb3+YiRyF8VbM0Av/cOVb8SbHuBfChuFuGg8ul5ThuxBw/fqcQWzAMvbCIZXioFp8gRx2rKjsKhovsHGhWM5fziz83WXSN04p1UrE4vWJUytjJigu4O2zz+bk1JjNSqpIjUqBQ+7CG68/qDiwGXPmkeqSI2+a7zNT3hnBQ278ip5NRckIMlpZFvhdA==,Cache-Control=no-cache, must-revalidate,Content-Length=52,Request-ID=08CBB4DACE0610BB0218A699F5AF01209A810B28F08603-0,Content-Language=zh-CN,Content-Type=application/json; charset=utf-8

我使用的是官方Java SDK, RSAPublicKeyConfig 进行构建。

商户号是:1600615916

接口返回的Wechatpay-Serial与我请求的Wechatpay-Serial为什么不相同?我想统一使用:微信支付公钥,但是接口返回的Wechatpay-Serial=5273F570169F776DDA526309D9871F33A89973CC 仍然是失效的【平台证书】,商户号后台上面没有可以操作的按钮,请问怎么解决?


新增:

https://support.pay.weixin.qq.com/aidevhelper 不是人工,无法解决问题。商户平台显示【平台证书】已失效。我申请【申请从微信支付公钥模式切换至平台证书模式】提交成功了,但是系统提示:系统处理失败,系统异常。

1.我使用 CertificateDownloader.jar 手动下载【平台证书】,结果是:平台证书已过期失效,请联系微信支付技术支持。

2.使用【平台证书】模式,即 RSAAutoCertificateConfig.Builder,提交接口时,也接口返回验签异常:平台证书已过期。

我现在 无法使用 【微信支付公钥】模式,也无法退回使用【平台证书】模式,请问如何解决?

在哪里可以提交正式工单?不管是【微信支付公钥】,【平台证书】,我能够正常使用其中一种即可。

最后一次编辑于  04-09
回答关注问题邀请回答
收藏

2 个回答

  • loaf
    loaf
    04-09

    平台证书方案切换公钥方案请参考指引https://pay.weixin.qq.com/doc/v3/merchant/4012154180

    切换期间应答使用公钥的比例:是商户自己控制的,通过商户的http请求头的Wechatpay-Serial带微信支付公钥ID还是平台证书ID来判断


    04-09
    有用
    回复 3
    • 海轻舟
      海轻舟
      04-09
      现在问题是,没有办法切换。商户后台没有操作按钮。现在不管用【公钥】还是用【平台证书】,提交接口(比如APP下单接口)后,SDK对接口的返回结果验签都失败。接口返回结果使用的证书是Wechatpay-Serial=5273F570169F776DDA526309D9871F33A89973CC,这个证书是平台证书,但是平台证书已经是【已失效】,并且没有办法更换平台证书。
      04-09
      回复
    • 海轻舟
      海轻舟
      04-09
      我用【公钥】模式,Wechatpay-Serial的值是PUB_KEY_ID_0116006159162025061200392302001802,发起接口请求后,接口返回结果使用的证书是Wechatpay-Serial=5273F570169F776DDA526309D9871F33A89973CC,这个问题,我通过详细的日志记录确认过,http请求头的Wechatpay-Serial确实使用我的【公钥ID】,即以PUB_KEY_ID,SDK的日志记录也显示:请求和返回二者使用的Wechatpay-Serial不相同。
      04-09
      回复
    • loaf
      loaf
      1天前回复海轻舟
      那你找下在线人工https://support.pay.weixin.qq.com/aidevhelper?from=wechatpaydoc,输2次人工客服,排队质量队列
      1天前
      回复
  • Memory (私信不回复)
    Memory (私信不回复)
    04-09

    你要使用公钥模式需要切换以后才可以,此类问题去找在线技术支持处理一下https://support.pay.weixin.qq.com/aidevhelper

    04-09
    有用
    回复 7
    查看更多(2)
登录 后发表内容