Я смущен о том, почему документации Stripe в предлагает customer.subscription.updated
события не срабатывает, когда я считаю, что это необходимо:Возникает ли событие customer.subscription.updated при обновлении подписки?
- страйповых
subscription
объекта обладает свойствамиcurrent_period_start
иcurrent_period_end
, которые будут обновляться каждый раз, когда клиент успешно платит данную подписку счета-фактуры (https://stripe.com/docs/api#subscriptions) документация для
customer.subscription.updated
события заявляет, что ...Oc при каждом изменении подписки. Примерами могут быть переход от одного плана к другому или переход из пробного в активный.
... который будет означать, что событие будет поднято, если изменится
current_period_start
иcurrent_period_end
значения, но не утверждается, если он делает или не делает в этом случае.Однако на этой сторонней веб-странице указано, что она не возникает при успешном обновлении (https://www.masteringmodernpayments.com/stripe-webhook-event-cheatsheet#8).
Но воскрешение событие имеет смысл ...
- И, конечно же, если приложения только необходимы для мониторинга одного типа событий (т.е.
customer.subscription.updated
), то было бы значительно упростить программный код без необходимости также контролироватьinvoice.payment_succeeded
,invoice.created
иcharge.succeeded
. - Однако документация на жизненный цикл подписки (https://stripe.com/docs/subscriptions/lifecycle) абсолютно не упоминает о мероприятии
customer.subscription.updated
.
Кажется странным, что такое соответствующее событие не возникает, когда это должно быть. Документация также действительно не говорит, когда обновляются значения current_period_end
и current_period_start
, что ограничивает их полезность.
Итак, в моем приложении, после получения события invoice.payment_succeeded
, как мой программный код может определить, когда конец подписки клиента закончится?
Я бы с уважением бросил вызов заявлению «Когда выставлен счет.payment_successed, вам нужно обновить информацию на вашей стороне (например, период подписки) »- ИМХО, решающее, как обрабатывать эти события, очень сильно зависит от поведения приложения, которое вы пытаетесь достичь. Мое предпочтение было бы обновить подписка на моей стороне, когда Stripe сообщает мне, что подписка была обновлена (событие customer.subscription.updated содержит объект подписки). Событие invoice.payment_succeeded содержит объект счета. –
Вы правы для 'customer.subscription.updated' –
Согласитесь с @SimonCurd. С этим меня тоже смутило. Я решил изменить подписку только тогда, когда у вас запущен customer.subscription.updated - больше нигде. – nickdnk