Я пытаюсь использовать подписки (таблица цен) на моей собственной инсталляции. Я настроил и протестировал всё в тестовом режиме Stripe, однако при переходе в реальный режим, хотя всё, кажется, работает, вкладка «Оплата» в моём профиле теперь выдаёт ошибку.
Ошибка
при загрузке /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» удаляет локальную подписку. Всё ли в порядке, или я что-то сломал «под капотом»?
Кстати, одна из проблем, с которыми я столкнулся в Subscriptions, заключается в том, что он действительно работает только с подписками (!). Он не очень хорошо справляется с добавлением случайного мерча (кружки, футболки и т. д.). Можно сказать, что это возможно, но представление с помощью таблиц цен не очень хорошо сочетается с реальными подписками. (К тому же есть ограничение в 4 продукта.)
С этой целью мне удалось придумать способ добавления «кнопки» на страницу, которая вставляет «одну» таблицу цен на «одну» страницу. Это снимает ограничения на количество используемых таблиц цен и позволяет размещать их прямо в тексте страниц, что придает им контекст. (Страница подписок кажется немного «выпадающей» из контекста, когда речь идет о том, чтобы пользователь понимал, на что он соглашается, нажимая кнопку «Купить».. )
Это около 25 строк кода, реализовано через интерфейс администратора. Внешние плагины не требуются. Мне кажется, это универсальное решение, которое я не смог найти в других местах. Где лучше всего опубликовать его для широкого круга пользователей?