Paypal IPNを使用してサイトにサブスクリプションを追加します。これは非常にうまく機能し、新しいサブスクリプションを正常に作成して確認できます。サブスクリプションには2週間の無料トライアルがあります。残念ながら、このガイドはサブスクリプションのステータスについて少しあいまいでした。
現時点では、ユーザーアカウントは、subscr_signupまたはsubscr_paymentを受信するとサブスクライブ状態になり、subscr_cancelまたはsubscr_failedを受信すると削除されます。これは正しいと思いますが、確認することをお勧めします。
また、subscr_eotとは何ですか? IPNガイドでは、これを「サブスクリプションの期間終了」と説明しています。試用期間が終了した後にトリガーされますか?
subscr_eot
は、ユーザーの最後の有料インターバルが終了したときに送信されます。 subscr_cancel
は、使用によりサブスクリプションがキャンセルされるとすぐに送信されます。次に例を示します。
ユーザーは1日目に、月に1回請求されるサブスクリプションにサインアップします。 subscr_signup
はすぐに送信され、subscr_payment
は、支払いが完了するとすぐに送信されます(通常はすぐに送信されます)。
13日目に、ユーザーはキャンセルします。 subscr_cancel
はすぐに送信されますが、ユーザーは技術的に30日目まで支払い済みです。この時点でキャンセルするのはあなた次第です。
30日目のsubscr_eot
が送信されました-ユーザーがキャンセルしました。これは、最後の支払いが支払われる日です。
トライアルサブスクリプションの変更はそれほど多くありません-トライアルサブスクリプションが有効になる前にユーザーがキャンセルした場合、subscr_cancel
はすぐに送信され、subscr_eot
は、トライアルの終了時に送信されます。
また、興味深い詳細の1つは、subscr_eot
がsubscr_failed
とどのように連携するかです。
subscr_eot
は[〜#〜] final [〜#〜]subscr_failed
の後にあるようです。したがって、アカウントで失敗した支払いを3回自動的に再試行するように設定すると、次のようになります。
最初に失敗した支払い=> subscr_failed 2番目に失敗した支払い=> subscr_failed 3番目に失敗した支払い=> subscr_failedおよびsubscr_eot
したがって、基本的には、コードでsubscr_failed
を設定して次のようなメールをトリガーできます
ユーザー様、お支払い情報を確認してください。クレジットカードの有効期限などを更新する必要がある場合があります。引き続きアクセスできます。数日後にもう一度お試しください。
subscr_eot
を設定して、実際にサブスクリプションをオフにし、次のようなメールを送信します
申し訳ありませんが、まだ支払いが行われておらず、プロフィールが削除されています。ログインしてお支払い情報を更新することで、再度有効にすることができます
基本的にこれは「良い」方法であり、顧客には猶予期間があり、クレジットカードの期限切れなどが原因でアカウントが予期せずシャットダウンされることはありません。
Chrisが投稿したスレッドは最近更新されました。
2010年のある時点で、ユーザーがアカウントをキャンセルすると、Paypalはsubscr_eotの使用を停止しました。いくつかの苦情の後、彼らはこれを復活させましたが、そうするのに6か月かかりました。これはすべて、ピーターが承認された回答で説明したように、サブスクリプション通知をもう一度処理できることを意味します。
Paypal担当者から:
subscr_cancelは、プロファイルがキャンセルされ、今後の支払いがないことを意味します。ただし、購入者が前払いで現在の請求サイクルの支払いを済ませている場合は、subscr_eotを使用してプロファイルを終了できます。
ただし、支払いが複数回失敗した場合にどうなるかはまだわかりません。現時点でのPaypalのドキュメントはひどいものです。
それが新しいかどうかはアカウントに依存しますsubscr_eot
送信されます。これはちょっと私を超えていますか?
サブスクリプションを管理する適切な方法がまだ見つかりません。支払いに遅延がある場合、サーバーでの日付の計算は非常に速く失敗する可能性があります。