【问题标题】:How to change Razorpay.js file to make my code work?如何更改 Razorpay.js 文件以使我的代码正常工作?
【发布时间】:2018-10-30 05:30:10
【问题描述】:

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

我仍然遇到同样的错误。

【问题讨论】:

  • 请不要公开发布您的密钥和秘密,它们是机密的,任何人都可以使用这些凭据访问您的帐户。
  • 如果可以避免,切勿发布屏幕截图。最好将错误消息剪切并粘贴到您的帖子中。
  • 我发布的密钥和秘密被修改/伪造。很抱歉没有发布截图,下次我会确保这样做!

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


【解决方案1】:

原来是在声明环境变量时出现了一个简单的语法错误。我只需要声明如下:

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

它有效!

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我进行了更改,但仍然出现同样的错误!
    • let rzp = new Razorpay({ key_id: process.env.KEY_ID || "rzp_test_T1334114312" , // 你的KEY_ID key_secret: process.env.KEY_SECRET || "K7W234fdsCt4dE12341" // 你的@ 987654326@})
    • 这没有意义,因为错误是由非常基本的字符串检查引发的。您是否修改了任何 SDK 文件?
    • 不,我没有!抛出错误的 razorpay.js 文件中是否需要更改任何内容?具体在“功能 Razorpay()”中?
    • 我所做的只是首先在命令行中输入“npm i install”。然后导航到相应的文件夹并输入 npm install。而已!里面什么都没碰!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2017-05-29
    • 1970-01-01
    相关资源
    最近更新 更多