現在のサブスクリプション システムを変更する必要があり、ユーザーが必要とする機能 (モジュール) に基づいてサブスクリプション ベースで課金されるオプションを追加する必要があります。次に例を示します。
BasePlan1_2015: $10
Feature1: $5
Feature2: $10
Feature3: $5
請求の更新時に、BasePlan1_2015 と Feature1 & Feature2 を使用するユーザーは、
10 ドル + (5 ドル + 10 ドル) = 25 ドルを支払う必要があります。
これまでのところ、2 つのオプションがあります。
オプション 1: 作成された請求書の Webhook をリッスンし、選択した機能に基づいて請求明細行を適用します。ユーザーが初めてその機能を選択すると、私はそれらを請求書に追加し、請求します。次に、必要な請求明細行を受信したすべての Webhook に追加します。
オプション 2: その場で新しい計画を作成します。各機能のコストをDBに保存し、ユーザーが機能の組み合わせを選択すると、その場でプランを作成し、合計を基本サブスクリプションのコストと選択した機能の合計に等しくしてから、それらをサブスクライブしますその具体的な計画。誰かが新しい機能を削除または追加した場合、私は新しい計画を作成し (まだ作成されていない場合)、按分します。
より自動化されており、更新に関してはすべてがStripe側で行われる可能性が高いため、私は2番目のオプションに傾倒しています.
これまでのところ、私が思いつくことができるオプションはこれら 2 つだけですが、他にも何かあるかもしれないという感覚があります。
Stripe でこのようなものを使用している、または使用していて、別のオプションがある人はいますか?
EDIT 1
@koopajahオプション2がより複雑であることは理解しています(すでにテスト済みで、管理するのはそれほど難しくないと感じています)が、これまでのところ、オプション1について理解できません。どのように機能するかは理解していますが、難しいと思いますコードに入れます。基本的に、私の問題は、ユーザーが機能を追加または変更し始めたとき、およびユーザーが使用しなかった時間を按分する必要があるときです。年間サブスクリプションを使用していますが、請求サイクルが長いため、比例配分する必要があります。
オプション 1 の実行方法を見て、よりよく理解できるパッケージやリソースについて何か考えはありますか?
また、ストライプで Webhook をライブで実際にテストすることはできませんが、毎日のサブスクリプションを行い、何日も待って Webhook がどのように機能するかを確認する場合に限ります。
更新 1
オプション 3 に出会いました (ここからStripe FAQ ):
$1 で BasicPlan1_2015 を持っています。基本プランの数量は 10 => $10 です。各機能には、割り当てられた数量番号があります。
Feature1: 数量 5 は $5 を意味します
Feature2: 数量 10 は $10 を意味します
Feature3: 数量 5 は $5 を意味します
ユーザーが 1 つ以上の機能を追加または削除したときに、プランの数量を更新するだけで、すべてが正常に機能するはずです。
BasicPlan1_2015 with Feature 1 and Feature 2 の数量は 10 + (5 + 10) = 25 で、請求サイクルごとに $25 の料金が発生します。
ここで、3 つのオプションすべてを比較すると、オプション 3 に傾倒しています。1 つのプランだけで、複数のオプションと同じ結果が得られますが、他のプランでは複数のプランを用意するか、Webhook を使用する必要があります。