スキー レッスン Web サイトのショッピング カートは次のように機能します。
- 顧客がスキー レッスンを希望する日付を選択します。学校の休暇や週末など、一部の日付では料金が異なります。選択した日付を送信すると、イベントとその詳細が、ランダムなトランザクション ID を持つ SQL テーブルに一時的に記録されます。
- ショッピング カートは、選択されたすべての日付の費用も合計し、価格が記載された Paypal Advanced Buy Now ボタンを作成します。
- 顧客は、選択したスキー レッスンの料金を Paypal に支払います。Paypal は、検証と注文の確認のために IPN リスナーに IPN を送り返します。
ただし、これには問題があります。私の IPN スクリプトは、静的な価格を確認する方法しか知りません。すべての注文は選択に応じて価格が異なるため、受信した IPN を最初に出された特定の注文に関連付ける必要があります。
txn_id
いろいろ調べた後、上記の最初のステップで設定されたランダムなトランザクション ID と同じになるように操作できるかどうか疑問に思いました。そうすれば、IPN レポートが戻ってきたときに、スクリプトはどのイベントを参照しているかを正確に認識し、そのイベントの詳細を比較できます (たとえば、支払われた金額と計算された金額を IPN レポートで返された変数と比較できます。
を操作しtxn_id
たり、Paypal ボタンを使用して別の ID を送信したりして、支払いを識別できるようにすることはできますか?