Подписки Discourse — уточнение «Отмена в конце цикла»

Продолжение обсуждения из темы Подписки Discourse — изменение цены — как отменить автоматическое продление вместо полной отмены подписки:

Запрос на новую функцию: Было бы полезно, если бы пользователь мог выбрать отмену подписки в конце цикла, а не только возможность отменить её немедленно.

Я видел это в документации Stripe, в разделе «Отмена в конце цикла»:

Если же вы хотите отменить подписку в конце текущего платёжного периода (то есть на срок, за который клиент уже оплатил), обновите подписку, установив значение cancel_at_period_end в true:

Вы можете реактивировать подписки, запланированные на отмену (с параметром cancel_at_period_end), изменив cancel_at_period_end на false. Вы можете реактивировать подписку в любой момент до конца периода.

1 лайк

Оказывается, пользователь может сделать то, что я просил (я уже изменил «разрешить» на «уточнить» в заголовке)… поэтому вот два новых, но связанных…

Предложения по улучшению: Стандартная формулировка должна четко различать два типа отмены. В интерфейсе администратора должна быть та же колонка «Статус», что и в пользовательском интерфейсе.

Вот некоторые детали…

Похоже, что «отмена» в Discourse Subscriptions означает два разных действия в зависимости от того, кто её выполняет! Для пользователя это означает только отключение автопродления; для администратора — немедленную полную отмену подписки.

  1. Если пользователь нажимает значок корзины на странице u/.../billing/subscriptions, появляется запрос: «Вы уверены, что хотите отменить эту подписку?»

    Выбор «Да» вызывает вебхук customer.subscription.updated.

    В ответе выделяются два важных параметра: "cancel_at_period_end": true и "status": "active". На странице подписки пользователя статус всё ещё отображается как «Статус: Активен», но в поле «Продлевается» теперь указано «отменено». Пользователь остаётся в группе подписчиков.

    К сожалению, в интерфейсе администратора теперь не отражается, что автопродление отключено — там просто указано «Статус: активен».

  2. Если администратор нажимает «Отменить» на странице /admin/plugins/discourse-subscriptions/subscriptions, снова появляется запрос: «Вы уверены, что хотите отменить эту подписку?» (также задаётся вопрос о возврате средств).

    Выбор «Да» вызывает вебхук customer.subscription.deleted.

    В ответе содержится параметр "status": "canceled". Подписка удаляется везде, а пользователь исключается из группы подписчиков.