1

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 のワークフローとして以下が示されています。

PDT のワークフロー

4

1 に答える 1

1

私の側からさらに調査した後、最終的に答えを得ました。

回答: PayPal が ReturnURL で送信するクエリ文字列変数は、PDT トランザクション変数の小さなセットにすぎません。開発者は、ドキュメントに記載されているように、トランザクション変数の完全なセットを取得するために PayPal に POST する必要があります。

st=Completedしたがって、 ReturnURL クエリ文字列変数を取得した場合でも、PayPal に POST する必要があります。

私の場合、ReturnURL aspx ページの Page_Load イベントから PayPal のドキュメントに従って POST を実行した後、以下に示すようにさらに多くの変数を取得しました。

ReturnURL で受け取ったクエリ文字列変数でpayment_status、別の名前で呼び出されたこの完全なセットで が返されていることがわかります。同じことが、クエリ文字列変数で呼び出されたが POST 応答で呼び出さstれるトランザクション ID にも当てはまります。txtxn_id

ReturnURL aspx ページから PayPal への POST 後に PayPal から受け取った変数

SUCCESS
transaction_subject=Plans
payment_date=11%3A12%3A13+May+17%2C+2016+PDT
txn_type=subscr_payment
subscr_id=I-BRSWRVNGN324
last_name=buyer
option_selection1=Basic
residence_country=US
item_name=Plans
payment_gross=100.00
mc_currency=USD
business=xyz123-facilitator%40gmail.com
payment_type=instant
protection_eligibility=Ineligible
payer_status=verified
payer_email=sun21170-buyer%40gmail.com
txn_id=3MA744263S4136832
receiver_email=abc123-facilitator%40gmail.com
first_name=test
option_name1=Plan+Options
payer_id=45HWR9TGYNPD8
receiver_id=9H9UCPFXX96KG
item_number=brokerplans
payment_status=Completed
payment_fee=3.20
mc_fee=3.20
btn_id=3335152
mc_gross=100.00
charset=windows-1252
于 2016-05-17T18:24:54.383 に答える