Forum

Thread tagged as: Question, Problem, PayPal

Paypal express integration

I'm following the steps here: https://docs.grabaperch.com/addons/shop/gateways/paypal-express/

My first query is about what happens when you click to pay with paypal. According to the Paypal docs (https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/checkout-flow/) 'Paypal Express' is a checkout option that opens a pop up window and doesn't redirect you to Paypal. However in the Perch docs it states: "Step 2: The user goes off to PayPal". What is supposed to happen? Is "Express Checkout" a different thing to "Paypal Express"?

What is happening for me is I get sent off to Paypal (sandbox) with a really long checkout form. I log in with a personal sandbox account I set up and pay which seems to work as I am redirected to the success page. But the order doesn't show up in orders, no emails come through and I can't find anything in my developer.paypal.com account regarding the transaction.

Stephen Turvey

Stephen Turvey 0 points

  • 4 years ago
Drew McLellan

Drew McLellan 2638 points
Perch Support

Are you completing the transaction when the user gets sent back to your site?

That's not what's happening. They only come back to my site when it's finished (the success page).

Drew McLellan

Drew McLellan 2638 points
Perch Support

You still need to confirm it. Have you followed the docs?

Am following them but keep getting confused by the paypal docs!

Is this what perch is using?: https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/checkout-flow/

According to that I should get a pop up, not go off to paypal's site?

Drew McLellan

Drew McLellan 2638 points
Perch Support

I mean the Runway docs rather that PayPal's own:

https://docs.grabaperch.com/addons/shop/gateways/paypal-express/

I'm now on the right tracks. I have just placed a successful test transaction and the emails were sent out and the order appeared in perch admin. However I can't see any info on the order on the paypal developer sandbox site. I've gone to Dashboard > Sandbox > Transactions and nothing shows. It gives me a dropdown with Email or Apps but neither of those shows any transactions.

Drew McLellan

Drew McLellan 2638 points
Perch Support

Ok. What can you tell me?

This is the debug from the success page after paypal checkout:

Debug Message
[1] SELECT * FROM perch2_members_sessions WHERE sessionID='9eecb0a1e3df25c4ba52743f39ebb2fde4222194' AND sessionHttpFootprint='7e2c5bbd7a4ee8c1c36fc61458bd395602c6b83e' AND sessionExpires>'2017-03-07 18:00:00' LIMIT 1
User is logged in
[1] SELECT * FROM perch2_pages WHERE pagePath='/pay/result-paypal.php' LIMIT 1
[1] SELECT * FROM perch2_shop_cart WHERE cartID=104
[1] SELECT * FROM perch2_shop_cart WHERE cartID=104
[1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM perch2_pages WHERE pagePath='/get-tefl-certified' OR pageSortPath='/get-tefl-certified' LIMIT 1
[3] SELECT * FROM perch2_pages WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
[0] SELECT pageTreePosition FROM perch2_pages WHERE pagePath='/pay/result-paypal.php' LIMIT 1
[2] Using template: /templates/navigation/pushy.html
[1] SELECT groupID FROM perch2_navigation WHERE groupSlug='tefl-jobs' LIMIT 1
[18] SELECT np.pageID, np.pageParentID, p.pagePath, p.pageTitle, p.pageNavText, p.pageNew, p.pageOrder, np.pageDepth, p.pageSortPath, np.pageTreePosition, p.pageAccessTags, p.pageAttributes FROM perch2_navigation_pages np, perch2_pages p WHERE p.pageID=np.pageID AND np.groupID=1 AND p.pageNew=0 ORDER BY np.pageTreePosition ASC
[0] SELECT np.pageTreePosition FROM perch2_pages p, perch2_navigation_pages np WHERE np.pageID=p.pageID AND np.groupID=1 AND p.pagePath='/pay/result-paypal.php' LIMIT 1
[18] Using template: /templates/navigation/pushy.html
[1] SELECT groupID FROM perch2_navigation WHERE groupSlug='tefl-internships' LIMIT 1
[4] SELECT np.pageID, np.pageParentID, p.pagePath, p.pageTitle, p.pageNavText, p.pageNew, p.pageOrder, np.pageDepth, p.pageSortPath, np.pageTreePosition, p.pageAccessTags, p.pageAttributes FROM perch2_navigation_pages np, perch2_pages p WHERE p.pageID=np.pageID AND np.groupID=2 AND p.pageNew=0 ORDER BY np.pageTreePosition ASC
[0] SELECT np.pageTreePosition FROM perch2_pages p, perch2_navigation_pages np WHERE np.pageID=p.pageID AND np.groupID=2 AND p.pagePath='/pay/result-paypal.php' LIMIT 1
[4] Using template: /templates/navigation/pushy.html
[1] SELECT groupID FROM perch2_navigation WHERE groupSlug='volunteer-programs' LIMIT 1
[3] SELECT np.pageID, np.pageParentID, p.pagePath, p.pageTitle, p.pageNavText, p.pageNew, p.pageOrder, np.pageDepth, p.pageSortPath, np.pageTreePosition, p.pageAccessTags, p.pageAttributes FROM perch2_navigation_pages np, perch2_pages p WHERE p.pageID=np.pageID AND np.groupID=3 AND p.pageNew=0 ORDER BY np.pageTreePosition ASC
[0] SELECT np.pageTreePosition FROM perch2_pages p, perch2_navigation_pages np WHERE np.pageID=p.pageID AND np.groupID=3 AND p.pagePath='/pay/result-paypal.php' LIMIT 1
[3] Using template: /templates/navigation/pushy.html
[1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM perch2_pages WHERE pagePath='/community' OR pageSortPath='/community' LIMIT 1
[10] SELECT * FROM perch2_pages WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-006%' ORDER BY pageTreePosition ASC
[0] SELECT pageTreePosition FROM perch2_pages WHERE pagePath='/pay/result-paypal.php' LIMIT 1
[9] Using template: /templates/navigation/pushy.html
Using template: /templates/search/search_header.html
Runtime complete_payment for paypal-express
[1] SELECT * FROM perch2_shop_orders WHERE orderGatewayRef='EC-108868324G933550J' AND orderDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_currencies WHERE currencyID='47' LIMIT 1
Payment successful
UPDATE perch2_shop_orders SET orderGatewayRef='5B035460RC1369720', orderUpdated='2017-03-07 18:00:05' WHERE orderID='20'
No ids to log.
Omnipay\PayPal\Message\Response Object
(
    [request:protected] => Omnipay\PayPal\Message\ExpressCompletePurchaseRequest Object
        (
            [liveEndpoint:protected] => https://api-3t.paypal.com/nvp
            [testEndpoint:protected] => https://api-3t.sandbox.paypal.com/nvp
            [parameters:protected] => Symfony\Component\HttpFoundation\ParameterBag Object
                (
                    [parameters:protected] => Array
                        (
                            [username] => stephen_api1.yepdesign.co.uk
                            [password] => ESCJNTT87Y123456
                            [signature] => ABCDEF1C7fd0v3bYYYRCpSSRl31A7-5Jv1NisfxvuSn5MNDsYMR3sKZ
                            [testMode] => 1
                            [solutionType] => Sole
                            [landingPage] => Billing
                            [brandName] => 
                            [headerImageUrl] => 
                            [logoImageUrl] => 
                            [borderColor] => 
                            [token] => EC-108868324G933550J
                            [payerID] => CK85FC9L952X4
                            [amount] => 170.00
                            [currency] => GBP
                            [transactionReference] => 20
                        )

                )

            [httpClient:protected] => Guzzle\Http\Client Object
                (
                    [defaultHeaders:protected] => Guzzle\Common\Collection Object
                        (
                            [data:protected] => Array
                                (
                                )

                        )

                    [userAgent:protected] => Guzzle/3.9.3 curl/7.38.0 PHP/5.6.23
                    [config:Guzzle\Http\Client:private] => Guzzle\Common\Collection Object
                        (
                            [data:protected] => Array
                                (
                                    [curl.options] => Array
                                        (
                                            [78] => 60
                                            [10065] => /home/username/public_html/admin/addons/apps/perch_shop/lib/vendor/guzzle/guzzle/src/Guzzle/Http/Resources/cacert.pem
                                            [64] => 1
                                            [81] => 2
                                        )

                                )

                        )

                    [baseUrl:Guzzle\Http\Client:private] => 
                    [curlMulti:Guzzle\Http\Client:private] => Guzzle\Http\Curl\CurlMultiProxy Object
                        (
                            [handles:protected] => Array
                                (
                                    [0] => Guzzle\Http\Curl\CurlMulti Object
                                        (
                                            [multiHandle:protected] => Resource id #164
                                            [requests:protected] => Array
                                                (
                                                )

                                            [handles:protected] => SplObjectStorage Object
                                                (
                                                    [storage:SplObjectStorage:private] => Array
                                                        (
                                                        )

                                                )

                                            [resourceHash:protected] => Array
                                                (
                                                )

                                            [exceptions:protected] => Array
                                                (
                                                )

                                            [successful:protected] => Array
                                                (
                                                )

                                            [multiErrors:protected] => Array
                                                (
                                                    [1] => Array
                                                        (
                                                            [0] => CURLM_BAD_HANDLE
                                                            [1] => The passed-in handle is not a valid CURLM handle.
                                                        )

                                                    [2] => Array
                                                        (
                                                            [0] => CURLM_BAD_EASY_HANDLE
                                                            [1] => An easy handle was not good/valid. It could mean that it isn't an easy handle at all, or possibly that the handle already is in used by this or another multi handle.
                                                        )

                                                    [3] => Array
                                                        (
                                                            [0] => CURLM_OUT_OF_MEMORY
                                                            [1] => You are doomed.
                                                        )

                                                    [4] => Array
                                                        (
                                                            [0] => CURLM_INTERNAL_ERROR
                                                            [1] => This can only be returned if libcurl bugs. Please report it to us!
                                                        )

                                                )

                                            [selectTimeout:protected] => 1
                                            [eventDispatcher:protected] => Symfony\Component\EventDispatcher\EventDispatcher Object
                                                (
                                                    [listeners:Symfony\Component\EventDispatcher\EventDispatcher:private] => Array
                                                        (
                                                        )

                                                    [sorted:Symfony\Component\EventDispatcher\EventDispatcher:private] => Array
                                                        (
                                                        )

                                                )

                                        )

                                )

                            [groups:protected] => Array
                                (
                                )

                            [queued:protected] => Array
                                (
                                )

                            [maxHandles:protected] => 3
                            [selectTimeout:protected] => 1
                            [eventDispatcher:protected] => Symfony\Component\EventDispatcher\EventDispatcher Object
                                (
                                    [listeners:Symfony\Component\EventDispatcher\EventDispatcher:private] => Array
                                        (
                                        )

                                    [sorted:Symfony\Component\EventDispatcher\EventDispatcher:private] => Array
                                        (
                                        )

                                )

                        )

                    [uriTemplate:Guzzle\Http\Client:private] => Guzzle\Parser\UriTemplate\UriTemplate Object
                        (
                            [template:Guzzle\Parser\UriTemplate\UriTemplate:private] => 
                            [variables:Guzzle\Parser\UriTemplate\UriTemplate:private] => 
                            [regex:Guzzle\Parser\UriTemplate\UriTemplate:private] => /\{([^\}]+)\}/
                        )

                    [requestFactory:protected] => Guzzle\Http\Message\RequestFactory Object
                        (
                            [methods:protected] => Array
                                (
                                    [getInstance] => 0
                                    [__construct] => 1
                                    [fromMessage] => 2
                                    [fromParts] => 3
                                    [create] => 4
                                    [cloneRequestWithMethod] => 5
                                    [applyOptions] => 6
                                    [visit_headers] => 7
                                    [visit_body] => 8
                                    [visit_allow_redirects] => 9
                                    [visit_auth] => 10
                                    [visit_query] => 11
                                    [visit_cookies] => 12
                                    [visit_events] => 13
                                    [visit_plugins] => 14
                                    [visit_exceptions] => 15
                                    [visit_save_to] => 16
                                    [visit_params] => 17
                                    [visit_timeout] => 18
                                    [visit_connect_timeout] => 19
                                    [visit_debug] => 20
                                    [visit_verify] => 21
                                    [visit_proxy] => 22
                                    [visit_cert] => 23
                                    [visit_ssl_key] => 24
                                )

                            [requestClass:protected] => Guzzle\Http\Message\Request
                            [entityEnclosingRequestClass:protected] => Guzzle\Http\Message\EntityEnclosingRequest
                        )

                    [eventDispatcher:protected] => Symfony\Component\EventDispatcher\EventDispatcher Object
                        (
                            [listeners:Symfony\Component\EventDispatcher\EventDispatcher:private] => Array
                                (
                                    [request.sent] => Array
                                        (
                                            [100] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [0] => Guzzle\Http\RedirectPlugin Object
                                                                (
                                                                    [defaultMaxRedirects:protected] => 5
                                                                )

                                                            [1] => onRequestSent
                                                        )

                                                )

                                        )

                                    [request.clone] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [0] => Guzzle\Http\RedirectPlugin Object
                                                                (
                                                                    [defaultMaxRedirects:protected] => 5
                                                                )

                                                            [1] => cleanupRequest
                                                        )

                                                )

                                        )

                                    [request.before_send] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [0] => Guzzle\Http\RedirectPlugin Object
                                                                (
                                                                    [defaultMaxRedirects:protected] => 5
                                                                )

                                                            [1] => cleanupRequest
                                                        )

                                                )

                                        )

                                )

                            [sorted:Symfony\Component\EventDispatcher\EventDispatcher:private] => Array
                                (
                                )

                        )

                )

            [httpRequest:protected] => Symfony\Component\HttpFoundation\Request Object
                (
                    [attributes] => Symfony\Component\HttpFoundation\ParameterBag Object
                        (
                            [parameters:protected] => Array
                                (
                                )

                        )

                    [request] => Symfony\Component\HttpFoundation\ParameterBag Object
                        (
                            [parameters:protected] => Array
                                (
                                )

                        )

                    [query] => Symfony\Component\HttpFoundation\ParameterBag Object
                        (
                            [parameters:protected] => Array
                                (
                                    [token] => EC-108868324G933550J
                                    [PayerID] => CK85FC9L952X4
                                )

                        )

                    [server] => Symfony\Component\HttpFoundation\ServerBag Object
                        (
                            [parameters:protected] => Array
                                (
                                    [PATH] => /usr/local/bin:/usr/bin:/bin
                                    [TEMP] => /tmp
                                    [TMP] => /tmp
                                    [TMPDIR] => /tmp
                                    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
                                    [HTTP_ACCEPT_ENCODING] => gzip
                                    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,es;q=0.6
                                    [HTTP_CONNECTION] => close
                                    [CONTENT_LENGTH] => 0
                                    [HTTP_COOKIE] => __atuvc=48%7C8%2C28%7C9; cmsa=1; p_m=9eecb0a1e3df25c4ba52743f39ebb2fde4222194; _gat=1; _ga=GA1.3.1736325562.1482422939; PHPSESSID=989b4d63fac993449f99e75eacf2c938
                                    [HTTP_HOST] => teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                    [HTTP_REFERER] => https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=EC-108868324G933550J
                                    [HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
                                    [HTTP_X_FORWARDED_FOR] => 181.133.176.12, 181.133.176.12
                                    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
                                    [HTTP_DNT] => 1
                                    [HTTP_XV_REAL_IP] => 181.133.176.12
                                    [HTTP_XV_OBJECT_TYPE] => dynamic
                                    [HTTP_SURROGATE_CAPABILITY] => key=ESI/1.0
                                    [HTTP_X_VARNISH] => 4305465
                                    [HTTP_X_FORWARDED_HOST] => teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                    [HTTP_X_FORWARDED_SERVER] => localhost
                                    [REDIRECT_UNIQUE_ID] => WL71IE1IAQIACdDqEV8AAAKm
                                    [REDIRECT_HTTPS] => on
                                    [REDIRECT_SSL_TLS_SNI] => teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                    [REDIRECT_STATUS] => 200
                                    [UNIQUE_ID] => WL71IE1IAQIACdDqEV8AAAKm
                                    [HTTPS] => on
                                    [SSL_TLS_SNI] => teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                    [SERVER_SIGNATURE] => 
                                    [SERVER_SOFTWARE] => Apache
                                    [SERVER_NAME] => teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                    [SERVER_ADDR] => 77.72.1.2
                                    [SERVER_PORT] => 443
                                    [REMOTE_ADDR] => 181.133.176.12
                                    [DOCUMENT_ROOT] => /home/username/public_html
                                    [REQUEST_SCHEME] => https
                                    [CONTEXT_PREFIX] => 
                                    [CONTEXT_DOCUMENT_ROOT] => /home/username/public_html
                                    [SERVER_ADMIN] => webmaster@teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                    [SCRIPT_FILENAME] => /home/username/public_html/pay/result-paypal.php
                                    [REMOTE_PORT] => 56423
                                    [REDIRECT_URL] => /pay/result-paypal
                                    [REDIRECT_QUERY_STRING] => token=EC-108868324G933550J&PayerID=CK85FC9L952X4
                                    [SERVER_PROTOCOL] => HTTP/1.1
                                    [REQUEST_METHOD] => GET
                                    [QUERY_STRING] => token=EC-108868324G933550J&PayerID=CK85FC9L952X4
                                    [REQUEST_URI] => /pay/result-paypal?token=EC-108868324G933550J&PayerID=CK85FC9L952X4
                                    [SCRIPT_NAME] => /pay/result-paypal.php
                                    [PHP_SELF] => /pay/result-paypal.php
                                    [REQUEST_TIME_FLOAT] => 1488909600.95
                                    [REQUEST_TIME] => 1488909600
                                    [argv] => Array
                                        (
                                            [0] => token=EC-108868324G933550J&PayerID=CK85FC9L952X4
                                        )

                                    [argc] => 1
                                )

                        )

                    [files] => Symfony\Component\HttpFoundation\FileBag Object
                        (
                            [parameters:protected] => Array
                                (
                                )

                        )

                    [cookies] => Symfony\Component\HttpFoundation\ParameterBag Object
                        (
                            [parameters:protected] => Array
                                (
                                    [__atuvc] => 48|8,28|9
                                    [cmsa] => 1
                                    [p_m] => 9eecb0a1e3df25c4ba52743f39ebb2fde4222194
                                    [_gat] => 1
                                    [_ga] => GA1.3.1736325562.1482422939
                                    [PHPSESSID] => 989b4d63fac993449f99e75eacf2c938
                                )

                        )

                    [headers] => Symfony\Component\HttpFoundation\HeaderBag Object
                        (
                            [headers:protected] => Array
                                (
                                    [accept] => Array
                                        (
                                            [0] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
                                        )

                                    [accept-encoding] => Array
                                        (
                                            [0] => gzip
                                        )

                                    [accept-language] => Array
                                        (
                                            [0] => en-US,en;q=0.8,es;q=0.6
                                        )

                                    [connection] => Array
                                        (
                                            [0] => close
                                        )

                                    [content-length] => Array
                                        (
                                            [0] => 0
                                        )

                                    [cookie] => Array
                                        (
                                            [0] => __atuvc=48%7C8%2C28%7C9; cmsa=1; p_m=9eecb0a1e3df25c4ba52743f39ebb2fde4222194; _gat=1; _ga=GA1.3.1736325562.1482422939; PHPSESSID=989b4d63fac993449f99e75eacf2c938
                                        )

                                    [host] => Array
                                        (
                                            [0] => teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                        )

                                    [referer] => Array
                                        (
                                            [0] => https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=EC-108868324G933550J
                                        )

                                    [user-agent] => Array
                                        (
                                            [0] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
                                        )

                                    [x-forwarded-for] => Array
                                        (
                                            [0] => 181.133.176.12, 181.133.176.12
                                        )

                                    [upgrade-insecure-requests] => Array
                                        (
                                            [0] => 1
                                        )

                                    [dnt] => Array
                                        (
                                            [0] => 1
                                        )

                                    [xv-real-ip] => Array
                                        (
                                            [0] => 181.133.176.12
                                        )

                                    [xv-object-type] => Array
                                        (
                                            [0] => dynamic
                                        )

                                    [surrogate-capability] => Array
                                        (
                                            [0] => key=ESI/1.0
                                        )

                                    [x-varnish] => Array
                                        (
                                            [0] => 4305465
                                        )

                                    [x-forwarded-host] => Array
                                        (
                                            [0] => teste1f74edf9911f9994bea0-19908.sites.k-hosting.co.uk
                                        )

                                    [x-forwarded-server] => Array
                                        (
                                            [0] => localhost
                                        )

                                )

                            [cacheControl:protected] => Array
                                (
                                )

                        )

                    [content:protected] => 
                    [languages:protected] => 
                    [charsets:protected] => 
                    [encodings:protected] => 
                    [acceptableContentTypes:protected] => 
                    [pathInfo:protected] => 
                    [requestUri:protected] => 
                    [baseUrl:protected] => 
                    [basePath:protected] => 
                    [method:protected] => 
                    [format:protected] => 
                    [session:protected] => 
                    [locale:protected] => 
                    [defaultLocale:protected] => en
                )

            [response:protected] => Omnipay\PayPal\Message\Response Object
 *RECURSION*
            [zeroAmountAllowed:protected] => 1
            [negativeAmountAllowed:protected] => 
        )

    [data:protected] => Array
        (
            [TOKEN] => EC-108868324G933550J
            [SUCCESSPAGEREDIRECTREQUESTED] => false
            [TIMESTAMP] => 2017-03-07T18:00:03Z
            [CORRELATIONID] => 484b9b654c7ce
            [ACK] => Success
            [VERSION] => 119.0
            [BUILD] => 30029726
            [INSURANCEOPTIONSELECTED] => false
            [SHIPPINGOPTIONISDEFAULT] => false
            [PAYMENTINFO_0_TRANSACTIONID] => 5B035460RC1369720
            [PAYMENTINFO_0_TRANSACTIONTYPE] => expresscheckout
            [PAYMENTINFO_0_PAYMENTTYPE] => instant
            [PAYMENTINFO_0_ORDERTIME] => 2017-03-07T18:00:02Z
            [PAYMENTINFO_0_AMT] => 170.00
            [PAYMENTINFO_0_FEEAMT] => 5.98
            [PAYMENTINFO_0_TAXAMT] => 0.00
            [PAYMENTINFO_0_CURRENCYCODE] => GBP
            [PAYMENTINFO_0_PAYMENTSTATUS] => Pending
            [PAYMENTINFO_0_PENDINGREASON] => paymentreview
            [PAYMENTINFO_0_REASONCODE] => None
            [PAYMENTINFO_0_PROTECTIONELIGIBILITY] => Ineligible
            [PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE] => None
            [PAYMENTINFO_0_SECUREMERCHANTACCOUNTID] => BHY3XM5QBXWRS
            [PAYMENTINFO_0_ERRORCODE] => 0
            [PAYMENTINFO_0_ACK] => Success
        )

)
UPDATE perch2_shop_orders_meta SET metaValue=last_insert_id(metaValue+1) WHERE id='last_invoice_number'
[1] SELECT last_insert_id()
[40] SELECT DISTINCT settingID, settingValue FROM perch2_settings WHERE userID=0
UPDATE perch2_shop_orders SET orderInvoiceNumber='Invoice9', orderUpdated='2017-03-07 18:00:05' WHERE orderID='20'
No ids to log.
Setting order status to paid
UPDATE perch2_shop_orders SET orderDynamicFields='{\"status\":\"paid\"}', orderStatus='paid', orderUpdated='2017-03-07 18:00:05' WHERE orderID='20'
No ids to log.
Array
(
    [country] => GB
)
[1] SELECT * FROM perch2_shop_countries WHERE iso2='GB' LIMIT 1
[1] SELECT * FROM perch2_shop_tax_locations WHERE locationDeleted IS NULL AND ((countryID=236 AND regionID IS NULL) OR locationIsDefault=1) ORDER BY locationIsDefault ASC LIMIT 1
INSERT INTO perch2_shop_tax_exhibits(orderID,exhibitType,exhibitDetail,exhibitSource,locationID,countryID,exhibitDate) VALUES(20,'CARD_ADDRESS','GB','PayPal_Express','1','236','2017-03-07 18:00:06')
[1] SELECT * FROM perch2_shop_tax_exhibits WHERE exhibitID='45' LIMIT 1
No ids to log.
UPDATE perch2_shop_tax_exhibits SET orderID=20, exhibitType='CARD_ADDRESS', exhibitDetail='GB', exhibitSource='PayPal_Express', locationID='1', countryID='236', exhibitDate='2017-03-07 18:00:06' WHERE exhibitID='45'
No ids to log.
[1] SELECT * FROM perch2_shop_addresses WHERE addressID='41' AND addressDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_tax_locations WHERE locationDeleted IS NULL AND ((countryID=236 AND regionID IS NULL) OR locationIsDefault=1) ORDER BY locationIsDefault ASC LIMIT 1
Looking up missing property address_1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property address_2
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property city
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property county
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property postcode
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
INSERT INTO perch2_shop_tax_exhibits(orderID,exhibitType,exhibitDetail,exhibitSource,locationID,countryID,exhibitDate) VALUES(20,'BILL_ADDRESS','123, Test Avenue, Testerton, Testshire, TT12 8PP, United Kingdom','Customer','1','236','2017-03-07 18:00:06')
[1] SELECT * FROM perch2_shop_tax_exhibits WHERE exhibitID='46' LIMIT 1
No ids to log.
UPDATE perch2_shop_tax_exhibits SET orderID=20, exhibitType='BILL_ADDRESS', exhibitDetail='123, Test Avenue, Testerton, Testshire, TT12 8PP, United Kingdom', exhibitSource='Customer', locationID='1', countryID='236', exhibitDate='2017-03-07 18:00:06' WHERE exhibitID='46'
No ids to log.
[1] SELECT * FROM perch2_shop_addresses WHERE addressID='41' AND addressDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_tax_locations WHERE locationDeleted IS NULL AND ((countryID=236 AND regionID IS NULL) OR locationIsDefault=1) ORDER BY locationIsDefault ASC LIMIT 1
Looking up missing property address_1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property address_2
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property city
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property county
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
Looking up missing property postcode
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
INSERT INTO perch2_shop_tax_exhibits(orderID,exhibitType,exhibitDetail,exhibitSource,locationID,countryID,exhibitDate) VALUES(20,'SHIP_ADDRESS','123, Test Avenue, Testerton, Testshire, TT12 8PP, United Kingdom','Customer','1','236','2017-03-07 18:00:06')
[1] SELECT * FROM perch2_shop_tax_exhibits WHERE exhibitID='47' LIMIT 1
No ids to log.
UPDATE perch2_shop_tax_exhibits SET orderID=20, exhibitType='SHIP_ADDRESS', exhibitDetail='123, Test Avenue, Testerton, Testshire, TT12 8PP, United Kingdom', exhibitSource='Customer', locationID='1', countryID='236', exhibitDate='2017-03-07 18:00:06' WHERE exhibitID='47'
No ids to log.
[1] SELECT * FROM perch2_shop_order_statuses WHERE statusKey='paid' AND statusActive=1 AND statusDeleted IS NULL
[2] SELECT * FROM perch2_shop_emails WHERE emailStatus=3 AND emailActive=1
Sending customer email
[1] SELECT * FROM perch2_shop_customers WHERE customerID='20' AND customerDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_members WHERE memberID='21' LIMIT 1
Using email template: /home/username/public_html/admin/templates/shop/emails/customer_order_paid.html (html)
[1] SELECT * FROM perch2_shop_order_statuses WHERE statusKey='paid' AND statusDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_addresses WHERE addressID=41 AND addressDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
[1] SELECT * FROM perch2_shop_addresses WHERE addressID=41 AND addressDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
[1] SELECT * FROM perch2_shop_order_items WHERE orderID='20' ORDER BY itemID ASC
[1] SELECT * FROM perch2_shop_order_statuses WHERE statusKey='paid' AND statusDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_currencies WHERE currencyID=47 LIMIT 1
[1] SELECT * FROM perch2_shop_shippings WHERE shippingID=0 AND shippingDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_products WHERE productID=8 AND productDeleted IS NULL LIMIT 1
Looking up missing property sender_name
Looking up missing property sender_email
Building message with Perch template
[1] Using template: /templates/shop/emails/customer_order_paid.html
Using sub-template: /templates/shop/emails/email.html
Using sub-template: /templates/shop/emails/_email_header.html
[1] Using sub-template: /templates/shop/emails/_email_footer.html
[2] SELECT * FROM perch2_categories ORDER BY catTreePosition ASC
Sent email: "Thank you for your order" to buttonturvey@hotmail.com
Sending customer email
[1] SELECT * FROM perch2_shop_customers WHERE customerID='20' AND customerDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_members WHERE memberID='21' LIMIT 1
Using email template: /home/username/public_html/admin/templates/shop/emails/admin_order_paid.html (html)
[1] SELECT * FROM perch2_shop_order_statuses WHERE statusKey='paid' AND statusDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_addresses WHERE addressID=41 AND addressDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
[1] SELECT * FROM perch2_shop_addresses WHERE addressID=41 AND addressDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_countries WHERE countryID='236' LIMIT 1
[1] SELECT * FROM perch2_shop_order_items WHERE orderID='20' ORDER BY itemID ASC
[1] SELECT * FROM perch2_shop_order_statuses WHERE statusKey='paid' AND statusDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_currencies WHERE currencyID=47 LIMIT 1
[1] SELECT * FROM perch2_shop_shippings WHERE shippingID=0 AND shippingDeleted IS NULL LIMIT 1
[1] SELECT * FROM perch2_shop_products WHERE productID=8 AND productDeleted IS NULL LIMIT 1
Looking up missing property sender_name
Looking up missing property sender_email
Building message with Perch template
[1] Using template: /templates/shop/emails/admin_order_paid.html
Using sub-template: /templates/shop/emails/email.html
Using sub-template: /templates/shop/emails/_email_header.html
[1] Using sub-template: /templates/shop/emails/_email_footer.html
[2] SELECT * FROM perch2_categories ORDER BY catTreePosition ASC
Sent email: "An order has been placed" to smturvey@gmail.com
[1] SELECT p.*, oi.itemQty FROM perch2_shop_order_items oi, perch2_shop_products p WHERE oi.productID = p.productID AND oi.orderID='20'
[1] SELECT * FROM perch2_shop_customers WHERE customerID='20' AND customerDeleted IS NULL LIMIT 1
UPDATE perch2_shop_products SET stock_level=0, productUpdated='2017-03-07 18:00:11' WHERE productID='8'
No ids to log.
[nil] SELECT * FROM perch2_shop_product_tags WHERE productID=8 AND tagDeleted IS NULL ORDER BY tagOrder ASC
[1] SELECT * FROM perch2_shop_currencies WHERE currencyActive=1 AND currencyID=47
UPDATE perch2_shop_orders SET orderExchangeRate=1, orderUpdated='2017-03-07 18:00:11' WHERE orderID='20'
No ids to log.
[1] SELECT * FROM perch2_shop_orders WHERE orderID=20 AND orderDeleted IS NULL LIMIT 1
Is paid?
Drew McLellan

Drew McLellan 2638 points
Perch Support

Ok, that all looks fine. What actual problem are you seeing?

Nothing appears in my paypal sandbox account under transactions so I can't be sure if it's correctly integrating with paypal or not.

Drew McLellan

Drew McLellan 2638 points
Perch Support

Do you get any notifications from PayPal? Do you see anything in your logs at all?

No notification from Paypal. Which logs are you referring to?

Drew McLellan

Drew McLellan 2638 points
Perch Support

I think there are API lots at PayPal to see what interactions you've been performing, are there not?

I've had a look around and can't find that information

Drew McLellan

Drew McLellan 2638 points
Perch Support

Ok. I don't have anything like that set up here, but I'd be able to look at it next week.