Проблемы с подписками, тестовый режим и варианты оплаты

Привет,

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

:frowning:
Ошибка
при загрузке /s/user/subscriptions
Что-то пошло не так.

При открытии консоли JavaScript я вижу сообщение:

«существует похожий объект в тестовом режиме, но был использован ключ реального режима»

Это заставляет меня думать, что при переключении между режимами возникает проблема согласованности. Теперь, когда я знаю об этой проблеме, я буду внимательнее выбирать аккаунты для тестирования, но мой вопрос: как исправить эту проблему для пользователей, которые оформили подписку в тестовом режиме, а теперь хотят оформить реальную подписку в реальном режиме?

(т. е. как устранить эту ошибку)

Есть ли какой-то SQL-запрос или что-то подобное, чтобы очистить все подписки пользователя, включая те, которые могут вызывать проблемы?
Спасибо.

Хорошо, я думаю, что исправил это (!)

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

Что я пробовал…

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

./launcher enter app
rails c
u = User.find_by_username(<username>)
c = DiscourseSubscriptions::Customer.find_by(user_id: u.id)
subscription = DiscourseSubscriptions::Subscription.where(customer_id: c[:customer_id])
subscription.destroy_all
c.destroy

Похоже, что «subscription.destroy_all» удаляет зависшие внешние ссылки на Stripe, а «c.destroy» удаляет локальную подписку. Всё ли в порядке, или я что-то сломал «под капотом»?

3 лайка

Да, всё отлично, это нормально для очистки подписок тестовых пользователей.

Кстати, одна из проблем, с которыми я столкнулся в Subscriptions, заключается в том, что он действительно работает только с подписками (!). Он не очень хорошо справляется с добавлением случайного мерча (кружки, футболки и т. д.). Можно сказать, что это возможно, но представление с помощью таблиц цен не очень хорошо сочетается с реальными подписками. (К тому же есть ограничение в 4 продукта.)

С этой целью мне удалось придумать способ добавления «кнопки» на страницу, которая вставляет «одну» таблицу цен на «одну» страницу. Это снимает ограничения на количество используемых таблиц цен и позволяет размещать их прямо в тексте страниц, что придает им контекст. (Страница подписок кажется немного «выпадающей» из контекста, когда речь идет о том, чтобы пользователь понимал, на что он соглашается, нажимая кнопку «Купить».. :slight_smile:)

Это около 25 строк кода, реализовано через интерфейс администратора. Внешние плагины не требуются. Мне кажется, это универсальное решение, которое я не смог найти в других местах. Где лучше всего опубликовать его для широкого круга пользователей?