【发布时间】:2019-10-19 17:40:47
【问题描述】:
我正在制作一个以 firetore 作为数据库的 react-redux 应用程序。现在,我想使用 firebase 云功能来处理条带支付。
这里是云函数“createSubscription”:
exports.createSubscription = functions.database
.ref("/teachers/{userId}/pro-membership/token")
.onWrite((event, context) => {
const tokenId = event.after.val();
const userId = context.params.userId;
if (!tokenId) throw new Error("Token Missing");
return admin
.database()
.ref(`teachers/${userId}`)
.once("value")
.then(snapshot => snapshot.val())
.then(user => {
console.log(user);
return stripe.subscriptions.create({
customer: user.customerId,
source: tokenId, **// Here is the error occuring**
items: [
{
plan: "pro-membership"
}
]
});
})
.then(sub => {
admin
.database()
.ref(`teachers/${userId}/pro-membership`)
.update({
status: "active"
});
})
.catch(err => {
console.log("ERRor", err);
});
});
以下是来自云函数日志的错误信息:
【问题讨论】:
-
这听起来像是一些与谷歌云无关的 Stripe 错误。
-
我不知道为什么,但我已经编辑了大约 5 次,我将其更改为“firebase-cloud-functions”,但它不会从“google-cloud-functions”更改”。所以,我只是删除了这个标签。
-
source不是stripe.subscriptions.create请求的有效参数,请参阅stripe.com/docs/api/subscriptions/create --- 尝试先更新客户,添加令牌 (stripe.com/docs/api/customers/update),然后 创建订阅。 -
@duck 它的工作人员。谢谢!您可以将其发布为答案,我会接受。
标签: javascript firebase firebase-realtime-database stripe-payments