收藏
回答

从平台证书切换成微信支付公钥问题?

// 5. 初始化微信支付
$this->instance = Builder::factory([
    'mchid' => $this->mchid,
    'serial' => $this->serialNo,
    'privateKey' => $merchantPrivateKey,
    'certs' => [
        // $platformCertificateSerial => $onePlatformPublicKeyInstance, // 平台证书
        $platformCertificateSerialOrPublicKeyId => $wechatpayPublicKey,  // 支付公钥
    ],
    'secret' => $this->apiV3Key,
]);


$resp = $this->instance->chain('v3/pay/transactions/native')
    ->post(['json' => [
        'appid' => $this->appid,
        'mchid' => $this->mchid,
        'description' => $params['description'],
        'out_trade_no' => $params['out_trade_no'],
        'notify_url' => $params['notify_url'],
        'amount' => [
            'total' => $params['amount'],
            'currency' => 'CNY'
        ],
    ],
        'headers' => [
            'Accept' => 'application/json'
        ]
    ]);


使用的php sdk 1.4版本从平台证书转换为支付公钥。post请求时会抛出异常

Cannot found the serial(`1F81026B4B*******************`)'s configuration, which's from the response(header:Wechatpay-Serial), your's PUB_KEY_ID_011340*******************. 200 OK

微信平台后台已经打开了灰度开始切换公钥

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

3 个回答

  • 微信支付质量运营助手
    微信支付质量运营助手
    04-08

    phpSDK需要在调接口时额外在请求头增加wechatpay-serial,值要传公钥ID,这样微信给你应答时就全用公钥了

    04-08
    有用
    回复
  • Memory (私信不回复)
    Memory (私信不回复)
    04-07

    切换期间需要同时配置平台证书和平台公钥

    04-07
    有用
    回复 3
    • 星期三
      星期三
      04-08
      同时配置了,但是请求支付时sdk会自动带入Wechatpay-Serial,并且值是平台证书的序列号,并不是我certs传入的支付公钥ID,可以确认certs中配置的是正确的公钥id,post请求时我手动header中传入Wechatpay-Serial也只是追加了一个,并不能覆盖前边的平台证书序列号,然后还是会导致报错提示:Cannot found the serial(`1F81026B4***********`)'s configuration, which's from the response(header:Wechatpay-Serial), your's PUB_KEY_ID_01134008******. 200 OK
      04-08
      回复
    • 星期三
      星期三
      04-08
      这个期间Wechatpay-Serial自动追加证书序列号是没问题的吗,异步回调时是按进度比例随机返回Wechatpay-Serial是平台证书还是公钥,对吗
      04-08
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      04-08回复星期三
      你用的哪个sdk? wechatpay-php 不会带入
      04-08
      回复
  • 智能回答 智能回答 该问答由AI生成
    04-07
    有用
登录 后发表内容