ReturnURL と PDT を有効にして動作する PayPal 購読ボタンがあります。このボタンは、ASP.Net の aspx ページで使用されています。
問題は、paypal でのトランザクションが完了すると、すべての PDT 変数が ReturnURL ページのクエリ文字列変数として返されることです。ReturnURL のクエリ文字列には (つまり tx)のみ transactionid
が返されると考えていたので、トランザクション ステータスなどの他のトランザクションの詳細を取得するには、このトランザクション ID とトークンを PayPal に投稿する必要があります。
質問PDT は、ドキュメントに記載されているように、トランザクション ID だけでなく、トランザクション ステータス、アイテム番号、金額、通貨コードなどのすべての変数を返すのはなぜですか?
これは、ReturnURL のクエリ文字列からすべての詳細を取得しているため、ReturnURL ページから PayPal に投稿して他のトランザクションの詳細を取得するコードを記述する必要がないことを意味しますが、これは PayPal のドキュメントの内容に反するように思えます。
取引完了後のReturnURL
http://localhost/xyz/pp.aspx?c=0&tx=3MA744263S4136832&st=Completed&amt=100%2e00&cc=USD&cm=&item_number=brokerplans&sig=mVojxSFzXH%2fk0RBOwUAMe8kq8jt7glCdnKYFfk9kZxWkuqru4wM1yfkD8FiAJVaoHeGlWY252ZiWwuCw0VJ8L8RU%2bUtnzGTVEgq3w1MQbqsCfZUwImlIfo%2fgV88wYf8V%2fgNgUmVCxBweZ8faFsKDlRr08julLC7ancjIDOkOY2o%3d
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/paymentdatatransfer/にあるPayPal のドキュメントには、PDT のワークフローとして以下が示されています。