2017-01-12 6 views
0

私はPayPal IPNリスナーに条件を入れています。取引番号がデータベースの前の番号と一致していないこと、受信者の電子メールが正しいことなどを確認しているなどです。これらのいずれかテストは失敗する?お支払いを停止しますか?ユーザーはどこかにリダイレクトする必要がありますか?すべての助けに感謝します!ただ、それはあなたと同じ質問を有していてもよく、他の将来の訪問者を助けるかもしれ念のために、ここで1つの答えに私のコメントを組み合わせる:)条件に違反した場合、IPNリスナーは何をすべきですか?

PayPalのIPNリスナーのためのあなたのコードは時に支払いPayPalウェブサイトによって呼び出され

+0

私はコードをチェックしました。何か間違っていると、エラーを記録し、ユーザーのアカウントを更新しません。成功したかどうかにかかわらず、PayPalに何も返信しません。リスナーが運営されている時間までに、顧客の口座はすでに引き落とされていると思います。 – Barmar

+0

これは古いコードなので、実際には正しい手順であるとは限りません。 – Barmar

+0

は、コーディングロジックではなくビジネスプラクティスのように聞こえます。 – nogad

答えて

0

ユーザがPayPalのウェブサイトにいるときに行われます。

したがって、ユーザーをどこにでもリダイレクトすることはできません。また、あなたがしたいことは、コードの "VERIFIED"セクションで行う必要があります。したがって、PayPalにデータを返さないようにしてください。

あなたは自分のやりたいことを処理し、@ Barmar氏はデータをローカルファイルやデータベースに記録し、これらのログファイルを手動で監視するか、アプリケーション用に作成したカスタムログビューア...

もちろん、成功のためにPayPalに2つのリンクを設定してお支払いのステータスに応じて、いずれのPayPalがこれらのリンクのいずれかにユーザーを戻します。

お客様のサイトからPayPalにお支払いを送信する場合は、customというフィールドにカスタムデータを送信することができます。このフィールドには、userIDまたは現在のユーザーの一意のIDを送信できます。 PayPalがIPNリスナーを呼び出すと、このフィールドがトランザクションデータと共にあなたに送信されます。

あなたの条件の1つが失敗したがPayPalで支払いが成功したとしましょう。その条件のデータベースまたはローカルファイルに+ userIDのレコードを設定することも、(カスタムフィールドから)支払を行ったユーザーの固有キーを設定することもできます。成功ページでは、そのページにアクセスしたユーザーのuserIDを使用してそのテーブルをクエリできます。レコードが見つかった場合は、何か問題が生じたことを意味します。それでは、これまでの状況でできることを実行できます(関連するメッセージを表示するなど)

しかし、この方法を使用すると注意しなければならないのは、ユーザーがブラウザを閉じてからウェブサイトに戻らないためです。支払い!

成功リンクにコードを書くことができますが、管理部分のトランザクションレコードも監視する必要があります。あなたの条件のいくつかまたはあなたの側からの人間の相互作用を必要とするその他の状況に失敗したときにユーザーに連絡する必要があるかもしれないので...

関連する問題