Полоса успешных платежей: обновить current_period_end или нет? - PullRequest
0 голосов
/ 24 января 2019

У меня вопрос по поводу подписок Stripe. У меня есть подписка с планом, где клиент получает ежемесячные счета. Этот объект подписки имеет свойство current_period_end, которое показывает нам время, когда заканчивается наш ежемесячный платежный цикл.

В настоящее время я пишу веб-крючок, который срабатывает после успешного платежа. Мне было интересно, нужно ли мне вручную редактировать свойство current_property_end этой подписки в конечной точке веб-перехвата в моем приложении или Stripe обновляет эту подписку автоматически?

Это конечная точка 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 doc

enter image description here

...