【发布时间】:2018-10-31 19:57:35
【问题描述】:
我想使用 Firebase Cloud Functions 捕获付款并立即在付款上创建转帐。捕获正确进行,但未执行传输。可能是什么原因?
参考文档:https://github.com/razorpay/razorpay-node/blob/master/examples/index.js
以下是我的 Firebase Cloud Function 的源代码:
exports.CapturePayment = functions.database.ref('payment_id').onWrite((event) => {
const payment_id = event.data.val();
// Capture a particular payment
rzp.payments.capture(payment_id, 100000).then((data) => {
return event.data.ref.child('status').set(data);
console.log(data);
// Create transfers on a payment
rzp.payments.transfer(payment_id, {
transfers: [
{
account: 'acc_aldsfkas123123adsf',
amount: 100,
currency: 'INR'
}
]
}).then((data) => {
var db = admin.database();
var ref = db.ref("transfer");
return ref.update("Success");
console.log(data)
}).catch((error) => {
var db = admin.database();
var ref = db.ref("transfer");
return ref.update("Failure");
console.error(error)
})
// success
}).catch((error) => {
console.log(error);
// error
})
});
【问题讨论】:
-
您在转帐前返回。该代码永远不会运行。
-
rzp.payments.capture()的第一行是回车。没有其他任何东西被执行。这只是一个错字吗? -
那我应该怎么改代码呢?
-
不行,return返回一个json对象,里面有很多数据。看看这个:docs.razorpay.com/docs/v1paymentsidcapture
标签: node.js firebase firebase-realtime-database google-cloud-functions razorpay