0

我正在集成 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`
})`

我仍然遇到同样的错误。

4

2 回答 2

0

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

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

它有效!

于 2018-05-21T03:56:34.517 回答
0

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

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 丢失的错误。

于 2018-05-20T12:52:45.660 回答