私钥和证书

更新时间:2023.04.28

本文将介绍什么是商户 API 私钥、证书以及微信支付平台证书,以及它们的获取方法。

# 商户 API 证书

商户API证书是指由商户申请的,包含商户的商户号、公司名称、公钥信息的证书。

微信支付 APIv3 使用由 证书授权机构(Certificate Authority,简称CA)签发的证书。商户可以自行生成证书请求串,也可以下载微信支付证书工具生成证书请求串。提交证书请求串至商户平台后,即可获得商户 API 证书文件。请注意安全保存私钥文件。

注意

证书升级不会影响现有服务。微信支付颁发的证书将在升级后14天失效。请尽快用新证书替换服务器上的旧证书。

# 商户 API 私钥

商户申请商户 API 证书时,证书工具会生成商户私钥,并保存在本地证书文件夹的文件 apiclient_key.pem 中。私钥也可通过工具从商户的 p12 证书中导出。请妥善保管好商户私钥文件。

提示

请勿将私钥文件暴露在公共场合,如上传至 GitHub 或将其写入客户端代码等。

# 微信支付平台证书

微信支付平台证书是由 微信支付 负责申请和管理的,该证书包含了微信支付平台的身份标识和公钥信息。

每位商户都会分配到一个或多个微信支付平台证书。在处理接口响应或回调通知时,商户需要根据证书序列号选择对应的平台证书,并使用其中的公钥进行签名验证。

商户可通过调用 获取平台证书列表 接口,获取当前可用的微信支付平台证书。

警告

每个微信支付平台证书的有效期为5年。在证书过期之前,微信支付将逐步使用新的平台证书生成签名。为了避免缺少对应证书而验签失败,商户系统需支持多个微信支付平台证书,定期通过接口下载新证书并部署至服务器。请参阅我们的 证书更新指引 ,避免依赖人工更新证书,保证业务的连续运转。

# 声明所使用的证书

为了确保安全性,请求和响应的 HTTP 头部都需要包含证书序列号。这有助于识别签名或加密所使用的密钥对和证书。以下是相关的详细信息:

  • 商户签名需使用商户API证书私钥。请将商户API证书序列号放在请求HTTP头部的Authorization字段中的serial_no部分。
  • 微信支付返回响应内容时,商户需使用微信支付平台证书公钥验证签名。微信支付平台证书序列号会包含在响应HTTP头部的 Wechatpay-Serial字段中。
  • 在商户请求中,若包含敏感信息,请使用微信支付平台证书公钥加密。同时,将微信支付平台证书序列号放在请求HTTP头部的 Wechatpay-Serial 字段中。

如需了解如何获取商户API证书的证书序列号,请参阅如何查看证书序列号

反馈
咨询
目录