收藏
回答

微信支付“商家付款到零钱”密钥,证书序列号,和私钥到底都是什么?

调用微信支付“商家付款到零钱”一直调试不通过,请问一下以下几个步骤哪个环节出问题了

1:请求url:https://api.mch.weixin.qq.com/v3/transfer/batches
2:header中的Authorization,serial_no从哪里找到?
apiclient_cert.p12上面的序号,还是说需要调用获取证书接口(https://api.mch.weixin.qq.com/v3/certificates)拿到的证书的NO?
3:header中的Wechatpay-Serial,这个是哪里来的?调用证书接口返回的还是apiclient_cert.p12的序号?
4:用私钥加密请求数据的时候,这个私钥从哪里搞到的?apiclient_key.pem吗?


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

4 个回答

  • Memory
    Memory
    2022-12-07

    1、serial_no是商户证书序列号,可以在商户后台获取也可以读取商户证书获取

    2、Wechatpay-Serial是平台证书序列号,需要通过接口获取,https://pay.weixin.qq.com/wiki/doc/apiv3/apis/wechatpay5_1.shtml

    3、参数加密需要使用的是平台证书,签名才是使用的apiclient_key.pem

    2022-12-07
    有用 4
    回复 1
  • Jefff
    Jefff
    2023-03-31

    获取商户证书系列号(serial_no)的命令分享如下:

    # apiclient_cert.pem 是用 WXCertUtil 工具得到证书文件,在压缩包里面
    openssl x509 -noout -serial -in apiclient_cert.pem
    


    输出类似:

    serial_no=7AB66CF37AB66CEF1F93E6A5EAE668949C23595B

    2023-03-31
    有用 1
    回复
  • 芝士花栗鼠
    芝士花栗鼠
    2022-12-12

    1.接口地址没错

    2.header中Authorization包含的serial_no是商户证书序列号,也就是之前企业付款用的.p12证书序列号,商家转账需要.pem证书私钥(可以从p12证书导出.pem证书)可以通过openssl命令或者商户后台看到

    3.header中的Wechatpay-Serial是微信支付平台证书序列号,需要通过接口获取,https://pay.weixin.qq.com/wiki/doc/apiv3/apis/wechatpay5_1.shtml

    4.私钥加密,是需要apiclient_key.pem导出私钥的,不知道你用的什么语言

    2022-12-12
    有用
    回复
  • 菜虫网络
    菜虫网络
    2022-12-07

    文档都看了?

    2022-12-07
    有用
    回复 2
    • 小石头
      小石头
      2022-12-07
      都看了的,看的一头雾水里。
      目前调用查看证书接口:https://api.mch.weixin.qq.com/v3/certificates没有问题。
      参数中都是apiclient_cert.p12的证书序列号
      商家付款到零钱中
      加密用apiclient_cert.p12的序列号,报错:平台证书序列号Wechatpay-Serial错误。
      加密用证书接口的序列号,报错:平台私钥解密失败。私钥用的是apiclient_cert.p12导出的私钥,换用apiclient_key.pem仍然报【平台私钥解密失败】。
      2022-12-07
      回复
    • 芝士花栗鼠
      芝士花栗鼠
      2022-12-12回复小石头
      平台证书和商户证书是两个证书,加密用微信支付平台证书中的公钥
      2022-12-12
      回复
登录 后发表内容