# サブスクリプションの問題、テストモード、請求オプション

**URL:** https://meta.discourse.org/t/problem-subscriptions-test-mode-and-billing-option/355416
**Category:** Bug
**Tags:** subscriptions
**Created:** [2025 年 3 月 3 日午前 10:12 UTC](https://meta.discourse.org/t/problem-subscriptions-test-mode-and-billing-option/355416 "2025-03-03T10:12:17Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![MadPenguin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/madpenguin/32/323935_2.png) [@MadPenguin](https://meta.discourse.org/u/MadPenguin)
#### Post date: [2025 年 3 月 3 日午前 10:12 UTC](https://meta.discourse.org/t/problem-subscriptions-test-mode-and-billing-option/355416/1 "2025-03-03T10:12:17Z")

</div>

こんにちは。

セルフホストインスタンスでサブスクリプション（料金表）を使用しようとしています。Stripeのテストモードで設定し、テストしましたが、ライブモードに切り替えると、一見機能しているように見えますが、「請求」タブにエラーが表示されます。

> ☹  
> エラー  
> /s/user/subscriptions の読み込み中にエラーが発生しました  
> 問題が発生しました。

JavaScriptコンソールを確認すると、以下のメッセージが表示されます。

「テストモードで類似のオブジェクトが存在しますが、ライブモードのキーが使用されました」

これは、モードを切り替える際に一貫性の問題が発生していることを示唆しています。この問題がわかったので、どの口座でテストするか注意できますが、質問は、テストモードで購読したユーザーが、ライブモードで実際の購読を行いたい場合に、この問題をどのように解決するかということです。

（つまり、このエラーをどのようにクリアするか）

データベースクエリを実行したり、問題を引き起こす可能性のあるユーザーのすべてのサブスクリプションをクリアしたりするようなことはありますか？  
ありがとうございます。

---

<div class="post-metadata">

### Author: ![MadPenguin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/madpenguin/32/323935_2.png) [@MadPenguin](https://meta.discourse.org/u/MadPenguin)
#### Post date: [2025 年 3 月 3 日午後 12:17 UTC](https://meta.discourse.org/t/problem-subscriptions-test-mode-and-billing-option/355416/2 "2025-03-03T12:17:52Z")

</div>

わかりました、修正できたと思います（！）

要約すると、テストモードを使用すると、テストサブスクリプションを試したユーザーに対してアーティファクトが残ったようです。サブスクリプションが正しくまたは期待どおりの方法でキャンセルされなかったと推測します。本番モードに切り替えると、請求タブでエラーが発生します。

### 試したこと…

まず、これを文字通りに受け取らないでください。他の投稿に基づいて推測していることがほとんどで、使用したコマンドはこれらですが、文字通り使用して数回繰り返す必要があったかもしれません…しかし、これは大まかな要点です。

```plaintext
./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」はローカルサブスクリプションを削除するようです。これは問題ありませんでしたか、それとも内部で何か壊してしまいましたか？

---

<div class="post-metadata">

### Author: ![blake](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blake/32/157322_2.png) [@blake](https://meta.discourse.org/u/blake)
#### Post date: [2025 年 3 月 11 日午後 3:38 UTC](https://meta.discourse.org/t/problem-subscriptions-test-mode-and-billing-option/355416/3 "2025-03-11T15:38:26Z")

</div>

> [@MadPenguin](#):
>
> これは大丈夫でしたか、それとも内部で何か壊してしまいましたか？

はい、テストユーザーのサブスクリプションをクリーンアップするのに完全に問題ありません。

---

<div class="post-metadata">

### Author: ![oddjobz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/oddjobz/32/364342_2.png) [@oddjobz](https://meta.discourse.org/u/oddjobz)
#### Post date: [2025 年 3 月 11 日午後 4:58 UTC](https://meta.discourse.org/t/problem-subscriptions-test-mode-and-billing-option/355416/4 "2025-03-11T16:58:25Z")

</div>

ちなみに、サブスクリプションで私が抱えていた問題の1つは、本当にサブスクリプションしかできないことです！ランダムなグッズ（マグカップ、Tシャツなど）を追加するのはあまり得意ではありません。議論の余地はありますが、価格表を使ったプレゼンテーションは、実際のサブスクリプションと並行して機能しません。（そして、製品数は4つまでという制限があります）

そのために、「ボタン」をページに追加して、ページに「価格表」を挿入する方法を考案しました。これにより、使用できる価格表の数に制限がなくなり、ページ内にインラインで使用できるようになります。これにより、ある程度の文脈が生まれます。（サブスクリプションページは、ユーザーが「購入」をクリックしたときに何が起こるのかを確実に知るという点で、少し「文脈から外れている」ように感じます：slight\_smile:）

これは約25行で、管理者のUIから実行できます。外部プラグインは不要です。他では見つけられなかった、一般的に役立つソリューションのように思えます。一般公開するにはどこに投稿するのが最適でしょうか？
