微信支付公钥说明

更新时间:2025.08.14

作用

品牌商户会在以下两种场景中使用微信支付公钥:

1、接收到品牌API接口的返回内容,需要使用微信支付公钥进行验签

2、调用某些含有敏感信息参数(如姓名、身份证号码)的接口时,需要使用微信支付公钥加密后再传输参数。

为了确保品牌商户发起调用正确性、安全性,因此品牌API要求在请求中携带品牌商户申请的微信支付公钥ID用以验证其有效性。

公钥 ID

提供给品牌商户的公钥 ID 由前缀 PUB_KEY_ID_和原始公钥 ID 组成。其中,原始公钥ID为 32 个数字(0-9)字符组成的字符串。

发起请求

Wechatpay-Serial ,必填。

品牌商户通过在 HTTP 头中声明 Wechatpay-Serial,告知微信支付当前持有的公钥 ID。微信支付将根据此值使用相应的私钥为应答签名,以确保品牌商户能够进行验签。

请求 HTTP 头示例如下:

1Authorization: WECHATPAY-BRAND-SHA256-RSA2048 brand_id="1900009191",nonce_str="593BEC0C930BF1AFEB40B4A08C8FB242",signature="...",timestamp="1554208460",serial_no="1DDE55AD98ED71D6EDD4A4A16996DE7B47773A8C"
2Wechatpay-Serial: PUB_KEY_ID_00000000000000000000000000000000

当品牌商户传递 Wechatpay-Serial 时,微信支付会验证其是否正确。当它错误时,微信支付应返回 400 Bad Request 的状态码, code 为 INVALID_REQUEST

接收应答和回调

Wechatpay-Serial ,必填。

应答和回调中,微信支付使用 Wechatpay-Serial 告知品牌商户系统验证签名使用的公钥 ID。

微信支付使用公钥对应的私钥签名,应答或回调的 HTTP 头示例如下:

1Request-ID: e2762b10-b6b9-5108-a42c-16fe2422fc8a
2Wechatpay-Nonce: c5ac7061fccab6bf3e254dcf98995b8c
3Wechatpay-Signature: CtcbzwtQjN8rnOXItEBJ5aQFSnIXESeV28Pr2YEmf9wsDQ8Nx25ytW6FXBCAFdrr0mgqngX3AD9gNzjnNHzSGTPBSsaEkIfhPF4b8YRRTpny88tNLyprXA0GU5ID3DkZHpjFkX1hAp/D0fva2GKjGRLtvYbtUk/OLYqFuzbjt3yOBzJSKQqJsvbXILffgAmX4pKql+Ln+6UPvSCeKwznvtPaEx+9nMBmKu7Wpbqm/+2ksc0XwjD+xlvlECkCxfD/OJ4gN3IurE0fpjxIkvHDiinQmk51BI7zQD8k1znU7r/spPqB+vZjc5ep6DC5wZUpFu5vJ8MoNKjCu8wnzyCFdA==
4Wechatpay-Timestamp: 1554209980
5Wechatpay-Serial: PUB_KEY_ID_00000000000000000000000000000000

 

元宝AI
反馈
目录
置顶