无法在 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 个参数,通常命名为 datacontext,它们与 Express 中的 requestresponse 不同:

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 集成

在集成 Razorpay 支付网关期间没有支付?

如何在 Flutter 中使用 Razorpay 订单 API?

如何在 Vue.js 中集成 razorpay

如何在 codeigniter 中集成 razorpay 支付网关

RazorPay Android 集成