Добавление подписчика в группу совместимо с таблицей цен Stripe?

Можно ли добавлять подписчиков в группы, используя плагин Subscriptions вместе с таблицей цен Stripe?

Я перешёл на использование таблицы цен Stripe для отображения своих продуктов вместо плагина Subscriptions. Подписчики больше не добавляются в указанную группу пользователей (для оригинальной подписки, созданной в Discourse, но теперь добавленной в мою таблицу цен). Новые продукты, созданные в Stripe, также не отображаются в плагине подписок Discourse, хотя раньше, до перехода на таблицу цен, это работало.

Это ожидаемое поведение, или я что-то сломал по пути?

Если это ожидаемо, могу ли я помочь добавить строку в руководство по плагину, чтобы подчеркнуть последствия перехода на таблицу цен?

Я изучу рекомендации по вебхукам и интеграции, но любые подсказки о том, как автоматизировать добавление подписчиков в группу, будут очень кстати :pray:

Спасибо

Да, но вам нужно убедиться, что вы создали продукты в Discourse, а не в Stripe.

Создание продукта сначала в Discourse:

После создания продукта в Discourse вы создадите для него план, где укажете цену, а также группу:

Затем в Stripe при создании таблицы цен вы должны выбрать только продукты, созданные в Discourse:

После этого, когда пользователь оформит подписку, он будет добавлен в выбранную группу:

И если у вас есть данные, созданные не в Discourse, но которые вы хотите, чтобы Discourse узнал (и вы используете самохостинг), вы можете попробовать команду rake subscriptions:subscriptions_import

Спасибо за такой подробный ответ, @blake! Я настрою продукты и тарифы в Discourse и отмечу это как решение после тестирования.

Похоже, что купоны и промокоды успешно передаются между Stripe и Discourse. Мой финальный тест — проверить, сохраняет ли интеграция работоспособность после добавления описания и маркетинговых функций к продукту в Stripe (для заполнения таблицы цен).

Спасибо за дополнительный совет, @pfaffman :smiley:

Кто-то купил мой продукт и план, созданные в Discourse, в выходные, но его не добавили в указанную группу. Похоже, что редактирование продукта и плана в Stripe после их создания в Discourse каким-то образом нарушает эту интеграцию.

Я также только что проверил это сам, купив подписку, и меня не добавили в указанную группу.

Если кто-то может подсказать, как further протестировать это, чтобы понять, где возникает ошибка, я с радостью это сделаю.

Также я собираюсь изучить другие способы интеграции платежей Stripe с Discourse.

Извините, это всё ещё не работает :thinking:

Хорошо, что вы об этом упомянули. Похоже, есть отдельная проблема с разовыми платежами. Я только что протестировал это локально и вижу ошибку в вызове вебхука, из-за которой, вероятно, пользователь не добавляется в группу или транзакция не отображается на странице биллинга пользователя.

Я попробую найти решение в коде, чтобы будущие транзакции работали корректно.

Хорошо, я создал исправление кода для этой проблемы. Если вы обновите плагин подписок до последней версии, он должен работать для всех новых разовых платежей с таблицей цен.

Отлично! Спасибо за быстрое исправление :smiley:

Я проверю это сам и с клиентами и отмечу это как решение, как только буду уверен, что всё работает как надо.

Приношу извинения, но вынужден сообщить, что исправление кода не решило проблему. После обновления я получил четыре покупки от двух разных клиентов, и ни одна из них не была добавлена в группы. Кроме того, на их страницах биллинга я не вижу никаких платежей или подписок.

Мне кажется, что исправление кода изменило лишь одно: продукты, которые я создал в Discourse после обновления плагина Subscriptions, теперь помечены в Stripe метаданными repurchaseable: false. Однако продукт, созданный до применения исправления, не получил эту метку (он уже был куплен).

Сообщите, пожалуйста, чем я могу помочь в диагностике проблемы!

Прежде всего, поздравляю с таким количеством регистраций — это действительно круто! Однако извините, что с плагином подписки всё ещё не всё работает как надо. В моей локальной среде пользователи добавляются в группы сразу после регистрации, так что я знаю, что это возможно. Я проведу дополнительное расследование, а затем напишу вам в личные сообщения, чтобы уточнить некоторые детали вашей настройки и вместе разобраться в проблеме.

Хорошо, мне удалось воспроизвести вашу проблему в тестовой производственной среде, которую я настроил для проверки плагина. Первое, что нужно исправить, — добавить событие checkout.session.completed в ваш существующий вебхук.

Если это событие отсутствует, Stripe не будет отправлять информацию о чекауте таблицы цен в Discourse.

Всё, что вам нужно сделать, — это добавить событие, но возможно, потребуется ещё одно исправление в коде, над которым я сейчас работаю.

Привет, Блейк,

У меня возникла та же проблема. После покупки, которая успешно отображается в Stripe, обновление пользователя не работает:

Надеюсь, вы сможете помочь!

Заранее большое спасибо!

Спасибо, Блейк, что углубился в это. Я обновил свой вебхук Stripe, добавив checkout.session.completed.

Вернусь, как только будут новости об успехе или неудаче!

Заметка для себя — найти вебхуки можно по адресу https://dashboard.stripe.com/webhooks/. Я установил плагин Subscriptions несколько лет назад, поэтому немного забыл процесс настройки…

Stripe сообщает, что за последние 15 дней не было попыток отправки вебхуков, поэтому где-то явно существует блокировка связи.

Есть ли на странице ваших вебхуков URL вида https://your-discourse-site/s/hooks?

Также убедитесь, что секрет подписи для вебхука совпадает с тем, что указан в Discourse:

Не уверен, адресован ли этот вопрос мне или @marpoe, но да — в Stripe указан правильный URL Discourse, а в Discourse — правильный секретный ключ Stripe. Я знаю, что вебхук работает почти правильно, потому что Stripe создаёт продукты и тарифы в ответ на их настройку в Discourse :smiley:

Добавление события checkout.session.completed в вебхук сработало! :partying_face:

Я только что сделал тестовую покупку, и мой пользователь был успешно добавлен в группу.

Спасибо за время и усилия, которые вы вложили в исправление этой ошибки с разовыми платежами.

Это тоже сработало у меня! Большое спасибо!