ユーザがPayPalのウェブサイトにいるときに行われます。
したがって、ユーザーをどこにでもリダイレクトすることはできません。また、あなたがしたいことは、コードの "VERIFIED"セクションで行う必要があります。したがって、PayPalにデータを返さないようにしてください。
あなたは自分のやりたいことを処理し、@ Barmar氏はデータをローカルファイルやデータベースに記録し、これらのログファイルを手動で監視するか、アプリケーション用に作成したカスタムログビューア...
もちろん、成功のためにPayPalに2つのリンクを設定してお支払いのステータスに応じて、いずれのPayPalがこれらのリンクのいずれかにユーザーを戻します。
お客様のサイトからPayPalにお支払いを送信する場合は、custom
というフィールドにカスタムデータを送信することができます。このフィールドには、userID
または現在のユーザーの一意のIDを送信できます。 PayPalがIPNリスナーを呼び出すと、このフィールドがトランザクションデータと共にあなたに送信されます。
あなたの条件の1つが失敗したがPayPalで支払いが成功したとしましょう。その条件のデータベースまたはローカルファイルに+ userID
のレコードを設定することも、(カスタムフィールドから)支払を行ったユーザーの固有キーを設定することもできます。成功ページでは、そのページにアクセスしたユーザーのuserID
を使用してそのテーブルをクエリできます。レコードが見つかった場合は、何か問題が生じたことを意味します。それでは、これまでの状況でできることを実行できます(関連するメッセージを表示するなど)
しかし、この方法を使用すると注意しなければならないのは、ユーザーがブラウザを閉じてからウェブサイトに戻らないためです。支払い!
成功リンクにコードを書くことができますが、管理部分のトランザクションレコードも監視する必要があります。あなたの条件のいくつかまたはあなたの側からの人間の相互作用を必要とするその他の状況に失敗したときにユーザーに連絡する必要があるかもしれないので...
私はコードをチェックしました。何か間違っていると、エラーを記録し、ユーザーのアカウントを更新しません。成功したかどうかにかかわらず、PayPalに何も返信しません。リスナーが運営されている時間までに、顧客の口座はすでに引き落とされていると思います。 – Barmar
これは古いコードなので、実際には正しい手順であるとは限りません。 – Barmar
は、コーディングロジックではなくビジネスプラクティスのように聞こえます。 – nogad