私は自分のサイトでPayPalのホストされたページを使用しています。 iframe urlで使用されているSECURETOKEN
を作成すると、返信URLを渡します。クライアントの支払いが成功した後、SECURETOKEN
が作成されたときに返されたURLにPayPalのブラウザポストバックが表示されます。ポストバックを取得する前にユーザーがタブを閉じて、トランザクションが承認され、ローカルDBで承認されたものとしてマークすることはできません。IPNを使用してPayPalでのお支払いを確認する
回避策は、IPNリスナーを作成し、有効なIPN要求を受け取ったときにローカルレコードを更新することでした。
ここで問題は、iframeポストバックで取得しているパラメータがありません。これは必須です(ACC
、EXPTIME
、PNREF
など)。
私が読むことができる限り、IPN
は決してそれらのデータを要求で送信しません。これはpaypalのマネージャーの中で無効にすることができますか?そうでない場合は、誰もこの問題の解決方法を提案できますか?
おかげ
私は全体のアプローチが間違っていると思います。これまでになく、つまりIPNを取得したときなど、お金を受け取った時点で完了した取引をマークする必要があります。他には何もビジネスセンスがありません。余分なパラメータは、IPNを取得するまでデータベースに保存する必要があります。 – EJP
@EJP多分私は全体の流れを説明していないかもしれませんが、はい、私は取引が承認されるまで承認されたものとしてマークしません。余分なパラメータは支払いと同じリソースに保存されますが、IPNやその他のPayPalで確認済みのポストバック – dzona
から確認を受けるまで、すべてのビジネスプロセスで無視されます。 – EJP