PayPal Express Checkout Problem
I am using PS3 with PP Express Checkout. I am in Sand Box mode. I have already uploaded the fix file dealing with the known Issue / Solution for PayPal Express Transactions failing. My transactions are also unique in that they must use PayPal's "Authorize and Capture" feature.....that is, the charge card is not charged until the store owner logs into their PayPal account to "capture" the funds when they are ready to ship.
Couple of questions:
1. As a test customer, PayPal Express does not seem to be giving me the option to pay with a credit card....just the option to cancel or log into PayPal....assuming I (the customer) has a PayPal account. Doesn't the customer have the option to use their credit card?
2. After logging into my test customer account, I am in my test store (using my buyer login, not my store owner login) and I see a test user shipping address (I did not enter this information). I click continue and am taken back to to the pp_confirm page, and I see the following session information appended in the address bar:
pp_confirm.php?token=EC-2Y136749N91071825&PayerID=UZ9PCNAVDVBY2
However, the PayPal Express checkout and shipping information areas on the page are blank.
Submitting the above anyway give the following error messages:
Express Authorize:
Full Request: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><RequesterCredentials xmlns="urn:ebay:api:PayPalAPI"><Credentials xmlns="urn:ebay:apis:eBLBaseComponents"><Username>##########</Username><Password>#######</Password><Signature>###############</Signature><Subject/></Credentials></RequesterCredentials></soap:Header><soap:Body><SetExpressCheckoutReq xmlns="urn:ebay:api:PayPalAPI"><SetExpressCheckoutRequest><Version xmlns="urn:ebay:apis:eBLBaseComponents">2.20</Version><SetExpressCheckoutRequestDetails xmlns="urn:ebay:apis:eBLBaseComponents"><OrderTotal currencyID="USD">304.00</OrderTotal><ReturnURL>http://174.121.78.194/~cdpetsc/pp_confirm.php</ReturnURL><CancelURL>http://174.121.78.194/~cdpetsc/pp_cancel.php</CancelURL><PaymentAction>Authorization</PaymentAction></SetExpressCheckoutRequestDetails></SetExpressCheckoutRequest></SetExpressCheckoutReq></soap:Body></soap:Envelope>
Full Response: <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cc="urn:ebay:apis:CoreComponentTypes" xmlns:ed="urn:ebay:apis:EnhancedDataTypes" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" xmlns:ns="urn:ebay:api:PayPalAPI"><SOAP-ENV:Header><Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext" xsi:type="wsse:SecurityType"></Security><RequesterCredentials xmlns="urn:ebay:api:PayPalAPI" xsi:type="ebl:CustomSecurityHeaderType"><Credentials xmlns="urn:ebay:apis:eBLBaseComponents" xsi:type="ebl:UserIdPasswordType"><Username xsi:type="xs:string"></Username><Password xsi:type="xs:string"></Password><Signature xsi:type="xs:string">AbGaA2Z9MiNT5rwEE0cv00K6dffUA6n87goZC5LU0vWIWCifhvOGyIOb</Signature><Subject xsi:type="xs:string"></Subject></Credentials></RequesterCredentials></SOAP-ENV:Header><SOAP-ENV:Body id="_0"><SetExpressCheckoutResponse xmlns="urn:ebay:api:PayPalAPI"><Timestamp xmlns="urn:ebay:apis:eBLBaseComponents">2010-09-20T16:45:48Z</Timestamp><Ack xmlns="urn:ebay:apis:eBLBaseComponents">Success</Ack><CorrelationID xmlns="urn:ebay:apis:eBLBaseComponents">e48e0f0432c10</CorrelationID><Version xmlns="urn:ebay:apis:eBLBaseComponents">2.20</Version><Build xmlns="urn:ebay:apis:eBLBaseComponents">1516242</Build><Token xsi:type="ebl:ExpressCheckoutTokenType">EC-2Y136749N91071825</Token></SetExpressCheckoutResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
Express Process:
Full Request: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><RequesterCredentials xmlns="urn:ebay:api:PayPalAPI"><Credentials xmlns="urn:ebay:apis:eBLBaseComponents"><Username>#############</Username><Password>#############</Password><Signature>############</Signature><Subject/></Credentials></RequesterCredentials></soap:Header><soap:Body><DoExpressCheckoutPaymentReq xmlns="urn:ebay:api:PayPalAPI"><DoExpressCheckoutPaymentRequest><Version xmlns="urn:ebay:apis:eBLBaseComponents">2.20</Version><DoExpressCheckoutPaymentRequestDetails xmlns="urn:ebay:apis:eBLBaseComponents"><Token>EC-2Y136749N91071825</Token><PaymentAction>Authorization</PaymentAction><PayerID></PayerID><PaymentDetails><OrderTotal currencyID="USD">304.00</OrderTotal><ShippingTotal currencyID="USD">69.00</ShippingTotal><ItemTotal currencyID="USD">235</ItemTotal><ButtonSource>WebAssist.eCartPHP.Pro.ECO</ButtonSource><PaymentDetailsItem><Name>Tall Platform Dog Ramp</Name><Amount currencyID="USD">235</Amount><Quantity>1</Quantity><Number>294</Number></PaymentDetailsItem></PaymentDetails></DoExpressCheckoutPaymentRequestDetails></DoExpressCheckoutPaymentRequest></DoExpressCheckoutPaymentReq></soap:Body></soap:Envelope>
Full Response: <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cc="urn:ebay:apis:CoreComponentTypes" xmlns:ed="urn:ebay:apis:EnhancedDataTypes" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" xmlns:ns="urn:ebay:api:PayPalAPI"><SOAP-ENV:Header><Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext" xsi:type="wsse:SecurityType"></Security><RequesterCredentials xmlns="urn:ebay:api:PayPalAPI" xsi:type="ebl:CustomSecurityHeaderType"><Credentials xmlns="urn:ebay:apis:eBLBaseComponents" xsi:type="ebl:UserIdPasswordType"><Username xsi:type="xs:string"></Username><Password xsi:type="xs:string"></Password><Signature xsi:type="xs:string">AbGaA2Z9MiNT5rwEE0cv00K6dffUA6n87goZC5LU0vWIWCifhvOGyIOb</Signature><Subject xsi:type="xs:string"></Subject></Credentials></RequesterCredentials></SOAP-ENV:Header><SOAP-ENV:Body id="_0"><DoExpressCheckoutPaymentResponse xmlns="urn:ebay:api:PayPalAPI"><Timestamp xmlns="urn:ebay:apis:eBLBaseComponents">2010-09-20T16:59:25Z</Timestamp><Ack xmlns="urn:ebay:apis:eBLBaseComponents">Failure</Ack><CorrelationID xmlns="urn:ebay:apis:eBLBaseComponents">f0cfbfde31a40</CorrelationID><Errors xmlns="urn:ebay:apis:eBLBaseComponents" xsi:type="ebl:ErrorType"><ShortMessage xsi:type="xs:string">Express Checkout PayerID is missing.</ShortMessage><LongMessage xsi:type="xs:string">Express Checkout PayerID is missing.</LongMessage><ErrorCode xsi:type="xs:token">10419</ErrorCode><SeverityCode xmlns="urn:ebay:apis:eBLBaseComponents">Error</SeverityCode></Errors><Errors xmlns="urn:ebay:apis:eBLBaseComponents" xsi:type="ebl:ErrorType"><ShortMessage xsi:type="xs:string">Transaction refused because of an invalid argument. See additional error messages for details.</ShortMessage><LongMessage xsi:type="xs:string">The PayerID value is invalid.</LongMessage><ErrorCode xsi:type="xs:token">10406</ErrorCode><SeverityCode xmlns="urn:ebay:apis:eBLBaseComponents">Error</SeverityCode></Errors><Version xmlns="urn:ebay:apis:eBLBaseComponents">2.20</Version><Build xmlns="urn:ebay:apis:eBLBaseComponents">1516242</Build><DoExpressCheckoutPaymentResponseDetails xmlns="urn:ebay:apis:eBLBaseComponents" xsi:type="ebl:DoExpressCheckoutPaymentResponseDetailsType"></DoExpressCheckoutPaymentResponseDetails></DoExpressCheckoutPaymentResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
What seems to stand out is "Transaction refused because of an invalid argument. See additional error messages for details.</ShortMessage><LongMessage xsi:type="xs:string">The PayerID value is invalid.</LongMessage>
Please help me understand the problems and fixes.
By the way, PayPal Payments Pro works fine through the sand box for Authorize and Capture transactions. In this case I did have to edit the code on the confirm and pp_confirm pages as follows:
//$PP_DirectPayment_required[1][$nextIndex] = "Sale";
$PP_DirectPayment_required[1][$nextIndex] = "Authorization";
Thanks,
Robert