我正在制作一个应用程序,其中在成功付款后创建一个摘要,然后使用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/

10-12 23:33