ディスコース購読を一度限りの支払いに強制する

Discourse Subscriptions プラグインについて、Stripe 側で設定を変更するとどうなるのでしょうか?例えば、Discourse からは製品プランを一回払い(ワンタイムペイメント)に設定することはできません。日次、週次、月次、年次のサブスクリプションである必要があります。しかし、stripe.com にアクセスすれば、既存のサブスクリプションを一回払いに変更できます。これは可能でしょうか?また、これにより Discourse 内でのそのプランの動作はどのように変わるのでしょうか?一回払いとして機能するようになるのでしょうか?

もちろん可能です!プラン作成画面で「再契約」チェックボックスのチェックを外せば、一括払いになります。

ただし、一度作成したプランは変更できません。

「いいね!」 2

その通りです!私の考えが混乱していました。実際にお聞きしたかったのは、「一時的な支払い」が可能かどうか、つまり、支払いが一度きりで、無期限に続くわけではない仕組みです。例えば、「一日パス」のように、5ドルを支払って特別なグループに加入し、1日後などにサブスクリプションが終了し、再度支払うまでそのグループから外れるといった仕組みです。これは可能でしょうか?

残念ながら、現時点ではできません。

「いいね!」 2

プラグインで同様のことをしています。user_group モデルに、ユーザーがサブスクリプショングループに追加されたときにアクションを実行し、その後そのユーザーをグループから削除する処理を(緩く)追加しています。あなたのケースでは、サブスクリプションがユーザーを one-off-weeklong グループに追加したときに、以下の処理を行うようにします。

  • 特定のカテゴリへのアクセス権限を与える weeklong グループにユーザーを追加する
  • 1週間が経過したら weeklong グループからユーザーを削除するジョブを追加する
  • 週が始まった日付を記録するユーザーカスタムフィールドを追加する(もし何か Redis の障害が起きた場合にユーザーを削除できるようにするため)
  • one-off-weeklong グループからユーザーを削除する

もしご興味があれば、私までご連絡いただくか、Marketplace に投稿してください。

「いいね!」 3

しかし、それは愚かです。代わりに、サブスクリプション(サブスクリプションの場合)または顧客(一括払いの場合)のコールバックを追加するだけです。顧客は一種の誤称です。ストライプの顧客IDとストライプの製品IDが含まれています。したがって、次のようなことを行います。

add_model_callback(DiscourseSubscriptions::Subscription, :after_save) do
      Rails.logger.warn("Now got a subscription #{self.external_id} for #{self.customer_id}")
      # do stuff
end

  add_model_callback(DiscourseSubscriptions::Customer, :after_save) do
    Rails.logger.warn("Customer #{self.product_id} for #{self.user_id}")
    # do more stuuff
end
「いいね!」 1

この問題は解決しましたか?

さらにガイダンスを提供していただけますか?この機能の実装方法など。Railsには詳しくありません。よろしくお願いします!

それが私の最高の無料回答だと思います。

「いいね!」 3

ディスコースサブスクリプションプラグインを修正して解決しました。ありがとうございます。

しかし、元のディスコースサブスクリプションプラグインを使用しても、製品を削除できないことがわかりました。何かお考えはありますか?

削除する必要はありません。何も害はありません。販売したものの記録として必要です。Stripeコンソールから削除できるはずです。

「いいね!」 2

Stripe では、商品を削除することもできませんが、非アクティブ化/アーカイブすることはできます。

彼らは次のように述べています。

「いいね!」 2

これはまだ達成したいことなのか、それとも何か方法を見つけられたのか分かりません。Discourseに自動化された機能ではないようですが、他の方法があるかもしれません。毎日新しい飲み物を買ってテーブルに座る必要があるコーヒーショップのような取引に似ています。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.