2009-07-07 19 views
4

メンバーシップのサイトでは、IPNハンドラを完了しました。私の質問は、サイト「フロー」の1つです。ここでPayPal定期購読 - IPNの取り扱いとサイトの流れ

はそれが行く方法は次のとおりです。 ユーザー - >ランディング - >新規アカウント - >確認してください - >ペイパル - >ありがとう

は、だからここに(ちょうどすべての私の頭の中ですることができた)問題です。アカウントに登録して確認したとします。その後、あなたは「Subscribe!」をクリックします。あなたは支払いを完了し、 "ありがとう"ページに送られるpaypalに送られます。

IPNが自分のサイトにすばやく戻ってこない場合はどうなりますか?購読リンクはまだそこにあり、ユーザーは購読していないと思って再びクリックするかもしれません(たとえ持っていても、ちょうど時間がかかります)。

私が「Subscribe ...」リンクをクリックしてPayPalプロセスを完了しなかったときに、「Activating ...」と言ってプロフィールを更新してこれを戦うと、アクティブ化中... "

興味があるだけに、これはペイパルを統合し、私の最初の時間であるよう:

  • ユーザーが購読リンクをクリックすると、それが完了するために、IPNプロセスにかかる時間の間状態を処理するにはどうすればよいですか?

  • IPNに問題があったことはありますか?

答えて

1

あなたの質問は、リモートサーバーへの接続が非同期(ajax)であることを示唆していますか?

IPNが確実に復帰するように、同期方式で書く方が簡単でしょう。そうでない場合は、次のことを意味します。

a)ユーザーがリモートサーバーにリダイレクトされた後にブラウザを閉じた。
b)リモートサーバーが応答しませんでした。

「キャンセル」ボタンをクリックすると、適切な支払いゲートウェイがユーザーをサイトにリダイレクトしますが、返品は保証されないため、正しく処理する必要があります。

特定のユーザーのトランザクションを記録するための別のテーブルがあります。それは、次のとおりです。

1ユーザー、いくつかの支払いゲートウェイは、トランザクションが完了したときに、あなたのサーバーへのコールバックとして定義することができ、多くの取引

。つまり、接続はゲートウェイによって開始されます。ブラウザは実行されません。ユーザーがコールバックURLへのポストを行うタブ/ウィンドウを閉じて、トランザクションのステータスを更新することができるからです。

私はPayPalがそのようなことを許しているかどうかはわかりませんが、これまでPayPalに問題があったことは一度もありません。

もちろん、非同期が必要な場合は、ajax関数にタイムアウト/エラーハンドラが必要です。もちろん、jQueryを推奨します。

+0

これはすでに同期しています...もしIPNが十分に早く戻ってくると思うのであれば、それはおそらく問題ではないでしょう...そして私は問題でもない問題を考えています。 ありがとうございます! – Chaddeus

+0

悲観的なシナリオを考えて、コードで処理できるようにするのは良いことです:) – Wayne

1

私は、IPNがすぐに到着していないとのいずれかの問題があったことがありませんが、その後、再び、私は本当に多くのユーザーを持つ巨大なウェブサイトを持っていたことがありません。また、IPNを受け取るまでは、ユーザーアカウントを大幅に変更していませんでした。

私はpaypal APIを使用して自分のウェブサイトの1つに対して有料登録を行いました。ユーザーはユーザー名、パスワードなどを記入し、変数をpaypal APIに渡します。私がIPNを受け取るまで、データは作動しませんでした。

ステータス「アクティブ化中...」がユーザープロファイル内で重要であると感じる場合は、タイムスタンプを保留中の支払いにいつでも関連付けることができます。保留中の支払いは10分後にタイムアウトする可能性があります。

+0

IPNがすばやく到着すれば、まだ存在しない問題が発生している可能性があります。私のターゲットは日本語ですので、できるだけ滑らかになっているかどうか確認したいと思いました。 ありがとうございます! – Chaddeus