我正在制作一个应用程序,其中在成功付款后创建一个摘要,然后使用Razorpay签名验证的建议方法进行验证。
我的后端在NodeJS中,这是我创建摘要的方式。
const crypto = require("crypto");
var generatedSignature = crypto
.createHmac(
"SHA256",
razorpay_order_id + "|" + razorpay_payment_id
)
.update(key_secret)
.digest("hex");
var isSignatureValid = generatedSignature == payload.razorpay_signature // false
我创建签名的方式错误吗?
最佳答案
您可以使用以下代码。希望这可以使代码更容易理解。
const crypto = require("crypto");
const hmac = crypto.createHmac('sha256', RAZORPAY_KEY_SECRET);
hmac.update(razorpayOrderId + "|" + razorpayPaymentId);
let generatedSignature = hmac.digest('hex');
let isSignatureValid = generatedSignature == payload.razorpay_signature;
请参阅此链接以获取更多https://nodejs.org/api/crypto.html#crypto_class_hmac
关于node.js - 由于SHA256 Digest错误NodeJS,Razorpay签名验证未发生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56573028/