我正在整合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
});
});
当我运行它时,我收到此错误:
我附上了我的razorpay.js文件和index.js文件的屏幕截图。有人可以指出我的错误并帮助我让它发挥作用吗?
razorpay.js:https://imgur.com/GU0LP1u index.js:https://imgur.com/a/TYizcSu
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`
})`
我仍然遇到同样的错误。
答案 0 :(得分:0)
您需要使用key_id
和key_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丢失的错误。
答案 1 :(得分:0)
事实证明,在声明环境变量时,这是一个简单的语法错误。我只需要声明如下:
process.env.KEY_ID ='randomstring1'; process.env.KEY_SECRET ='randomstring2';
它有效!