API v3版微信支付平台证书获取与自动更新

本文详细介绍了微信支付API v3版本中关于证书的获取、自动更新和首次下载流程。商户证书用于请求签名,微信平台证书用于响应验签。证书通过API获取,密文证书需解密,解密密钥在微信平台设置。当微信定期更换平台证书时,系统需自动更新。首次下载证书可借助微信提供的工具,避免验签导致循环调用问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

API v3版微信支付平台证书获取与自动更新

关于微信证书

微信支付开发有两份证书。
商户证书:商户平台证书私钥可以对请求进行签名,微信服务器进行验签可以验证请求者的身份和合法性;
微信平台证书:是由微信服务器使用私钥对响应签名之后,我们自己的服务器使用平台证书对响应进行验签,从而可以验证响应的合法性。

获取平台证书

微信官网有对应的API可以获取平台证书,请求之前也需要进行相应的签名,响应的数据大致如下。
若有新旧证书更替,则可能不止一条证书数据存在,且ciphertext证书字段为密文传输,需要对其进行解密才能正常使用。
解密使用的对称密钥是在微信平台(微信平台传送门)进行设置。【商户平台】->【API安全】->设置API v3密钥(注意不是API密钥)

{
   
  "data": [
      {
   
          "serial_no": "5157F09EFDC096DE15EBE81A47057A7232F1B8E1",
          "effective_time ": "2018-06-08T10:34:56+08:00",
          "expire_time ": "2018-12-08T10:34:56+08:00",
          "encrypt_certificate": {
   
              "algorithm": "AEAD_AES_256_GCM",
              "nonce": "61f9c719728a",
              "associated_data": "certificate",
              "ciphertext": "sRvt… "
          }
      },
      {
   
          "serial_no": "50062CE505775F070CAB06E697F1BBD1AD4F4D87",
          "effective_time ": "2018-12-07T10:34:56+08:00",
          "expire_time ": "2020-12-07T10:34:56+08:00",
          "encrypt_certificate": {
   
              "algorithm": "AEAD_AES_256_GCM",
              "nonce": "35f9c719727b",
              "associated_data": "certificate",
              "ciphertext": "aBvt… "
          }
      }
  ]
}

解密响应体,解密ciphertext证书字段代码。

	/**
	 * 使用微信平台证书对响应验签,和应答签名比较
	 * @param wechatpaySerial		response.headers['Wechatpay-Serial']		当前使用的微信平台证书序列号
	 * @param wechatpaySignature	response.headers['Wechatpay-Signature']		微信平台签名
	 * @param wechatpayTimestamp	response.headers['Wechatpay-Timestamp']		微信服务器时间戳
	 * @param wechatpayNonce		response.headers['Wechatpay-Nonce']			微信服务器提供的随机串
	 * @param body					response.headers['Wechatpay-body'] 			微信服务器的响应体
	 * @return						boolean
	 * @throws SignatureE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值