收藏
回答

请求使用公钥签名,但响应是证书签名,why?

背景:微信支付,之前用的证书,现在换成了公钥。

现象:调用 微信支付分停车-查询车牌服务开通信息(https://api.mch.weixin.qq.com/v3/vehicle/parking/services/find) 接口,请求头 Wechatpay-Serial 是以 PUB_KEY_ID_ 开头的(公钥方式签名),请求成功。但是响应时,Wechatpay-Serial 不是以 PUB_KEY_ID 开头的(证书方式签名),导致签名校验失败。

然而。。。创建停车入场(https://api.mch.weixin.qq.com/v3/vehicle/parking/parkings)接口又是可以的。

错误信息:

[AbstractVerifier] publicKeyId[PUB_KEY_ID_0115269xxxxxxxxxxxxxx] and serialNumber[413062816B9738387F610F02BA568E0B6B81968D] are not equal

请求:

响应:


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

2 个回答

  • 微信支付质量运营助手
    微信支付质量运营助手
    05-29

    你好,开始公钥切换后,只要调接口时在请求头传了公钥ID,应答理论上就应该是公钥。请私聊提供我具体参数一起看下

    05-29
    有用
    回复
  • Memory (私信不回复)
    Memory (私信不回复)
    05-28

    切换期间需要同时配置平台证书和公钥,完成切换以后才是纯公钥,请求时携带公钥id后,应答签名会用公钥返回

    05-28
    有用
    回复 3
    • Brook
      Brook
      05-28
      同时支持是指回调通知吧,请求-响应 应该都是公钥才对
      05-28
      回复
    • Brook
      Brook
      05-28
      而且这个接口必现这个问题,其他接口不会。我用的官方sdk wechatpay-java-core-0.2.15.jar
      05-28
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      05-28回复Brook
      切换期间回调会轮换下发,请求你不给公钥id,应答就不会给公钥签名返回
      05-28
      回复
登录 后发表内容