Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改Razorpay.js文件以使我的代码正常工作?_Javascript_Node.js_Firebase_Google Cloud Functions_Razorpay - Fatal编程技术网

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

Javascript 如何更改Razorpay.js文件以使我的代码正常工作?,javascript,node.js,firebase,google-cloud-functions,razorpay,Javascript,Node.js,Firebase,Google Cloud Functions,Razorpay,我正在集成Razorpay来处理付款,我正在使用NodeJSSDK 请参阅此链接以获取参考: 现在,我正在尝试捕获一个使用firebase云功能授权的付款。请参阅我在上面分享的链接中的第32行 让我向您展示我编写的云函数: exports.CapturePayment = functions.database.ref('payment_id').onWrite((event) => { const payment_id = event.data.val(); // Captur

我正在集成Razorpay来处理付款,我正在使用NodeJSSDK

请参阅此链接以获取参考:

现在,我正在尝试捕获一个使用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: index.js:

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`
})`

我仍然收到相同的错误。

您需要使用
密钥id
密钥密钥密钥
初始化RazorPay SDK。您可以设置环境变量,也可以直接传递如下所示的值

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

让rzp=new Razorpay({
key_id:process.env.key_id | |“”,
key|u secret:process.env.key|u secret
})

这就是为什么它会抛出一个键id丢失的错误。

结果表明,在声明环境变量时,这是一个简单的语法错误。我必须声明如下:

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


而且它有效

请不要公开发布您的密钥和机密,它们是机密的,任何人都可以使用这些凭据访问您的帐户。如果可以避免,请不要发布屏幕截图。最好是将错误信息剪切粘贴到你的帖子中。我发布的密钥和秘密是修改/伪造的。很抱歉没有发布截图,我会确保下次发布截图!我做了改变,但我仍然得到同样的错误!让rzp=new Razorpay({key_id:process.env.key_id | | |“rzp_test_T1334114312”//your
key_id
key_secret:process.env.key| |“K7W234fdsCt4dE12341”//your
key_secret。你修改过SDK文件吗?没有!在引发错误的razorpay.js文件中是否需要更改任何内容?特别是在“function Razorpay()”中,我所做的只是在命令行中键入第一个“npm I install”。然后导航到适当的文件夹并键入npm install。就这样!里面什么都没碰!
let rzp = new Razorpay({
  key_id: process.env.KEY_ID || "<your actual key id>", 
  key_secret: process.env.KEY_SECRET || "<your actual key secret>" 
})