Integration with PayPal Express Checkout

I am currently struggling to understand the answer to my PayPal EC integration.

Answer GetExpressCheckoutDetails

[CHECKOUTSTATUS] => PaymentActionNotInitiated 

but in the answer of DoExpressCheckout

 [PAYMENTINFO_0_PAYMENTSTATUS] => Completed 

I am confused, does this mean that the buyer was charged and the payment was successful or not? I can not find answers on the forum and portals of PayPal ... weeeew

The following are complete answers:

GetExpressCheckout answer:

  [TOKEN] => EC-76768931K5394210Y [CHECKOUTSTATUS] => PaymentActionNotInitiated [TIMESTAMP] => 2012-10-20T07:15:22Z [CORRELATIONID] => 2b85ff556730a [ACK] => Success [VERSION] => 94.0 [BUILD] => 3926908 [EMAIL] => testpp_per_1348562981_per@gmail.com [PAYERID] => 3PCFRVX65A7Y8 [PAYERSTATUS] => verified [FIRSTNAME] => Test [LASTNAME] => Peepee [COUNTRYCODE] => US [CURRENCYCODE] => PHP [AMT] => 895.00 [ITEMAMT] => 895.00 [SHIPPINGAMT] => 0.00 [HANDLINGAMT] => 0.00 [TAXAMT] => 0.00 [INVNUM] => 1231313213213 [INSURANCEAMT] => 0.00 [SHIPDISCAMT] => 0.00 [L_NAME0] => Test Item [L_QTY0] => 1 [L_TAXAMT0] => 0.00 [L_AMT0] => 895.00 [L_ITEMWEIGHTVALUE0] => 0.00000 [L_ITEMLENGTHVALUE0] => 0.00000 [L_ITEMWIDTHVALUE0] => 0.00000 [L_ITEMHEIGHTVALUE0] => 0.00000 [PAYMENTREQUEST_0_CURRENCYCODE] => PHP [PAYMENTREQUEST_0_AMT] => 895.00 [PAYMENTREQUEST_0_ITEMAMT] => 895.00 [PAYMENTREQUEST_0_SHIPPINGAMT] => 0.00 [PAYMENTREQUEST_0_HANDLINGAMT] => 0.00 [PAYMENTREQUEST_0_TAXAMT] => 0.00 [PAYMENTREQUEST_0_INVNUM] => 1231313213213 [PAYMENTREQUEST_0_INSURANCEAMT] => 0.00 [PAYMENTREQUEST_0_SHIPDISCAMT] => 0.00 [PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED] => false [L_PAYMENTREQUEST_0_NAME0] => Test Item [L_PAYMENTREQUEST_0_QTY0] => 1 [L_PAYMENTREQUEST_0_TAXAMT0] => 0.00 [L_PAYMENTREQUEST_0_AMT0] => 895.00 [L_PAYMENTREQUEST_0_ITEMWEIGHTVALUE0] => 0.00000 [L_PAYMENTREQUEST_0_ITEMLENGTHVALUE0] => 0.00000 [L_PAYMENTREQUEST_0_ITEMWIDTHVALUE0] => 0.00000 [L_PAYMENTREQUEST_0_ITEMHEIGHTVALUE0] => 0.00000 [PAYMENTREQUESTINFO_0_ERRORCODE] => 0 

DoExpressCheckout answer:

  [TOKEN] => EC-76768931K5394210Y [SUCCESSPAGEREDIRECTREQUESTED] => false [TIMESTAMP] => 2012-10-20T07:15:27Z [CORRELATIONID] => ec7af38c18968 [ACK] => Success [VERSION] => 94.0 [BUILD] => 3926908 [INSURANCEOPTIONSELECTED] => false [SHIPPINGOPTIONISDEFAULT] => false [PAYMENTINFO_0_TRANSACTIONID] => 02800680NT5556907 [PAYMENTINFO_0_TRANSACTIONTYPE] => expresscheckout [PAYMENTINFO_0_PAYMENTTYPE] => instant [PAYMENTINFO_0_ORDERTIME] => 2012-10-20T07:15:26Z [PAYMENTINFO_0_AMT] => 895.00 [PAYMENTINFO_0_FEEAMT] => 49.91 [PAYMENTINFO_0_TAXAMT] => 0.00 [PAYMENTINFO_0_CURRENCYCODE] => PHP [PAYMENTINFO_0_PAYMENTSTATUS] => Completed [PAYMENTINFO_0_PENDINGREASON] => None [PAYMENTINFO_0_REASONCODE] => None [PAYMENTINFO_0_PROTECTIONELIGIBILITY] => Ineligible [PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE] => None [PAYMENTINFO_0_SECUREMERCHANTACCOUNTID] => K3TTNE7MKRJUN [PAYMENTINFO_0_ERRORCODE] => 0 [PAYMENTINFO_0_ACK] => Success 

Thanks a lot!:)

+6
source share
1 answer

Payment is not executed until you name DoExpressCheckout.

At the first stage (SetExpressCheckout + redirection to PayPal), the buyer gives you permission to withhold it. Now you need to get the money by calling DoExpressCheckout.

If you call GetExpressCheckoutDetails after DoExpressCheckout, you should receive a response completed by payment.

Edit: One of the reasons why you might want to call GetExpressCheckoutDetails before DoExpresCheckout is to get the address that the buyer has selected in case he can change the totals, so it is still a valid use case.

+9
source

Source: https://habr.com/ru/post/928171/


All Articles