美文网首页
微信支付 V3 接口梳理:密钥与安全

微信支付 V3 接口梳理:密钥与安全

作者: 清十郎sama | 来源:发表于2024-03-05 16:29 被阅读0次

微信支付 V3 接口涉及到多个密钥,以及安全概念。这里帮大家做了一个梳理。

V3 接口涉及的密钥概念

参考:私钥和证书

商户 API 证书

用途:用于调用所有 V3 接口;

含义:包含商户号,公司名称,商户公钥信息

获取方法:有财务老师在微信商户后台申请。【通过微信提供的工具,填入商户号,公司名称等进行申请】

商户 API 私钥

用途:签名

获取方法:在申请商户 API 证书时,申请工具会生成该私钥。

APIv3 密钥

用途:特定接口(通知,平台证书下载)结果信息中,关键敏感信息的解密

获取方法:商户自定义(32字节),然后配置到商户后台。

注意:该密钥与商户API私钥没有任何关系,设置该密钥也不会导致商户API私钥失效。

微信支付平台证书

用途:响应和通知的验签,敏感信息加密

注意:由于微信存在多个平台证书,我们需要根据序列号,采取对应证书内的公钥来验签

含义:包含微信支付平台的身份信息,商户公钥信息

获取方法:调用接口

主要安全流程

签名

调用微信支付平台v3 API 时,需要使用商户 API 私钥对请求报文进行 SHA-256 with RSA 签名。【签名信息存放于头中】

参考:如何生成请求签名

验签

微信支付平台会对其响应报文,以及通知报文进行 SHA-256 with RSA 签名。作为商户,需要使用微信支付平台证书内的公钥,对签名进行验签。

参考:如何验证签名

敏感信息加解密

商户请求微信:商户使用微信支付平台证书公钥,对敏感信息进行 RSA 公钥加密。

微信返回结果:商户使用商户 API 私钥,对响应的敏感信息密文进行 RSA 解密。

参考:如何加解密敏感信息

平台证书与通知报文解密

针对两个特殊场景【微信平台证书获取接口】,【通知】:我们使用 APIv3 密钥基于 AES-256-GCM 做对称加解密。

参考:如何解密证书和回调报文

国密

为了支持国家信息安全的号召,微信是可以提供支持国密SM2/3/4的v3接口交互的。商户可联系微信技术支持申请。

参考:国家商用密码简介

相关文章

网友评论

      本文标题:微信支付 V3 接口梳理:密钥与安全

      本文链接:https://www.haomeiwen.com/subject/opsdzdtx.html