如何解决进行验证时,Razorpay 签名在实时模式下不匹配
我正在实时模式下测试 Razorpay。在测试模式和实时模式下都成功捕获了付款。 Razorpay在测试模式下成功支付生成的签名与下面代码使用秘钥生成的签名相同。
const text = data.razorpay_order_id + '|' + data.razorpay_payment_id
var signature = crypto
.createHmac('sha256','my_secret_key')
.update(text)
.digest('hex')
return signature
问题是当我在实时模式下执行此操作时,Razorpay 生成的签名和此代码都不同。
在测试模式。 Razorpay 响应 -
razorpay_signature: "2b2d23dc79b801ad87c73fe52aac211068ea0d6eebc9b9ed6f6b8be79e228798"
上面代码生成的签名
"2b2d23dc79b801ad87c73fe52aac211068ea0d6eebc9b9ed6f6b8be79e228798"
在实时模式。 Razorpay 响应 -
razorpay_signature: "d47021ec866a256076692aebc58bf4ba333b11afd6c49943a9089b52b3153d52"
上面代码生成的签名
"ba33d77de4bff92b035d63d2524e54d654a9df744719aed798b88df7499ca75f"
请注意,当我从测试模式切换到实时模式时,我更改了代码中的密钥。所以密钥应该是正确的。 谁能告诉我是什么问题。代码有什么问题吗?我不明白为什么它在测试模式下而不是在实时模式下工作。
更新
代码生成的签名使用的是实时模式密钥。 但是我从 Razorpay 得到的响应是使用测试模式密钥来生成签名。这怎么可能?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。