无法在 razorpay [firebase_functions/internal] 内部的 firebase 云函数中创建订单 ID
Posted
技术标签:
【中文标题】无法在 razorpay [firebase_functions/internal] 内部的 firebase 云函数中创建订单 ID【英文标题】:Unable to create order id in firebase cloud functions for razorpay [firebase_functions/internal] internal 【发布时间】:2021-11-03 06:36:43 【问题描述】:我正在使用 node.js 在 firebase 中编写云函数,但我收到错误 [firebase_functions/internal] internal
。
我在 index.js 中的代码:-
const cors = require('cors')(origin: true);
const Razorpay = require('razorpay')
const instance = new Razorpay(
key_id: 'my id',
key_secret: 'my key'
)
exports.razorpayOrderId = functions.https.onCall(async(req, res) =>
var options =
amount: 10000,
currency: "INR",
;
try
instance.orders.create(options).then(order => console.log(order));
catch(e)
console.log(e);
res.status(403).send(error: 'error');
);
我在flutter中触发该功能的代码:-
HttpsCallable callable = FirebaseFunctions.instance.httpsCallable(
'razorpayOrderId',
options: HttpsCallableOptions(timeout: Duration(seconds: 5)),
);
try
final HttpsCallableResult result = await callable.call(
<String, dynamic>
'message': 10000,
,
);
print(result.data['response']);
catch (e)
print(e);
【问题讨论】:
【参考方案1】:您使用的是onCall()
函数而不是onRequest()
,因此您必须通过返回数据/承诺而不是响应来终止该函数。 onCall()
有 2 个参数,通常命名为 data
和 context
,它们与 Express 中的 request
和 response
不同:
exports.razorpayOrderId = functions.https.onCall(async (data, context) =>
var options =
amount: 10000,
currency: "INR",
;
try
const order = await instance.orders.create(options)
return data: order
catch(e)
console.log(e);
return error: "Something went wrong"
);
你可以阅读更多关于documentation的区别
【讨论】:
@DeepakLohmod 尝试重新安装节点模块并使用以下命令进行部署:firebase deploy --only functions --debug
。然后分享调试日志。
上传调试安全吗?喜欢它包含我的项目 ID、电子邮件等
@DeepakLohmod 您可以删除这些详细信息。只是不要删除任何错误,如日志以上是关于无法在 razorpay [firebase_functions/internal] 内部的 firebase 云函数中创建订单 ID的主要内容,如果未能解决你的问题,请参考以下文章
在 CMD(Firebase 云功能)中使用显示错误的 Razorpay 集成
如何在 Flutter 中使用 Razorpay 订单 API?