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

时间:2018-05-20 10:35:17

标签: javascript node.js firebase google-cloud-functions razorpay

我正在整合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://imgur.com/a/h2iG2uf

我附上了我的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`
})`

我仍然遇到同样的错误。

2 个答案:

答案 0 :(得分:0)

您需要使用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丢失的错误。

答案 1 :(得分:0)

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

process.env.KEY_ID ='randomstring1'; process.env.KEY_SECRET ='randomstring2';

它有效!