• Resolved bigusersmol

    (@bigusersmol)


    Hello everyone,

    We run into an issue with the default woocommerce payment option (Bank transfer) that is a default option when u install woocommerce.

    In very special circumstances (we havn’t been able to reproduce this ourselves, but this happend twice now in the last couple of months) a Woocommerce order that has the state “waiting for payment” get’s changed to the state wc-processing after choosing the payment option “Bank transfer” Before i start explaining what was done on the customer side, this should never be possible and should always goto the state “waiting for payment” as it does correctly 99% of the time.

    As we have many automated actions that are based on the wc-processing state the unwanted behavior causes huge issues and possible loss of money.

    With the above being said i will try to explain what the customer did to fool the woocommerce system.

    Beside the “Bank transfer” payment option we also use the official Buckaroo payment plugin and for our Dutch customers we use the Ideal option.

    With this customer we made a special arrangement so we agreed that he would put all the products that he needs into his shoppingbasket and pay for the order with bank transfer so we would be able to modify the order afterwards and send him the Pro-forma which he would then pay by bank.

    What did the customer do:
    On the checkout the customer used the Ideal option from Buckaroo instead of the Bank Transfer option. While being on the bank’s website he realised he made that mistake and used the back button in his browser to go back to the checkout page. While he did that the checkout page would not load at that time. I had quite a conversation with the technical staff of buckaroo and they say the there was no action at all in their system after sending them to the bank page, not even the cancelled payment what means that the customer could only have done it like this by deleting the tab or by pressing the back button of the browser.

    the customer went back to the checkout page and we are still not sure which steps he actually took (he doesn’t remember it for 100%). And then he used the Bank Transfer payment option for the same order id and then the order got changed to wc-processing.

    In the apache logs we see the customer make 2 requests that made this possible. For privacy reasons we changed the domainname to fqdn and the order ID to order-id and we masked the customers ip address.

    xxx.xxx.xxx.xxx – – [31/Jul/2023:17:19:39 +0200] “GET /afrekenen/order-received/order-id/?key=wc_order_4kM93bL531BF3 HTTP/1.1” 200 20219 https://fqdn/afrekenen/ “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188”
    xxx.xxx.xxx.xxx – – [31/Jul/2023:17:19:39 +0200] “POST /wp-admin/admin-ajax.php HTTP/1.1” 200 43 https://fqdn/afrekenen/order-received/order-id/?key=wc_order_4kM93bL531BF3 “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188”

    The above requests where like 5 minutes after the first checkout using the buckaroo plugin.

    The conclusion from Buckaroo is that they didn’t change the order state to wc-processing, we can’t find anything in the logs that state they did. So far as we can see it and with the customers input our conclusion is also that this was done by the default woocommerce payment option “Bank tranfer”.

    The solution Buckaroo came up with was to start using their Bank transfer option since then we will receive pushes from their api instead of woocommerce handling this.

    As i do believe that that will solve the problem i also believe that the bank transfer option should never change the order state to wc-processing as it did in this case.

    We tried to reproduce the problem but we where unable to reproduce the loading state that did not complete as the customer experienced so we where never able to reproduce this for 100%. As a fact we do have that order changed to wc-processing where it should have went to the state waiting for payment.

    Hopefully this will help the people from woocommerce solve this issue since it can have quite an impact for those that will experience this.

Viewing 1 replies (of 1 total)
  • Saif

    (@babylon1999)

    Hello @bigusersmol,

    Thank you for the detailed explanation!

    It’s a bit challenging to nail down exactly what’s going on here, especially given that multiple payment gateways are involved and you have several automation workflows running.

    From the WooCommerce side of things, customers can change their payment methods from the my-account page if the order is still isn’t paid for (pending payment).




    Link to image: https://d.pr/i/H18L3h



    My guess is that your payment method may have switched the order to Pending Payment because iDeal is also a bank-payment system. The customer could have then changed it to Bacs.

    But that doesn’t explain why was the order status changed to processing instead of on-hold.

    Could please try placing a test order, switching its status to Pending Payments, and then try paying with Bacs?

    If you’re able to reproduce the same behaviour, then you can figure out what’s auto-switching the order status with a conflict test.

    You can more step-by-step instructions on how to fix conflicts at https://woocommerce.com/document/how-to-test-for-conflicts/.

    Let us know how it goes!

Viewing 1 replies (of 1 total)
  • The topic ‘Bank transfer (default payment option) bug’ is closed to new replies.