mollie / WooCommerce

Official Mollie extension for WooCommerce
https://wordpress.org/plugins/mollie-payments-for-woocommerce/
Other
131 stars 53 forks source link

Issue where about 50% of our orders fail #315

Closed jjeroennl closed 3 years ago

jjeroennl commented 5 years ago

Hello,

We've setup a new site with mollie which has been running for the past 2 months. Sadly it seems like a lot of orders seem to fail. They seem to fail at the warning:

2019-10-17T08:11:20+00:00 DEBUG mollie_wc_gateway_klarnapaylater:

Customer returned to store, but payment still pending for order #*****. Status should be updated automatically in the future, if it doesn't this might indicate a communication issue between the site and Mollie.

When I look at the accesslogs of our server it confirms that we don't receive a /wc-api/mollie_wc_gateway_klarnapaylater/?order_id=****&key=wc_order_*** HTTP/1.0" 200 774 "-" "Mollie.nl HTTP client/1.0" for the orders that have failed. The order within Woocommerce itself seems fine.

I've confirmed myself:

The problem is that every test payment we did ourselfs on both our test and production environment seem to work just fine, so we aren't able to reproduce the error.

I hope I provided enough information to give us some hints to where the issue might be.

The server is running a NGINX to Apache2 reverse proxy on Ubuntu 18.04.

Server built:   2019-09-16T12:58:48

nginx version: nginx/1.17.4
jjeroennl commented 5 years ago

I just got some extra information.

We asked a customer why their payment didn't complete and they gave us the exact error they got.

They responded with: ErrorV1[errorCode=BAD_REQUEST,errorMessages=[Failed to parse multipart servlet request; nested exception is java.io.IOException: Missing content for multipart request],correlationId=*UNIQUE ID*]

I assume this is an error on Mollie's server, is there something we might be doing wrong that can cause this error?

jjeroennl commented 5 years ago

Log of an order that functions correctly:

2019-10-16T21:31:49+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Start process_payment for order ***
2019-10-16T21:31:49+02:00 DEBUG setUserMollieCustomerId: Stored Mollie customer ID cst_*** with user **
2019-10-16T21:31:49+02:00 DEBUG getUserMollieCustomerId: Created a Mollie Customer (cst_***) for WordPress user with ID *** (live).
2019-10-16T21:31:49+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Create Mollie payment object for order ***
2019-10-16T21:31:49+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Order *** returnUrl: https://site.nl/wc-api/mollie_return/?order_id=***&key=wc_order_***
2019-10-16T21:31:49+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Order *** webhookUrl: https://site.nl/wc-api/mollie_wc_gateway_klarnapaylater/?order_id=***&key=wc_order_***
2019-10-16T21:31:49+02:00 DEBUG Creating payment object: type Order, first try creating a Mollie Order.
2019-10-16T21:31:49+02:00 DEBUG setUserMollieCustomerId: Stored Mollie customer ID *** with user ***
2019-10-16T21:31:49+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Mollie payment object ord_*** (live) created for order ***
2019-10-16T21:31:49+02:00 DEBUG For order *** redirect user to Mollie Checkout URL: https://www.mollie.com/payscreen/order/checkout/***
2019-10-16T19:32:54+00:00 DEBUG mollie_wc_gateway_klarnapaylater: Mollie payment object ord_*** (live) webhook call for order ***.
2019-10-16T19:32:54+00:00 DEBUG Mollie_WC_Gateway_Abstract::orderNeedsPayment mollie_wc_gateway_klarnapaylater: Order *** orderNeedsPayment check: yes, order not previously processed by Mollie gateway.
2019-10-16T19:32:54+00:00 DEBUG Mollie_WC_Payment_Order::onWebhookAuthorized called for order ***
2019-10-16T19:32:57+00:00 DEBUG Mollie_WC_Payment_Order::onWebhookAuthorized WooCommerce payment_complete() processed and returned to Mollie_WC_Payment_Order::onWebhookAuthorized for order ***
2019-10-16T19:32:57+00:00 DEBUG Mollie_WC_Payment_Order::onWebhookAuthorized processing order status update via Mollie plugin fully completed for order ***
2019-10-16T19:32:59+00:00 DEBUG Mollie_WC_Gateway_Abstract::getReturnRedirectUrlForOrder ***: Determine what the redirect URL in WooCommerce should be.

Log of an order that fails:

2019-10-17T06:05:00+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Start process_payment for order ***
2019-10-17T06:05:00+02:00 DEBUG setUserMollieCustomerId: Stored Mollie customer ID *** with user ***
2019-10-17T06:05:00+02:00 DEBUG getUserMollieCustomerId: Created a Mollie Customer (***) for WordPress user with ID *** (live).
2019-10-17T06:05:00+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Create Mollie payment object for order ***
2019-10-17T06:05:00+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Order *** returnUrl: https://site.nl/wc-api/mollie_return/?order_id=***&key=****
2019-10-17T06:05:00+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Order *** webhookUrl: https://site.nl/wc-api/mollie_wc_gateway_klarnapaylater/?order_id=***&key=****
2019-10-17T06:05:00+02:00 DEBUG Creating payment object: type Order, first try creating a Mollie Order.
2019-10-17T06:05:01+02:00 DEBUG setUserMollieCustomerId: Stored Mollie customer ID *** with user ***
2019-10-17T06:05:01+02:00 DEBUG mollie_wc_gateway_klarnapaylater: Mollie payment object *** (live) created for order ***
2019-10-17T06:05:01+02:00 DEBUG For order *** redirect user to Mollie Checkout URL: https://www.mollie.com/payscreen/order/checkout/***
2019-10-17T08:11:18+00:00 DEBUG Mollie_WC_Gateway_Abstract::getReturnRedirectUrlForOrder ***: Determine what the redirect URL in WooCommerce should be.
2019-10-17T08:11:18+00:00 DEBUG Mollie_WC_Gateway_Abstract::orderNeedsPayment mollie_wc_gateway_klarnapaylater: Order *** orderNeedsPayment check: yes, order not previously processed by Mollie gateway.
2019-10-17T08:11:18+00:00 DEBUG Mollie_WC_Plugin::onMollieReturn: Redirect url on return order mollie_wc_gateway_klarnapaylater, order ***: https://site.nl/afrekenen/order-received/***/?key=wc_order_***&utm_nooverride=1
2019-10-17T08:11:20+00:00 DEBUG mollie_wc_gateway_klarnapaylater: Customer returned to store, but payment still pending for order #***. Status should be updated automatically in the future, if it doesn't this might indicate a communication issue between the site and Mollie.

This issue seems similar to #313

AndreasWInpsyde commented 5 years ago

Hello @jjeroennl

please let me create an internal issue for it so our developers can have a closer look at it. Can you please provide me the following information:

Please send these files and steps to reproduce to mollie@inpsyde.com

Best regards Andreas