【发布时间】:2018-09-09 02:43:49
【问题描述】:
我想确认一次充电成功。我认为以下内容可以正常工作:
exports.chargecustomer = functions.database.ref('/Orders/{pushId}').onCreate((event) => {
const original = event.data.val();
const orderid = event.params.pushId;
const token = original.paytoken;
var orderstatus = {
status: "charged"
};
var updates = {};
updates['/Orders/' + orderid + "status"] = "charged";
// Charge the user's card:
stripe.charges.create({
amount: 999,
currency: "usd",
description: "Example charge",
source: token,
}, function(err, charge) {
console.log('error from charging', err);
if (charge.paid === true) {
//change status to charged
console.log("the payment went through")
return event.data.ref.parent.update(updates);
} else {
console.log("the payment did not go through")
}
});
});
当我运行它时,它说错误为空,我认为收费已通过。
更新:我能够检索费用属性以了解费用是否通过。我想将充电状态的节点从挂起更新为已充电,但我不知道代码有什么问题,没有进行更新。什么做错了,我如何更新这个路径'/Orders/'+orderid 中的“状态”属性来收费?
【问题讨论】:
-
我认为如果回调函数确实返回了一个收费对象,这意味着Stripe成功向用户收费,顺便说一句,将错误代码块包装在if语句中是个好主意
标签: node.js firebase-realtime-database stripe-payments