我正在制作一个应用程序,在成功付款后,我创建一个摘要,我使用 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
Run Code Online (Sandbox Code Playgroud)
我创建签名的方式是错误的吗?
Mat*_*ohn 12
您可以使用以下代码。希望这可以使代码更易于理解。
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;
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此链接https://nodejs.org/api/crypto.html#crypto_class_hmac
您只需更改 createHmac 并更新,如下所示交换其中的参数。
const crypto = require("crypto");
var generatedSignature = crypto
.createHmac(
"SHA256",
key_secret
)
.update(razorpay_order_id + "|" + razorpay_payment_id)
.digest("hex");
var isSignatureValid = generatedSignature == payload.razorpay_signature;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3532 次 |
| 最近记录: |