Reputation: 2520
I made a DoExpressCheckoutPayment call with following detail and success.[Of course the call is made after the successful SetExpressCheckout call]
METHOD=DoExpressCheckoutPayment&
VERSION=93&
PWD=MyPassword&
USER=User&
SIGNATURE=Signature&
PAYMENTREQUEST_0_PAYMENTACTION=Order&
PAYMENTREQUEST_0_AMT=85.0&
PAYMENTREQUEST_0_CURRENCYCODE=USD&
IPADDRESS=localhost&
BUTTONSOURCE=PP-ECWizard
The Response details from above call
PAYMENTINFO_0_REASONCODE=None, PAYMENTINFO_0_TAXAMT=0.00, PAYMENTINFO_0_ERRORCODE=0, PAYMENTINFO_0_SECUREMERCHANTACCOUNTID=AHYPGLSVNYNYC, BUILD=6118442, PAYMENTINFO_0_TRANSACTIONTYPE=expresscheckout, PAYMENTINFO_0_ORDERTIME=2013-05-30T11:26:49Z, PAYMENTINFO_0_PROTECTIONELIGIBILITY=None, CORRELATIONID=c7061e7e201b4, SUCCESSPAGEREDIRECTREQUESTED=false, INSURANCEOPTIONSELECTED=false, PAYMENTINFO_0_CURRENCYCODE=USD, PAYMENTINFO_0_PAYMENTSTATUS=Pending, PAYMENTINFO_0_AMT=85.00, PAYMENTINFO_0_TRANSACTIONID=O-3M746191252284215, PAYMENTINFO_0_ACK=Success, VERSION=93, PAYMENTINFO_0_PAYMENTTYPE=None, PAYMENTINFO_0_PENDINGREASON=order, ACK=Success, SHIPPINGOPTIONISDEFAULT=false, TIMESTAMP=2013-05-30T11:26:49Z, TOKEN=EC-9J328055AB342102B
(I have modified response and convert response into HashMap)
I have created two test accounts in Paypal Sandbox
One is Business Account and one is Personal Account.All has opening Balance of 5000 USD.
The buyer account shows the Order Detail as shown in following figure as Pending only and does not debit itself. the balance as same as it was the last.
The Merchant's account shows the order detail but same as the account is not credited and balance is not updated as shown in following figure.
Now if i look at the Sandbox notifications i can see some text for Buyer account only and not for Merchant's account as shown in following figure.
What i am missing here ? Why the amount is not debited from buyer and credited to Merchant's ? why the transaction status is Pending ?
I found 3 similar questions on SO match my problem and some of the questions on the internet , i tried all the solutions but could not success .
Payment Review is tuned off in My Sandbox Business Account.
If you need me any more detail from me please ask feel free to ask me.
Thanks
Upvotes: 1
Views: 2508
Reputation: 7319
The reason that your transaction is showing pending is because you processed this as an order. You can also see the pending reason in the response that you provided.
PAYMENTINFO_0_PENDINGREASON=order
You need to go back now and perform a transaction against the order to actually charge the buyer and this will move the funds from the buyer account to the seller account. For example you can go back and perform an Authorization against the order using the DoAuthorization API and then once that is completed you can run the DoCapture API to complete the purchase.
If you are not wanting to process the transaction as an order initially, you can process it as a "Sale" rather than an "Order", and this will take the money up front when you complete the DoExpressCheckoutPayment API call.
Upvotes: 3