如何更改 Razorpay.js 文件以使我的代码正常工作?



我正在集成Razorpay来处理付款,并且我正在使用node-JS sdk。

请参阅此链接以供参考:https://github.com/razorpay/razorpay-node/blob/master/examples/index.js。

现在,我正在尝试捕获已使用我的 Firebase 云函数授权的付款。请参阅我上面共享的链接中的第 32 行。

让我向您展示我编写的云函数:

exports.CapturePayment = functions.database.ref('payment_id').onWrite((event) => {
const payment_id = event.data.val();
// Capture a particular payment
rzp.payments.capture(payment_id, 1000).then((data) => {
event.data.ref.child('status').set("paid");
// success
}).catch((error) => {
// error
});
});

当我运行它时,我收到此错误:

https://i.stack.imgur.com/abKoe.jpg

我附上了我的 razorpay.js 文件和 index.js 文件的屏幕截图。有人可以指出我的错误并帮助我使其起作用吗?

剃刀付.js:https://i.stack.imgur.com/SbEYl.jpg 索引.js: https://i.stack.imgur.com/rEEh3.jpg

PS:我对Node很陌生.JS所以我认为这可能是语法错误。

更新 1: 我将环境变量声明更改为">

let rzp = new Razorpay({
key_id: process.env.KEY_ID || "rzp_test_T1334114312"  , // your `KEY_ID`
key_secret: process.env.KEY_SECRET || "K7W234fdsCt4dE12341" // your `KEY_SECRET`
})`

我仍然收到同样的错误。

你需要用key_idkey_secret初始化RazorPay SDK。您可以设置环境变量或直接传递值,如下所示。

process.env是环境变量,则需要对其进行配置。您不只是在代码中替换它们(我在屏幕截图中看到(。

let rzp = new Razorpay({
key_id: process.env.KEY_ID || "<your actual key id>", 
key_secret: process.env.KEY_SECRET || "<your actual key secret>" 
})

这就是为什么它会抛出一个错误,即缺少key_id。

事实证明,这是声明环境变量时的简单语法错误。我只需要声明如下:

process.env.KEY_ID = '随机字符串1'; process.env.KEY_SECRET = '随机字符串2';

它有效!

最新更新