【发布时间】:2018-08-06 23:15:33
【问题描述】:
我已经为我的 Firebase 部署了一个云功能,以便使用 Firebase 作为我的后端服务器来处理 Stripe 付款。 我使用过的示例 Firebase 云函数的链接:https://github.com/firebase/functions-samples/tree/master/stripe
这是我在应用中向用户收费时应该触发的功能
exports.createStripeCharge = functions.database.ref('/stripe_customers/{userId}/charges/{id}').onWrite((event) => {
const val = event.data.val();
if (val === null || val.id || val.error) return null;
return admin.database().ref(`/stripe_customers/${event.params.userId}/customer_id`).once('value').then((snapshot) => {
return snapshot.val();
}).then((customer) => {
const amount = val.amount;
const idempotency_key = event.params.id;
let charge = {amount, currency, customer};
if (val.source !== null) charge.source = val.source;
return stripe.charges.create(charge, {idempotency_key});
}).then((response) => {
return event.data.adminRef.set(response);
}).catch((error) => {
return event.data.adminRef.child('error').set(userFacingMessage(error));
}).then(() => {
return reportError(error, {user: event.params.userId});
});
});
我知道当我的数据库发生变化时会触发上述功能。 我的问题是,将 Stripe 付款详细信息传递到我的 Firebase 数据库的正确方法是什么?阅读条带文档后,我不确定应该将什么传递给我的 firebase 数据库。
谁能帮我解答这个问题?谢谢!!
附:我的开发环境:Objective C,IOS应用。
【问题讨论】:
标签: ios objective-c firebase firebase-realtime-database stripe-payments