我有一个关于Stripe订阅的问题。我有一个计划,每月向客户收费。该订阅对象的属性current_period_end向我们显示了每月结算周期的结束时间。
我当前正在编写一个Webhook,在成功付款后会被解雇。我想知道是否必须在应用程序的Web挂钩端点中手动编辑此订阅的current_property_end属性,或者Stripe是否自动更新该订阅?
这是我的Web应用程序后端上的Webhook端点,用于处理成功的付款。我有一个mongodb文档,我想在其中更新billing.current_period_end属性。现在,这显示了上一个Stripe计费周期的结束,但是由于我的付款成功,因此我想对其进行更改。我为此使用subscription.current_period_end,但是我不确定在成功付款后Srtripe是否自动更新了条带订阅current_period_end属性?或者这是我必须手动执行的操作?
const paymentSuccessful = async (req, res) => {
try {
// get the Stripe customer
const customer = await stripe.customers.retrieve('cus_EOfhqjsUvzUkiJ');
// get the subscription of the customer
const subscription = await stripe.customers.retrieve(customer.subscriptions.data[0].id);
// add it to the billing.failed_payments property of the workspace
const workspace = await Workspace.findOneAndUpdate(
{ _id: customer.metadata.workspace_id },
{
$addToSet: {
'billing.success_payments': req.body
},
$set: {
'billing.current_period_end': subscription.current_period_end
}
}, {
new: true
}
).lean();
// send mail to user (still to be added)
res.status(200).json({
message: 'Success'
});
} catch (err) {
return sendErr(res, err);
}
};
示例工作区mongodb文档