报错:HTTP header缺少微信支付平台证书序列号(Wechatpay-Serial)

更新时间:2024.08.22

在敏感字段加解密的场景,商户需要在发起请求的HTTP头部中通过Wechatpay-Serial添上平台证书(wechatpay.pem)的序列号请注意这里是平台证书序列号(平台证书总是以wechatpay.pem命名),而不是商户API证书序列号(商户API证书总是以apiclient_cert.pem命名),以声明加密所用的平台证书。如何获取平台证书请参考 非文件/图片下载如何验证签名 ,如何获取证书序列号参考第二部分

例如

1curl -X POST \
2 https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/1217752501201407033233368018/close \
3 -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4 -H "Accept: application/json" \
5 -H "Content-Type: application/json" \
6 -H "Wechatpay-Serial: 4DF076AC5A7D968D4A8B0B9C599A74CB4CF8EE8A" \
7 -d '{
8 "mchid" : "1230000109"
9 }'

如何获取证书序列号,参考以下步骤

可以用openssl命令行工具查看平台证书序列号

1openssl x509 -in wechatpay.pem -noout -serial

你会得到平台证书序列号

1Wechatpay-Serial=4DF076AC5A7D968D4A8B0B9C599A74CB4CF8EE8A
更多技术问题
技术咨询
反馈
咨询