【问题标题】:How to Razorpay generate orderId using firebase call function?Razorpay 如何使用 firebase 调用函数生成 orderId?
【发布时间】:2021-11-24 05:03:35
【问题描述】:

我已经尝试过了,但得到错误不是空的

 const instance = new Razorpay({
      key_id: "myKey",
      key_secret: "mySecret"
    });
     
    exports.generateOrder = functions.https.onCall((data, context) => {
        
         const options = {
          amount: data.amount,
          currency: "INR",
          receipt: "recipt by me"  //req.body.receipt
        };
        
        instance.orders.create(options, (err, order) => {
            if(err !==  null){
                console.log("ORDERID null");
                return null;
            }else{
                console.log("ORDERID "+order);
                return order;
            }
        });
        
    
    });

【问题讨论】:

  • 能否在问题中添加错误截图?
  • 我没有得到 orderId。控制台没有显示任何内容
  • 如果你 console.log(err) 它应该记录错误。
  • 现在我将控制台设置为:ORDERID [object Object]。如何从此对象中检索 orderId?
  • 这似乎不是错误?试试console.log("ORDERID "+ JSON.stringify(order));

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


【解决方案1】:

如果出现任何错误,您应该记录err 并检查。但是,如果创建了订单,您可以简单地返回 orderId,如下所示:

exports.generateOrder = functions.https.onCall((data, context) => {        
  const options = {
    amount: data.amount,
    currency: "INR",
    receipt: "recipt by me"  //req.body.receipt
  };        
  return createOrder(options).then((orderId) => {
    return { orderId }
  }).catch(e => {
    return { error: e }
  })  
});


function createOrder(options) {
  return new Promise((resolve, reject) => {
    instance.orders.create(options, (err, order) => {
      if(err !==  null){
        console.log("failed to create order", err);
        return reject(err);
      } else {
        console.log("ORDERID "+order.id);
        return resolve(order.id);
      }
    });
  })
}

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 2019-09-06
    • 1970-01-01
    • 2015-02-19
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    相关资源
    最近更新 更多