我正在尝试通过python SDK集成剃须刀付款链接。尝试使用razor pay的Web挂钩响应验证标头中发送的签名时,出现以下错误。
File "/var/task/services/loan_repayment_service.py", line 569, in initiate_update_repayment
client.utility.verify_webhook_signature(body_string, signature, api_key)
File "/var/task/razorpay/utility/utility.py", line 25, in verify_webhook_signature
self.verify_signature(body, signature, secret)
File "/var/task/razorpay/utility/utility.py", line 45, in verify_signature
'Razorpay Signature Verification Failed')
我使用了Razor Pay API文档中提供的相同代码来验证签名-https://razorpay.com/docs/webhooks/integrations/#validation
使用json.loads()将响应主体转换为字符串,并将其与在razor pay中配置的签名和秘密密钥一起传递给razor pay签名验证功能。
client = razorpay.Client(auth=(key, secret))
client.utility.verify_webhook_signature(body_string, signature, api_key)
还运行一个独立的脚本,以通过使用hmac传递秘密密钥和Web挂钩响应主体来生成签名。但是生成的签名与Web挂钩标头中发送的签名不匹配。
key = bytes(key, 'utf-8')
body = bytes(body, 'utf-8')
dig = hmac.new(key=key, msg=body, digestmod=hashlib.sha256)
generated_signature = dig.hexdigest()
generate_signature 与Web挂钩标头签名不匹配。
我已经尝试过在此问题中发布的解决方案,但似乎不起作用-Razorpay Webhook signature verification error
那么如何解决签名验证问题?可能是什么问题?