We get PayPal IPN but clients see "Order was cancelled.."
-
Hi folks,
we have a PayPal issue that happens very often (like 50% of the orders): The IPN is received from PayPal properly but unfortunately the client sees a negative message like “Your order was cancelled…” when he returns from the PayPal site.
When I look up the order status history it goes like:
in cart -> unpaid -> cancelled -> (IPN) -> pendingThe status change from unpaid to cancelled has no additional remarks.
It seems to me that the system is not waiting for the IPN and premature displays the negative status.
I have already tried to change the order prefix, but it did not help.
Thanks!
-
WooCommerce > Settings > Products > Inventory. Increase https://dl.dropboxusercontent.com/s/4nhrp4nf87tjq3n/2016-02-29%20at%2012.06.png?dl=0
Hi Mike, thanks for the quick reply.
The hold stock time is set to 30 Minutes in our case.
In our case the status turns cancelled after less than a minute already.
Increase it in case there is a timezone issue on your server.
OK I increased and will wait for the next hours.
I also found a warning in the WC status about wp_remote_post():
### Server Environment ### Server Info: Apache PHP Version: 5.4.45 PHP Post Max Size: 8 MB PHP Time Limit: 30 PHP Max Input Vars: 1000 SUHOSIN Installed: – MySQL Version: 5.5.38 Max Upload Size: 8 MB Default Timezone is UTC: ? fsockopen/cURL: ? SoapClient: ? DOMDocument: ? GZip: ? Remote Post: ? wp_remote_post() schlug fehl. PayPal IPN wird nicht mit Ihrem Server funktionieren. Kontaktieren Sie Ihren Webhoster. Statuscode: 500 Remote Get: ?
Thats a problem – IPN cannot be reached from your server. Might be a problem with your server config (non supported SSL posts, or firewall).
Thanks!
I just talked to the hosting and made sure that cURL is on. The whole website is running with a valid SSL cert.
I want to give more details to the hosting provider, so what can I do get more details about the problem?
Your error logs may have info, and you can say you’re trying to use wp_remote_post on a Paypal endpoint which is failing.
Hi Mike, I told them about the wp_remote_post warning but WP_Http is a mighty class and I guess my hosting cannot do the debugging for me.
Attached below you will see a log of an order where the client successfully completed PayPal. After that he saw an error that the order was cancelled due to payment problems. The log file entry looks normal, cannot find any issues but one second before the IPN, the order was marked cancelled.
02-16-2016 @ 16:57:05 - Generating payment form for order 4389. Notify URL: https://www.adventurerooms-dresden.de/wc-api/WC_Gateway_Paypal/ 02-16-2016 @ 16:57:55 - Checking IPN response is valid 02-16-2016 @ 16:57:57 - IPN Request: Array ( [body] => Array ( [cmd] => _notify-validate [mc_gross] => xx.00 [invoice] => DD-xxxx [protection_eligibility] => Ineligible [item_number1] => 4389 [tax] => 0.00 [item_number2] => [payer_id] => xxxxxxxxxxxxxx [payment_date] => 07:57:42 Feb 16, 2016 PST [payment_status] => Completed [charset] => windows-1252 [mc_shipping] => 0.00 [mc_handling] => 0.00 [first_name] => xxxxxxx [mc_fee] => 0.xx [notify_version] => 3.8 [custom] => {"order_id":4389,"order_key":"wc_order_56c346d103fe1"} [payer_status] => verified [business] => [email protected] [num_cart_items] => 2 [mc_handling1] => 0.00 [mc_handling2] => 0.00 [verify_sign] => AH2UTgLuOMKxxxxxxxxxxxxxxxxxxxxxxxxxxIoSX9bydPTwMQmtES1S [payer_email] => [email protected] [mc_shipping1] => 0.00 [mc_shipping2] => 0.00 [tax1] => 0.00 [tax2] => 0.00 [txn_id] => xxxxxxxxxxxxxxxxx [payment_type] => instant [last_name] => xxxxxxx [item_name1] => Schweizer Original x 1 [receiver_email] => [email protected] [item_name2] => Versand via [payment_fee] => [quantity1] => 1 [quantity2] => 1 [receiver_id] => xxxxxxxxxxxxx [txn_type] => cart [mc_gross_1] => xx.00 [mc_currency] => EUR [mc_gross_2] => 0.00 [residence_country] => DE [transaction_subject] => {"order_id":4389,"order_key":"wc_order_146d56c3103fe"} [payment_gross] => [ipn_track_id] => xxxxxxxxxxxx ) [timeout] => 60 [httpversion] => 1.1 [compress] => [decompress] => [user-agent] => WooCommerce/2.4.12 ) 02-16-2016 @ 16:57:57 - IPN Response: Array ( [headers] => Array ( [server] => Apache [x-frame-options] => SAMEORIGIN [paypal-debug-id] => 7e4xxxxxxx9642 [cache-control] => max-age=0, no-cache, no-store, must-revalidate [pragma] => no-cache [content-type] => text/html; charset=UTF-8 [dc] => dcg12-origin-www-1.paypal.com [date] => Tue, 16 Feb 2016 15:57:57 GMT [content-length] => 8 [connection] => close [set-cookie] => Array ( [0] => cwrCfydGbALoCV1xilyrK4NL6iG=4j29Z6fNR41mjwBGRRa9p7TvSby9XknHd8S4eqzceHwXWeqPy2GZPBhxI8s61rl81N-aQBH-BiHb4XgL-y_097tro8NMTxWkkBDmI-KduzrJQcFRK9gAXrOuMFH_hLQ39RybE7nm8OhyCQtcQj04IBVnP7NNTbQiOECRf34sLJbNcq8aZbpI9_3ViQ-Uu3q_2Nu8R41JEWxG7rgU2qjb04-75ai85LMJzgW3yGQm8x-zfbynZ2eeGVjqsjKDpmajmBYg1iLyB9aL-JHmlRIfgFx85XCODzdiRqa2Tp3vJ-V6cWoRD05b; domain=.paypal.com; path=/; Secure; HttpOnly [1] => cookie_check=yes; expires=Fri, 13-Feb-2026 15:57:57 GMT; domain=.paypal.com; path=/; Secure; HttpOnly [2] => navcmd=_notify-validate; domain=.paypal.com; path=/; Secure; HttpOnly [3] => navlns=0.0; expires=Thu, 15-Feb-2018 15:57:57 GMT; domain=.paypal.com; path=/; Secure; HttpOnly [4] => X-PP-SILOVER=name%3DLIVE11.WEB.1%26silo_version%3D880%26app%3Dappdispatcher%26TIME%3D88589142; domain=.paypal.com; path=/; Secure; HttpOnly [5] => X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT [6] => AKDC=dcg12-origin-www-1.paypal.com; expires=Tue, 16-Feb-2016 16:27:57 GMT; path=/; secure ) [strict-transport-security] => max-age=63072000 ) [body] => VERIFIED [response] => Array ( [code] => 200 [message] => OK ) [cookies] => Array ( [0] => WP_Http_Cookie Object ( [name] => cwrCfydGbALoCV1xilyrK4NL6iG [value] => 4j29Z6fNR41mjwBrV9JTh14MqmIeyVR1lst9KHBNnmHd8S4eqzceHwXWeqPy2GZPBhxI8s61rl81N-aQBH-BiHb4XgL-y_097tro8NMTxWkkBDmI-KduzrJQcFRK9gAXrOuMFH_hLQ39RybE7nm8OhyCQtcQj04IBVnP7NNTbQiOECRf34sLJbNcq8aZbpI9_3ViQ-Uu3q_2Nu8R41JEWxG7rgU2qjb04-75ai85LMJzgW3yGQm8x-zfbynZ2eeGVjqsjKDpmajmBYg1iLyB9aL-JHmlRIfgFx85XCODzdiRqa2Tp3vJ-V6cWoRD05b [expires] => [path] => / [domain] => .paypal.com [secure] => [httponly] => ) [1] => WP_Http_Cookie Object ( [name] => cookie_check [value] => yes [expires] => 1770998277 [path] => / [domain] => .paypal.com [secure] => [httponly] => ) [2] => WP_Http_Cookie Object ( [name] => navcmd [value] => _notify-validate [expires] => [path] => / [domain] => .paypal.com [secure] => [httponly] => ) [3] => WP_Http_Cookie Object ( [name] => navlns [value] => 0.0 [expires] => 1518710277 [path] => / [domain] => .paypal.com [secure] => [httponly] => ) [4] => WP_Http_Cookie Object ( [name] => X-PP-SILOVER [value] => name=LIVE11.WEB.1&silo_version=880&app=appdispatcher&TIME=88589142 [expires] => [path] => / [domain] => .paypal.com [secure] => [httponly] => ) [5] => WP_Http_Cookie Object ( [name] => X-PP-SILOVER [value] => [expires] => 1 [path] => /cgi-bin/ [domain] => www.paypal.com ) [6] => WP_Http_Cookie Object ( [name] => AKDC [value] => dcg12-origin-www-1.paypal.com [expires] => 1455640077 [path] => / [domain] => www.paypal.com [secure] => ) ) [filename] => ) 02-16-2016 @ 16:57:57 - Received valid response from PayPal 02-16-2016 @ 16:57:57 - Found order #4389 02-16-2016 @ 16:57:57 - Payment status: completed
Has the time limit change had no effect? Log is fine.
Obviously the time limit did not fix it. Today we had another client who finished PayPal but saw an error instead of Thank You.
Set the time limit field blank then – disable it entirely. I think you have a timezone issue on your server.
Thanks, I will see if it makes a difference.
For now I can say that the timezone is correct (Berlin) and the server time is precisely in sync with the local ebay time.
server time should be UTC, just as an FYI.
Hi Mike, even with no time limit for the stock, the issue persists, about 50% of the clients see a cancelled message after successfully completing PayPal.
The hosting told us that since PHP 5.3 (we use 5.4) the PHP time can be set per webspace with .htaccess or php.ini and that other clients successfully work with PayPal IPN on the same environment.
In the meantime I let the thankyou page send me an email with the $_SERVER array each time the error comes up. In the query string and redirect query string I can see st=Completed, is that of importance?
[REDIRECT_QUERY_STRING] => key=wc%5forder%5f56d87ed0d1147&utm_nooverride=1&tx=7XA1218886825791G&st=Completed&amt=140%2e00&cc=EUR&cm=%7b%22order%5fid%22%3a5123%2c%22order%5fkey%22%3a%22wc%5forder%5f56d87ed0d1147%22%7d&item_number=
If it’s not the stock hold time, what can I try next?
What can be the reason for wp_remote_post not to work?The only function we have that cancels orders is the on-hold stock thing. if that is empty (disabled), WC does not cancel – it leaves the order pending indefinitely.
Based on this, I think you must have code or a plugin cancelling the orders.
What can be the reason for wp_remote_post not to work?
Firewall, lack of support for open SSL.
- The topic ‘We get PayPal IPN but clients see "Order was cancelled.."’ is closed to new replies.