2017-01-09 26 views
0

Stripe-Connectアプリケーションでは、ストライプcustomer.subscription.deletedを処理したいです。 失敗した支払いの試行後にサブスクリプションが自動的にキャンセルされたとき支払い)。cancel_at_period_endを使用してStripeサブスクリプションの自動キャンセルを検出する

Stripe documentationの状態: "お客様のリクエストではなく、customer.subscription.deletedイベントのリクエストプロパティがnullの場合、サブスクリプションが自動的にキャンセルされたことがわかります。 Detect if subscription is cancelled automaticallyも参照してください。

しかし、サブスクリプションがcancel_at_period_endを "true"に設定した場合、サブスクリプションが期間終了時に "自然に"終了しても、customer.subscription.deletedイベントのリクエストプロパティはnullになります支払いが失敗した結果。

私の質問は、cancel_at_period_endがtrueに設定されたサブスクリプションが支払いの試行に失敗したためにキャンセルされたことをどのように検出できますか?

答えて

1

残念ながら、この2つのケースを区別する方法はありません。私がお勧めしたいのは、あなたが最後に、現在の期間の終わりにキャンセルするサブスクリプションをマークしたことを保存することです。そのようにしてcustomer.subscription.deletedイベントが発生した場合、支払いが失敗したかどうかを確認することができます。

もう1つの解決策は、そのサブスクリプションの最新の請求書を見ることです。 attempt_countプロパティを見れば、何回リトライが行われたかを知ることができ、キャンセルが最後の試みから来たものかどうかを推測できます。

+0

ええ、それは私が考えたものです。ああ、とにかくありがとう! 私はtry_countに基づいてこれを推測するというアイデアはあまり好きではありません。サブスクリプションに失敗した支払いの試行設定を導入するからです。別の言葉では、サブスクリプションで設定されたものが支払い設定に失敗したことを前提にせずに、実際に失敗した支払いであると判断したtry_countsの値はどのように分かりますか? –

+0

これの一部を推測する必要がありますが、これはバックアップソリューションです。私の目の正しい解決策は、これを自分で追跡することです。 – koopajah

関連する問題