Razorpay如何使用firebase call函数生成orderId ?



我已经尝试过了,但是得到err不是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;
}
});


});

如果出现任何错误,您应该记录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);
}
});
})
}
const functions = require("firebase-functions");

const Razorpay = require("razorpay");
const crypto = require('crypto');
const admin = require('firebase-admin');
admin.initializeApp()
var key_id = "your_key_id";
var key_secret = "your_key_secret";
var instance = new Razorpay({ key_id: 'your_key_id', key_secret: 'your_key_secret' })
exports.createOrderID = functions.https.onCall((data_val, context) => {
return new Promise((resolve, reject) => {
instance.orders.create({

amount: data_val.amt,
currency: "INR",
receipt: data_val.receipt,
},function (err,data)
{
if (err) {
reject(new functions.https.HttpsError('unknown', 'An unexpected error', err));
return;
}
resolve(data);
})
});

});

最新更新