How to Razorpay generate orderId using firebase call function?

I have tried this but getting err is not null

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

Answer

In case of any error, you should log err and check that. However if the order is created you can simply return the orderId as shown below:

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