GetTransactionDetails does not report part of the order parameters

In the sandbox environment, I created the following BuyNow web button, the beneficiary of which is virtual user A, and I bought a relative item through user B:

<form action='https://www.sandbox.paypal.com/cgi-bin/webscr' method=post target=_top> <input type='hidden' name='on0' value='Amount'> <input type='hidden' name='os0' value='$1.00'> <input type='hidden' name='on1' value='Username'> <input type='hidden' name='os1' value='Davide'> <input type='hidden' name='on2' value='Anonymous'> <input type='hidden' name='os2' value='false'> <!-- PayPal specific --> <input type='hidden' name='cmd' value='_xclick'> <input type='hidden' name='business' value=' baldiniebaldini-x@gmail.com '> <!-- email registered at paypal --> <input type='hidden' name='lc' value='US'> <input type='hidden' name='item_name' value='Support Greatturn'> <input type='hidden' name='button_subtype' value='services'> <input type='hidden' name='currency_code' value='USD'> <input type='hidden' name='bn' value='PP-BuyNowBF:btn_buynow_LG.gif:NonHosted'> <input type='hidden' name='currency_code' value='USD'> <input type='hidden' name='option_select0' value='$1.00'> <input type='hidden' name='option_amount0' value='1.00'> <!-- actual amount --> <input type='hidden' name='option_index' value='0'> <input type='hidden' name='no_shipping' value='1'> <input type='hidden' name='no_note' value='1'> <input type='hidden' name='return' value='http://civland.org/greatturn_test?status=0&method=PayPal'> <input type='hidden' name='rm' value='0'> <input type='hidden' name='cbt' value='Return to Greatturn'> <input type='hidden' name='cancel_return' value='http://civland.org/greatturn_test?status=10'> <img alt='' border='0' src='https://www.paypalobjects.com/en_US/i/scr/pixel.gif' width='1' height='1'> <button type=submit>Javascript disabled - Press to complete</button> </form> 

There are 3 configuration options for this button: on0, on1, on2. When user B clicks the button and enters the PayPal verification page, all three options are visible on the left side of the information window (called the "order summary"), and they contain the correct values. User B then successfully completes the verification, and user A can find this transaction, correctly indicated in his account statement, on the PayPal end user website.

However, by calling GetTransactionDetails from the NVP API (from version 2.0 to 98.0), I cannot get some of these parameters:

 curl -s --data \ "METHOD=GetTransactionDetails&TRANSACTIONID=$ID&VERSION=${paypal_api_version}&${auth_token}" \ "$paypal_api_endpoint" >>transactions_detail 

ID : = transaction identifier;
paypal_api_version : = 98.0;
auth_token : = USER , PWD and SIGNATURE ;

The above API request returns this raw output:

 RECEIVERBUSINESS=baldiniebaldini%2dx%40gmail%2ecom&RECEIVEREMAIL=baldiniebaldini%2dx%40gmail%2ecom&RECEIVERID=MZGCAKYCZ9JHY&EMAIL=baldiniebaldini%2dy%40gmail%2ecom&PAYERID=KPCSFVM6TD54A&PAYERSTATUS=unverified&COUNTRYCODE=GB&ADDRESSOWNER=PayPal&ADDRESSSTATUS=None&SALESTAX=0%2e00&SHIPAMOUNT=0%2e00&SHIPHANDLEAMOUNT=0%2e00&SHIPDISCOUNT=0%2e00&INSURANCEAMOUNT=0%2e00&SUBJECT=Support%20Greatturn&TIMESTAMP=2013%2d05%2d26T21%3a17%3a38Z&CORRELATIONID=6ba1e9cf1b8c&ACK=Success&VERSION=98%2e0&BUILD=5908853&FIRSTNAME=BuyerName&LASTNAME=Baldini&TRANSACTIONID=0XY95962TC408440U&TRANSACTIONTYPE=webaccept&PAYMENTTYPE=instant&ORDERTIME=2013%2d05%2d26T21%3a17%3a25Z&AMT=1%2e00&FEEAMT=0%2e34&TAXAMT=0%2e00&CURRENCYCODE=USD&PAYMENTSTATUS=Completed&PENDINGREASON=None&REASONCODE=None&SHIPPINGMETHOD=Default&PROTECTIONELIGIBILITY=Ineligible&PROTECTIONELIGIBILITYTYPE=None&L_NAME0=Support%20Greatturn&L_QTY0=1&L_TAXAMT0=0%2e00&L_CURRENCYCODE0=USD&L_OPTIONSNAME0=Amount&L_OPTIONSNAME1=Username&L_OPTIONSVALUE0=%241%2e00&L_OPTIONSVALUE1=Davide&L_OPTIONS1NAME0=Username&L_OPTIONS1VALUE0=Davide&L_TAXABLE0=false 

In particular, the output reads:

ACK = Success
L_OPTIONSNAME0 = Amount
L_OPTIONSNAME1 = Username
L_OPTIONSVALUE0 =% 241% 2e00
L_OPTIONSVALUE1 = Davide
L_OPTIONS1NAME0 = Username
L_OPTIONS1VALUE0 = Davide

so instead of L_OPTIONSNAME2 and L_OPTIONSVALUE2 I get these undocumented and duplicated L_OPTIONS1NAME0 and L_OPTIONS1VALUE0 .

A similar defect occurs when user A sets four parameters on his web button: the first two (on0, on1) can be correctly extracted by this API call, the last two are duplicates of the first ones reported by the API in the form L_OPTIONS1NAME0 ( L_OPTIONS1VALUE0 ) and L_OPTIONS1NAME1 ( L_OPTIONS1VALUE1 ) .

0
source share

All Articles