0

PaylPal を Web ショップの支払いモジュールとして統合する作業を行っています。PHPとMysqlを使用しています。PayPal で支払いが行われた後、顧客は私のウェブショップにリダイレクトされます。その時点で、私の IPN en DPT スクリプトが同時に呼び出されます。私がこれを行うのは、IPN に (わずかな) 遅延がある場合があるためです。顧客に IPN を待たせたくないので、PDT スクリプトが注文を処理し、データベースに挿入します。もちろん、挿入する前に、PDT スクリプトはポストバックで注文をチェックします。

2 つのスクリプトが同時に呼び出されると、注文が 2 回処理される危険性があります。私たちはそれを望んでいません。そこで、txn_id フィールドの列を一意の列にしました。IPN のクエリが失敗した場合、DPT は既にデータベースへの挿入を行っており、その逆も同様です。そうすれば、テーブルをロックする必要はありません。

私はこれを正しくやっていますか?

4

1 に答える 1

0

私はプロではないので、今は自分で試してみています。しかし、私がこれまで読んだことから、これはそれを行うための良い方法だと思います。

あなたが望むかもしれないのは、IPNとPDTデータをお互いに少し埋めさせることです。PDTが最初に実行されたとしても、IPNを介してより多くのデータを取得できると思います。しかし、それを最善の方法で行う方法についてはよくわかりません。そしてもちろん、それはあなたがデータに正確に何を求めているか、そしてあなたがそれを何のために使う必要があるかにも依存します。

于 2010-10-28T14:32:24.963 に答える