微信支付v3 验证签名代码
时间: 2023-09-14 18:02:29 浏览: 94
以下是微信支付v3的验证签名代码示例:
```python
import hashlib
import hmac
import base64
def verify_signature(public_key, signature, message):
"""
校验签名
:param public_key: 微信支付平台证书公钥
:param signature: 微信支付平台返回的签名
:param message: 待校验消息
"""
# 将签名解码
signature = base64.b64decode(signature)
# 获取消息摘要
message_digest = hashlib.sha256(message.encode('utf-8')).digest()
# 验证签名
try:
hmac_key = base64.b64decode(public_key)
result = hmac.new(hmac_key, message_digest, hashlib.sha256).digest()
return hmac.compare_digest(result, signature)
except Exception as e:
print('verify_signature error:', e)
return False
```
其中,`public_key`为微信支付平台证书公钥,`signature`为微信支付平台返回的签名,`message`为待校验消息。此代码会将签名解码、获取消息摘要,并使用公钥进行HMAC-SHA256加密后与签名进行比较,从而判断签名是否正确。
阅读全文