API安全机制简介

您所在的位置:网站首页 微信支付安全锁多长时间锁 API安全机制简介

API安全机制简介

2024-07-06 18:45| 来源: 网络整理| 查看: 265

以下所述针对V3版本API

# 安全机制

微信支付使用商户的消息签名验证商户的身份。如果一个请求不包含签名或者签名验证失败,微信支付将返回身份验证错误。它背后的技术是:数字签名技术。

数字签名(亦称公钥数字签名)是一种独特的数字串,只能由信息发送者生成,且无法被他人伪造。它有效地证明了发送者发送信息的真实性。数字签名类似于纸上的普通物理签名,但采用了公钥加密技术来实现,用于验证数字信息的真实性。数字签名系统通常包含两种互补操作:一种用于生成签名,另一种用于验证签名。

# 商户请求微信支付

每个商户都拥有自己的商户API证书私钥,在发送请求时,商户需要使用这个私钥对消息进行签名。 当微信支付侧收到请求后,会使用对应的商户API证书公钥对签名进行验证(即验签)。只有当验签成功后,微信支付才会确认消息发送者的身份是真实的。

如果有敏感字段需要上送,则用微信支付的平台证书公钥对字段进行加密。微信支付收到后,会使用平台证书私钥解密。

示意图如下:

顺序为:

商户构造原始请求。 商户使用平台证书公钥对请求中的敏感字段进行加密,得到新的请求包体,注意是对敏感字段加密,而非整个原始请求,详情见:敏感数据加密。 商户使用商户API私钥对请求包体计算签名,详情见:生成签名。 商户将请求包体和签名上送到微信支付。 微信支付使用商户API证书公钥对请求包体进行验签。 微信支付使用平台私钥对请求中的敏感字段进行解密,得到原始请求,随后开始处理业务。 # 微信支付应答商户

微信支付给商户应答时,机制和商户请求微信支付类似,只是签名的私钥换成了微信支付平台私钥,加密的公钥换成了商户API证书公钥。

示意图如下:

顺序为:

微信支付构造原始应答。 微信支付使用商户API证书公钥对应答中的敏感字段进行加密,得到新的应答包体。 微信支付使用平台私钥对应答包体计算签名。 微信支付将应答包体和签名返回给商户。

商户收到应答后,应使用微信支付平台证书公钥进行验签,以校验应答者的身份真实性。详情见:验证签名。

如果应答中包含敏感字段,应使用商户API证书私钥进行解密。详情见:敏感数据加密

# 微信支付回调商户

微信支付回调商户时,与前述略有不同,主要体现在加密和签名的源串不同。

示意图如下:

其顺序为:

微信支付构造原始请求 微信支付使用APIv3密钥对原始请求进行加密,得到新的请求包体(注意:APIv3密钥是一个对称密钥,由商户在商户平台设置) 微信支付使用平台证书私钥对原始请求计算签名 微信支付将请求包体和签名上送到商户 商户使用APIv3密钥对请求包体进行解密,得到原始请求 商户使用平台证书公钥对原始请求进行验签,验签通过后开始处理业务

详细的解密方法见:回调解密



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3