Stripeの実装にあたって、実際に自分で開発しているサービスのケースに合わせた場合のユースケースメモ。
参考: https://qiita.com/AkihikoNambu/items/bb496612f3044b2b3e1e
有料プランをアップグレードするケース(前払い制)
(例) ライトプラン(¥980) -> ベーシックプラン(¥2980)に変更するケース
4/1 ライトプランの料金(¥980)を支払う
4/15 ベーシックプランへ変更
差分を計算
ベーシックプラン => 4/15 ~ 4/30 => (2980 * (15/30)) => 1490
ライトプラン 4/1 ~ 4/15 => (980 * (15/30)) => 490
差分: 1490 - 490 = 1000
5/1 プレミアムプランの料金 + 差分を請求 = 2980 + 490 = 3470円が請求される
有料プランをダウングレードするケース(前払い制)
(例) ベーシックプラン(¥2980) -> ライトプラン(¥980)に変更するケース
4/1 ベーシックプラン(¥2980)を支払う
4/15 ライトプランへ変更
差分を計算
ライトプラン 4/1 ~ 4/15 => (980 * (15/30)) => 490
ベーシックプラン => 4/15 ~ 4/30 => (2980 * (15/30)) => 1490
差分: 490 - 1490 = ¥-1000
5/1 ライトプラン(¥980)の料金 + 差分を請求 = 980 + (-1000) = 0円が請求される(差額残り ¥-20)
6/1 ライトプラン(¥980)の料金 + 残りの差分を請求 = 980 + (-20) = ¥960が請求される(差額残り ¥0)
7/1 ライトプラン(¥980)の料金が請求される
定期課金終了時に未払いの差額が残っているケース(前払い制)
(例) ライトプラン(¥980) -> ベーシックプラン(¥2980)に変更するケース
4/1 ライトプランの料金(¥980)を支払う
4/15 ベーシックプランへ変更
差分を計算
ベーシックプラン => 4/15 ~ 4/30 => (2980 * (15/30)) => 1490
ライトプラン 4/1 ~ 4/15 => (980 * (15/30)) => 490
差分: 1490 - 490 = 1000
4/20 キャンセル手続き
差分: ¥750が残っている
5/1 差額分はStripeによって自動で決済される。