2

Paypal サブスクリプションとインスタント支払い通知 (IPN) を使用して、サイトのサブスクライバーを処理しています。

ほとんどの場合、問題なく動作しますが、時折発生する問題が 1 つあります。

通常、ユーザーがサブスクリプションをキャンセルした場合、サイトへのアクセスを無効にする前に、「期間の終了」(subscr_eot) 通知を待ちます。

そのため、1 か月分を前払いしてすぐにキャンセルした場合でも、その月の残りの期間は引き続きアクセスできます (そうあるべきです)。

しかし、一部のユーザーは、次の場合にこの問題を抱えています。

  1. サブスクリプションをキャンセルする
  2. 「期間の終わり」に達する前に、彼らは再購読を決定します
  3. 最初のサブスクリプションの「期間の終わり」に達すると、私のアプリは通知を受け取り、「アカウントが無効になっています。もう一度サインアップしたい場合は、再登録できます.ここをクリックして購読してください。」
  4. 彼らは考えているので、これは彼らを混乱させます...それは奇妙です、私は1週間前のように購読したと思っていました(そして彼らはそうしました)。それで、彼らは再び購読します。現在、彼らは私のサイトに対して 2 つの同時実行サブスクリプションを持っており、1、2 か月でサポート メールを受け取ります (「今月は 2 回請求されましたね!」)。

そのため、これを修正する良い方法が見つかりませんでした。最良の解決策は、paypal に「この人はすでに再登録しましたか?」と尋ねる「期間終了」通知を受信したときに、追加の API 呼び出しを行うことだと思います。もしそうなら、そのメールを送信する必要はありません。しかし、この API 呼び出しを行う方法はまだ見たことがありません。

別の解決策は、キャンセル時にすぐにアカウントを無効にすることです (「subscr_cancel」通知) が、その後、別の怒っているサポート メールが届きます。

他の誰かがこれを解決しましたか?

4

4 に答える 4

1

これが古いスレッドであることは知っていますが、この質問に対する実際の回答を見たことがないので、誰かが私のように疑問に思った場合は、ここに解決策があります.

誰かが自分のアカウント (subscr_cancel) を任期 (subscr_eot) の終了前にキャンセルした場合、それを処理するためにデータベースにセットアップします。たとえば、データベースに「Users」テーブルがある場合は、新しい「int」フィールドを追加して「Term」と呼ぶだけです。デフォルトでは、このフィールドは「0」に設定する必要があります。次に、IPN 内で、ユーザーが期間の終了前にサブスクリプションをキャンセルした場合に、そのユーザーの「期間」フィールドを「1」に設定するように設定します。そのユーザーがサービスに戻って再登録した場合は、IPN にそのユーザーの「期間」フィールドを「0」に更新してもらいます。

次に、メーリング スクリプト内で、期間の終わりに実行されるときに、そのユーザーの「期間」フィールドをチェックするだけです。「0」に設定すると、メールは送信されません。「1」に設定されている場合は、「Adios!」というメールを送信します。

于 2011-04-11T13:28:08.390 に答える
0

私の知る限り、ウェブサイトの支払い標準/プロボタンを使用している場合、サブスクリプションを調べるためのペイパル API はありません。

データベースでアクティブ/キャンセル/再購読の状態を維持し、paypal から取得した IPN メッセージに基づいて状態を更新することで、これに対処しています。ボタンのフィールドを使用して、IPN メッセージを自分の用途にマッピングしcustomます。これは、すべての IPN メッセージで送り返されます。

Paypal の API はこの分野では少し弱いため、このプロセスの管理を支援する多くのサードパーティもあります。Recurly は、私が調べて実装する予定の 1 つであり、他にもあります。

于 2010-03-30T10:56:31.547 に答える
0

PayPal での支払いの重複を防ぐには?

「invoice」パラメータに一意の識別子を追加する必要があります。www.paypal.com のアカウントの [プロフィール] > [販売ツール] セクションで [重複支払いのブロック] を有効にします。

于 2013-08-02T08:57:19.913 に答える
0

Cite: Re: subscr_eot はいつ発行されますか?

2009 年 11 月以降にサブスクリプションの受け入れを開始した場合、サブスクライバー ID は ' I-' で始まり、時間の終わりに 'subscr_eot' を返しません。Paypalは、顧客がその間に再度支払いをしない限り、購読期間を記録し、その期間が満了したときにアカウントをダウングレード(または何でも)するように更新することを期待しています.

于 2010-06-29T17:06:36.680 に答える