Подписки с таблицей цен: ответ «клиент не найден»

Всем привет! У меня возникла проблема, и я уже несколько дней пытаюсь её решить, но безрезультатно. Надеюсь, кто-то здесь сможет помочь :slight_smile:

Discourse 3.4.0.beta1-dev
Subscriptions 2.8.1 - f0b4984
Установка через Docker на Linux VM

Я установил и активировал плагин Subscriptions, и он работает почти всегда при использовании встроенной таблицы цен (иногда пользователь не добавляется в группы после подписки, но это, видимо, отдельная проблема).

Однако мне действительно необходимо использовать таблицу цен и оформление заказа от Stripe, чтобы обеспечить привычный пользовательский опыт и доверие. С этой целью я настроил всё для вебхуков, включая все секреты и прочее (сейчас использую тестовый режим, поэтому применяю тестовые ключи и секреты).

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

Однако в результате в Discourse не создаётся подписка, и группы пользователя не меняются. При просмотре вебхуков в панели управления Stripe я вижу, что они получают ответ 422 с телом:

{
  "errors": [
    "customer not found"
  ]
}

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

Просмотрев базу данных, я не вижу клиентов, упомянутых в вебхуке Stripe, в таблице discourse_subscriptions_customers, а также соответствующей подписки в таблице discourse_subscriptions_subscriptions — что, возможно, ожидаемо, поскольку вызов вебхука никогда не обрабатывается?

Кстати, я подтвердил, что вызовы вебхуков Stripe в целом могут успешно выполняться: если я отключаю настройку «Использовать таблицу цен Stripe» и прохожу встроенное оформление заказа для создания подписки, всё работает нормально. А если затем отменить подписку через Stripe, то вебхук customer.subscription.deleted приходит без проблем.

Надеюсь, я просто что-то упустил, и всё настроено неправильно, но мне очень трудно понять, что именно нужно сделать, чтобы это заработало.

Заранее спасибо!
Росс

Приносим извинения за возникшие проблемы, но спасибо, что сообщили об этом. Надеемся, что нам удастся разобраться в ситуации. Первый вопрос: товары, которые вы выбрали для таблицы цен, были созданы вами внутри Discourse или в Stripe?

У меня возникает та же ошибка в моей рабочей среде, которую я настроил, но не локально, поэтому отладка довольно сложная. Но я уже занимаюсь этим!

Спасибо за ответ :slight_smile:

Я пробовал оба варианта: сначала настроил продукты в Stripe, а затем, увидев в обсуждениях, что их нужно создавать внутри Discourse, переключился на этот способ. Однако проблема сохраняется.

Я предполагаю (извините, если ошибаюсь), что связь с группами определяется метаданными продукта? Вот что я вижу там:

(group_name меняется в зависимости от ценового уровня, что соответствует тому, как я настроил всё в Discourse).

Спасибо, что разбираетесь в этом. Дайте знать, если я могу чем-то ещё помочь :slight_smile:

Я исправил проблему с ответом «Клиент не найден» в таблице цен. Если вы обновите плагин подписок и попробуете снова, всё должно работать.

Извините за задержку с ответом и ещё раз спасибо за проверку :slight_smile:

Я только что обновил всё и провёл быстрое тестирование, но по-прежнему получаю тот же ответ (то есть «клиент не найден») от вебхуков Stripe.

Как вы думаете, мне стоит создать совершенно новую таблицу цен или набор продуктов и протестировать с ними, чтобы исключить возможные проблемы, оставшиеся от предыдущих тестов? (Для этого теста я использовал нового пользователя, но продукты остались теми же, что были ранее).

Можете ли вы еще раз подтвердить, какой хэш коммита указан под номером версии на странице /admin/plugins?

И относится ли это к подписке или к разовой покупке с использованием таблицы цен?

Я добавил новую настройку для плагина подписок для отладки. Она называется discourse_subscriptions_enable_verbose_logging. После её включения вы можете перейти на страницу /logs и снова попробовать пройти процесс оформления заказа, чтобы проверить, появится ли какой-либо вывод. Не стесняйтесь прислать мне несколько скриншотов в личные сообщения, и я помогу вам продолжить отладку.

Конечно, без проблем. Хэш коммита, который у меня есть, совпадает с тем, что на вашем скриншоте: f1b9c96 :slight_smile:

Это для подписки с таблицей цен.

Отлично, спасибо. Я попробую включить эту настройку и посмотрю логи :slight_smile:

Ещё раз спасибо за помощь :slight_smile: