条纹成功付款:是否更新current_period_end?

时间:2019-01-23 21:57:29

标签: javascript node.js stripe-payments

我有一个关于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文档

enter image description here

0 个答案:

没有答案