機能リクエスト: 1期間のみ有効なサブスクリプションを提供できるようにしたいです。その期間の終了時に:
- ユーザーはサブスクリプションのDiscourseグループから削除されるべきです(現在の都度払いでは行われないと思います)。
- それ以上の支払いは行われないべきです。
可能な解決策? Discourse Subscriptionsプラグインは、サブスクリプションスケジュールのiteration属性を設定できるようにするべきです。これはStripeのドキュメントのSubscription Schedules APIページで見つけました:
フェーズの長さを設定する
価格の間隔は、サブスクリプションの請求頻度を決定します。たとえば、月間間隔は毎月請求されます。フェーズには、フェーズの期間を指定するために使用するiterations属性があります。この値を間隔に掛けて、フェーズの長さを決定します。サブスクリプション・スケジュールが月間間隔の価格を使用し、iterations=2を設定した場合、フェーズは2か月間持続します。
…
スケジュールの完了
サブスクリプション・スケジュールは、最後のフェーズが完了すると終了します。この時点で、サブスクリプションはそのまま残り、スケジュールとの関連付けは解除されます。スケジュール内の最後のフェーズが完了した後にサブスクリプションをキャンセルしたい場合は、end_behaviorをcancelに設定できます。
「いいね!」 3
いいえ、残念ながらこのプラグインにはあまりにも多くの特殊な点や機能不足がありました。質問時から変更されたかどうかはわかりません。
「いいね!」 1
機能リクエストの趣旨がこちらでも言及されていることに気づきました。
「いいね!」 1
Alex_王
(Alex 王)
5
サブスクリプションプラグインのこの機能に取り組んでいます。うまくいくことを願っています。
「いいね!」 2
nathank
(Nathan Kershaw)
6
幸運を祈ります!いくつかのユースケース、特に単発イベントにも非常に役立つでしょう。
これはもう「三段論法」に達したと確信しています。
「いいね!」 1
この問題に対処するサブスクリプションプラグインのアップデートが近日中にリリースされます。
税金の問題も解決されます: Automatic_tax.enabled for Discourse Subscription plugin
そして、他の支払い方法も有効になります。 How can I customise the discourse-subscription plugin?
このプラグインに関して他に問題点があれば、お気軽にご連絡ください。ほとんど把握していると思いますが、まだ詳しく知りたい部分がいくつかあります。例えば、キャンペーン機能についての皆様の認識についてもっと知りたいです。これを使用したことがある方はいらっしゃいますか? 
「いいね!」 4
nathank
(Nathan Kershaw)
8
betterstreets.nz のキャンペーンを使用しています。問題はありませんが、柔軟性に欠けます。9か月前に設定しましたが、まだ(非常にゆっくりとですが)継続しています。
私の最大の課題は、現在、人々が単にX額を寄付できないことです。代わりに、毎年購読する必要があります。
また、それは同じ言葉で提示されます。つまり、月ごとです。これにより、金額が奇妙になり、ほとんどの人がキャンペーンの考え方とは異なります。ゼロから絶対額のXまでです。年間で提示されたとしても、はるかに良くなるでしょう。
バナーは問題ありません(発見ページの上部とトピックの下部)。しかし、カスタマイズ性は高くありません。サイトの他の部分(他のバナー/フッターなど)に合わせるために、大きくしたり小さくしたりできると良いでしょう。
ユーザーがデバイスで閉じた後、時々再度表示させたり、非常に目立たないものに縮小したりできると良いでしょう(ただし、人が寄付するまで表示されたままにします)。
「いいね!」 2
このフィードバックをいただき、誠にありがとうございます!
大変参考になります。
なるほど。フォーラムに登録して確認したところ、おっしゃっている意味が分かりました。
そもそも却下できないようにするのはどうでしょうか?それほど邪魔ではなく、すでに寄付した人にとっても価値のある情報を提供してくれます。コミュニティの共通の目標となり、寄付者は貢献を認められるに値します。
Discourseでバナーを作成する方法はたくさんあります。現在、どのような方法を使用していますか?
認識したことですが、フォーラムに登録するまで、あなたの取り組みに寄付できるとは知りませんでした。多くの視聴者は受動的な読者であり、登録を決めるのはごく一部であることを私たちは知っています。
したがって、ログインしていないユーザーにもキャンペーンバナーを表示するのは良いアイデアのようです。現在、アクティブなメンバーや登録メンバーではない多くの人々が寄付したいと思っているはずです。
これまでのフィードバックは素晴らしいです!

「いいね!」 2
nathank
(Nathan Kershaw)
10
betterstreets.nzでは、Subscriptionsプラグインのキャンペーン部分に含まれるバナーのみを使用しています。その存在により、他のバナーを追加することができません!
ただし、他のサイトでは他のバナーも使用しています。
完全に同意します。ただし、それが非常に明確で簡単な方法で行える場合に限ります!
「いいね!」 1
Stripeの専門用語は覚えていませんが、プラグイン全体が、新しい方法(さまざまな支払いオプションを可能にする)ではなく、古い方法(クレジットカードのみを可能にする)を中心に構築されています。
キャンセルは紛らわしい方法で説明されています(私の記憶では、自動更新のキャンセルですが、即時キャンセルとして説明されているようです)。
しばらく前に、このプラグインに関するトピックをいくつか追加しました。多くは返信がありませんでしたが、現在プラグインに取り組んでいると聞いてよかったです。編集:ここにリンクがあります - Search results for 'tags:subscriptions @Jonathan5' - Discourse Meta
「いいね!」 2
また、フォーラムへの登録と同時にサブスクリプションも行えるとさらに良いのですが。現状では、2段階のプロセスはすべてのシナリオで理想的とは言えません。
「いいね!」 2
Alex_王
(Alex 王)
14
1回限りのサブスクリプションを時間間隔で正常に解決しました。価格オブジェクトに新しいメタデータ(「recurring:0/1」)を追加しました。価格[:metadata][:recurring]==「0」でサブスクリプションを作成しようとすると、サブスクリプションオブジェクトのcancel_at_end値をtrueに設定します。
次に、1回限りの価格を作成する場合でも、間隔(年、月、日、週)を選択する必要がありますが、「recurring」ボックスをチェックしないでください。
ユーザーがサブスクライブすると、バックエンドは終了日に終了する定期サブスクリプションを作成します。ユーザーは自分で更新をキャンセルする必要はありません。
しかし、作成した製品を削除できないことがわかりました。Cannot delete products on Discourse Subscriptions - #2 by Jonathan5 を参照してください。
アップロード中: image.png…
これが私の問題です。製品を削除できません。
それらをStripeで削除する必要がありますか?
「いいね!」 1
これらの混在したトピックを追跡するのは難しいです!すべてうまくいくことを願っています。プラグインはしばらく試していないので、残念ながらあまり助けになれません。
「いいね!」 2
このトピックはかなり混乱しています。きれいに整理する方法がすぐにはわかりません。
ただし、トピックごとに1つの問題/機能に集中するように皆に提案したいと思います。そうすれば、フォローしやすく、追跡しやすくなります。
「いいね!」 3
@Alex_王 @Jonathan5 @nathank
もしよろしければ、更新されたコードをお試しいただけます。このPRからブランチをチェックアウトしてください。
Webhookメッセージを中継するために、Stripe CLIをローカルで実行する必要があります。使用するコマンドは次のとおりです。
stripe listen --forward-to http://localhost:4200/subscriptions/hooks --api-key yourapikey
また、StripeのWebhookシークレットをDiscourseインスタンスに追加する必要があります(プラグイン設定の「webhook secret」として)。これは、StripeのWebhook作成フォームの右側にあるコードサンプルで見つけることができます。
データ構造の概要と、それがDiscourseのデータ構造にどのように関連しているかについての短いビデオを作成しました。
ほぼ同意しますが、これで修正されたはずです。Stripeで(支払い方法/税金/価格表など)何でも設定でき、すべて機能するはずです。
プラグインは、DiscourseユーザーとStripe顧客間の接続を管理するだけで、製品、プランなどの作成はStripeダッシュボードで完全に完了します。
ただし、バグがまだ存在する可能性があります。何か見つけた場合は報告してください。

「いいね!」 3
nathank
(Nathan Kershaw)
18
これは、もう少し洗練されたら公式プラグインにPRリクエストとして提出する予定のフォークということでしょうか?もしそうなら、素晴らしいです!!!この件に関するあなたの素晴らしい仕事とエネルギーに感謝します!
もしそうなら、すぐに試してみます。もちろん、完全にテストするには少し手間がかかるでしょう。
nathank
(Nathan Kershaw)
19
これをどこで実行しますか?サーバーのrootとして、それともDockerコンテナ内で実行しますか?また、/subscriptions/hooksの前にインスタンスURLを使用しますか?
そして、私が正しいことをしていることを確認するために、公式プラグインの代わりにこれをインストールしますか?
git clone https://github.com/spirobel/discourse-subscriptions -b "feature/rework-admin-page"
「いいね!」 1
これは、ローカルコンピューターで実行される開発インスタンスでのみ必要です。たとえば、ビデオでは、私のDiscourseインスタンスはlocalhost:4200で実行されているため、コンピューターで実行されていることがわかります。
この正確な環境を再現したい場合は、このガイドに従ってください。
Stripeサーバーはローカルネットワーク上のlocalhost:4200に到達できないため、Stripeサーバーから来るWebhookリクエストを中継するためにこのコマンドを実行する必要があります。
インターネットに接続されたサーバーでこれを試したい場合は、公式チュートリアルのWebhook構成に従ってください。Discourse Subscriptions Plugin
(現時点では)ライブ顧客データとDiscourseサブスクリプションプラグインの古いバージョンがインストールされているインスタンスにはインストールしないでください。2つのバージョンは競合するため、2番目のステージングサーバーで試してください。
テストしていただきありがとうございます!これにより、まだアカウントを持っていない訪問者もプランを購入できるようになります。支払い後、Discourseインスタンスに自動的に招待され、適切なグループメンバーシップが付与されます。
「いいね!」 2
nathank
(Nathan Kershaw)
21
私は比較的静かなライブサイト(betterstreets.nz)を持っており、実質的に失敗した以前の実験からの顧客は私を含めて3人しかいません。以前のプラグインとそのデータを必要に応じて削除して(ただし、正しいRailsコンソールコマンドで手助けが必要になります)、そこでテストすることは喜んで行います。その場合でも競合は発生しますか?