开发指南

微信支付 API v3 是基于 HTTPS 协议的。HTTPS 提供了微信支付服务器的身份认证, 并保护传输数据的私密性和完整性。

但在接收到商户请求时, 微信支付仍需要确认三个关键问题:

  1. 是哪一个商户发给微信支付的请求
  2. 请求的内容是否是第三方伪造
  3. 请求的内容是否被中间人篡改

为了保证交易的安全性, 微信支付 API v3 使用了 SHA256 with RSA 签名, 作为请求和应答报文的身份确认和数据校验。在以下的文档中, 我们介绍了如何构造一个携带签名的请求和如何验证微信支付 API v3 应答的签名。


签名生成

商户可以按照下述步骤生成请求的签名。在本节的最后, 我们准备了多种常用编程语言的演示代码供开发者参考。

签名验证

商户可以按照下述步骤验证应答或者回调的签名。

平台证书和回调报文解密

为了保证安全性, 微信支付在回调通知和平台证书下载接口中, 对关键信息进行了 AES-256-GCM 加密。本章节详细介绍了加密报文的格式, 以及如何进行解密。

敏感信息加密解密

为了保证通信过程中敏感信息字段(如用户的住址、银行卡号、手机号码等)的机密性, 微信支付 API v3 要求对于上下行的敏感信息进行加密。


最后修改 April 12, 2020: 整理文档 (f36b91e)