Search code examples
phppaypalexpress-checkout

DoExpressCheckoutPayment - no items displayed on the order email


I've spent the whole day googling why it's not working and can't really figure it out. I use PayPal Express to checkout an order. Order contains items and they are not visible on the confirmation email, neither anywhere under the paypal's dashboard.

They appear fine before paying (so the SetExpressCheckoutPayment call works properly), but not with DoExpressCheckoutPayment. I pass over to DoExpressCheckoutPayment the following parameters:

- TOKEN
- PAYERID
- PAYMENTACTION
- AMT
- CURRENCYCODE,
- L_PAYMENTREQUEST_0_QTY0
- L_PAYMENTREQUEST_0_AMT0
- L_PAYMENTREQUEST_0_NAME0
- L_PAYMENTREQUEST_0_DESC0 (the digits at the end increase with next items)
- PAYMENTREQUEST_0_CURRENCYCODE
- PAYMENTREQUEST_0_ITEMAMT

The response I get:

[TOKEN] => xxxx
[SUCCESSPAGEREDIRECTREQUESTED] => true
[TIMESTAMP] => 2014%2d02%2d25T18%3a32%3a07Z
[CORRELATIONID] => 21459a872dc21
[ACK] => Success
[VERSION] => 76%2e0
[BUILD] => 9720069
[TRANSACTIONID] => xxx
[RECEIPTID] => xxxx
[TRANSACTIONTYPE] => expresscheckout
[PAYMENTTYPE] => instant
[ORDERTIME] => 2014%2d02%2d25T18%3a32%3a06Z
[AMT] => 1%2e00
[FEEAMT] => 0%2e23
[TAXAMT] => 0%2e00
[CURRENCYCODE] => GBP
[PAYMENTSTATUS] => Completed
[PENDINGREASON] => None
[REASONCODE] => None
[PROTECTIONELIGIBILITY] => Eligible
[INSURANCEOPTIONSELECTED] => false
[SHIPPINGOPTIONISDEFAULT] => false
[PAYMENTINFO_0_TRANSACTIONID] => xxx
[PAYMENTINFO_0_RECEIPTID] => xxx
[PAYMENTINFO_0_TRANSACTIONTYPE] => expresscheckout
[PAYMENTINFO_0_PAYMENTTYPE] => instant
[PAYMENTINFO_0_ORDERTIME] => 2014%2d02%2d25T18%3a32%3a06Z
[PAYMENTINFO_0_AMT] => 1%2e00
[PAYMENTINFO_0_FEEAMT] => 0%2e23
[PAYMENTINFO_0_TAXAMT] => 0%2e00
[PAYMENTINFO_0_CURRENCYCODE] => GBP
[PAYMENTINFO_0_PAYMENTSTATUS] => Completed
[PAYMENTINFO_0_PENDINGREASON] => None
[PAYMENTINFO_0_REASONCODE] => None
[PAYMENTINFO_0_PROTECTIONELIGIBILITY] => Eligible
[PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE] => ItemNotReceivedEligible%2cUnauthorizedPaymentEligible
[PAYMENTINFO_0_SECUREMERCHANTACCOUNTID] => xxxx
[PAYMENTINFO_0_ERRORCODE] => 0
[PAYMENTINFO_0_ACK] => Success

How can we crack this?


Solution

  • You have to pass all of the same item details into DECP just like you do with SEC, otherwise they will not be included in the payment.

    DECP is the end all, be all. Any data sent to PayPal within DECP is what gets included in the payment details. Nothing more, nothing less.