mollie / WooCommerce

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

PHP Fatal error: Undefined method isCompleted() #859

Closed michielgerritsen closed 7 months ago

michielgerritsen commented 10 months ago

Hey,

A few days ago, we updated this plugin from 7.4.0 to 7.4.1, and from that moment, we sometimes get this error in our logs:

PHP message: PHP Fatal error: Uncaught Error: Call to undefined method Mollie\Api\Resources\Payment::isCompleted() in /www/webhopname/deploy/releases/200/public_html/wp-content/plugins/mollie-payments-for-woocommerce/src/Payment/MollieOrderService.php:153
Stack trace:
#0 /www/webhopname/deploy/releases/200/public_html/wp-includes/class-wp-hook.php(310): Mollie\WooCommerce\Payment\MollieOrderService->onWebhookAction('')
#1 /www/webhopname/deploy/releases/200/public_html/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters('', Array)
#2 /www/webhopname/deploy/releases/200/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#3 /www/webhopname/deploy/releases/200/public_html/wp-content/plugins/woocommerce/includes/class-wc-api.php(161): do_action('woocommerce_api...')
#4 /www/webhopname/deploy/releases/200/public_html/wp-includes/class-wp-hook.php(310): WC_API->handle_api_requests(Object(WP))
#5 /www/webhopname/deploy/releas" while reading response header from upstream, client: 34.76.90.110, server: webhopname.kinsta.cloud, request: "POST /wc-api/mollie_wc_gateway_ideal?order_id=129231&key=wc_order_xxxx&filter_flag HTTP/2.0", upstream: "fastcgi://unix:/var/run/php8.0-fpm-webhopname.sock:", host: "www.webhop.name:35588"

This occurs about once a day. The method used differs, but according to the logs, the customer changed the chosen payment method during the process.

fjbender commented 10 months ago

That's odd. completed is not a payment status, and never has been. See https://github.com/mollie/mollie-api-php/blob/master/src/Types/PaymentStatus.php

Seems like they're trying to apply an Order state machine to a Payment.

michielgerritsen commented 10 months ago

I suspect that somewhere during order placement when is being switched between payment methods, the API method is changed, and now an Orders API payment is expected, but a Payment API object is received. The Order object does have this isCompleted method: https://github.com/mollie/mollie-api-php/blob/master/src/Resources/Order.php#L286-L294

While the Payment object does not: https://github.com/mollie/mollie-api-php/blob/master/src/Resources/Payment.php

fjbender commented 10 months ago

Yes, it might indeed be the case that we have an order with multiple payments in those cases. Can you share with me a couple of examples? I'll then work with @asotela3911 to harden our integration here a bit to recognize this case.

michielgerritsen commented 10 months ago

I have an example here. This particular order has 2 different Orders API IDs, and 1 Payments API ID:

2023-11-15T11:31:48+00:00 DEBUG ideal: Start process_payment for order 123456
2023-11-15T11:31:49+00:00 DEBUG mollie_wc_gateway_ideal: Create Mollie payment object for order 123456
2023-11-15T11:31:49+00:00 DEBUG  Order 123456 returnUrl: https://www.webshop.com/afrekenen/order-received/123456/?key=wc_order_wwwwwweDZb9EB&utm_nooverride=1&order_id=123456&filter_flag=onMollieReturn
2023-11-15T11:31:49+00:00 DEBUG  Order 123456 webhookUrl: https://www.webshop.com/wc-api/mollie_wc_gateway_ideal?order_id=123456&key=wc_order_wwwwwweDZb9EB&filter_flag
2023-11-15T11:31:49+00:00 DEBUG {"amount":{"currency":"EUR","value":"20.91"},"redirectUrl":"https:\/\/www.webshop.com\/afrekenen\/order-received\/123456\/?key=wc_order_wwwwwweDZb9EB&utm_nooverride=1&order_id=123456&filter_flag=onMollieReturn","webhookUrl":"https:\/\/www.webshop.com\/wc-api\/mollie_wc_gateway_ideal?order_id=123456&key=wc_order_wwwwwweDZb9EB&filter_flag","method":"ideal","payment":{"issuer":"ideal_RABONL2U","customerId":"cst_axi4UmvykN"},"locale":"nl_NL","metadata":{"order_id":123456,"order_number":"123456"},"orderNumber":"123456","lines":[{"sku":"THV028204","name":"Tacx Shiva 750 ML Bidon - Zwart","quantity":4,"vatRate":21,"unitPrice":{"currency":"EUR","value":"3.99"},"totalAmount":{"currency":"EUR","value":"15.96"},"vatAmount":{"currency":"EUR","value":"2.77"},"discountAmount":{"currency":"EUR","value":"0.00"},"metadata":{"order_item_id":311898}},{"type":"shipping_fee","name":"Verzending","quantity":1,"vatRate":21,"unitPrice":{"currency":"EUR","value":"4.95"},"totalAmount":{"currency":"EUR","value":"4.95"},"vatAmount":{"currency":"EUR","value":"0.86"},"metadata":{"order_item_id":"311899"}}]}
2023-11-15T11:31:49+00:00 DEBUG {"id":"ord_1.xxxx","profileId":"pfl_CzQdfEUEhV","mode":"live","amount":{"value":"20.91","currency":"EUR"},"amountCaptured":null,"amountRefunded":null,"status":"created","billingAddress":{"organizationName":"Vision Medical Company","streetAndNumber":"Vluchtoord 3-a","postalCode":"5406XP","city":"Uden","country":"NL","givenName":"Marita","familyName":"van Zutphen","email":"marita_nl@yahoo.com"},"consumerDateOfBirth":null,"orderNumber":"123456","shippingAddress":{"streetAndNumber":"Vluchtoord 3-a","postalCode":"5406XP","city":"Uden","country":"NL","givenName":"Marita","familyName":"van Zutphen","email":"marita_nl@yahoo.com"},"method":"ideal","locale":"nl_NL","metadata":{"order_id":123456,"order_number":"123456"},"isCancelable":false,"webhookUrl":"https:\/\/www.webshop.com\/wc-api\/mollie_wc_gateway_ideal?order_id=123456&key=wc_order_wwwwwweDZb9EB&filter_flag","redirectUrl":"https:\/\/www.webshop.com\/afrekenen\/order-received\/123456\/?key=wc_order_wwwwwweDZb9EB&utm_nooverride=1&order_id=123456&filter_flag=onMollieReturn","cancelUrl":null,"createdAt":"2023-11-15T11:31:49+00:00","expiresAt":"2023-12-13T11:31:49+00:00","expiredAt":null,"paidAt":null,"authorizedAt":null,"canceledAt":null,"completedAt":null,"lines":[{"resource":"orderline","id":"odl_3.jwkyne","orderId":"ord_1.xxxx","name":"Tacx Shiva 750 ML Bidon - Zwart","sku":"THV028204","type":"physical","status":"created","metadata":{"order_item_id":311898},"isCancelable":false,"quantity":4,"quantityShipped":0,"amountShipped":{"value":"0.00","currency":"EUR"},"quantityRefunded":0,"amountRefunded":{"value":"0.00","currency":"EUR"},"quantityCanceled":0,"amountCanceled":{"value":"0.00","currency":"EUR"},"shippableQuantity":0,"refundableQuantity":0,"cancelableQuantity":0,"unitPrice":{"value":"3.99","currency":"EUR"},"vatRate":"21.00","vatAmount":{"value":"2.77","currency":"EUR"},"totalAmount":{"value":"15.96","currency":"EUR"},"createdAt":"2023-11-15T11:31:49+00:00"},{"resource":"orderline","id":"odl_3.pylhp8","orderId":"ord_1.xxxx","name":"Verzending","sku":null,"type":"shipping_fee","status":"created","metadata":{"order_item_id":"311899"},"isCancelable":false,"quantity":1,"quantityShipped":0,"amountShipped":{"value":"0.00","currency":"EUR"},"quantityRefunded":0,"amountRefunded":{"value":"0.00","currency":"EUR"},"quantityCanceled":0,"amountCanceled":{"value":"0.00","currency":"EUR"},"shippableQuantity":0,"refundableQuantity":0,"cancelableQuantity":0,"unitPrice":{"value":"4.95","currency":"EUR"},"vatRate":"21.00","vatAmount":{"value":"0.86","currency":"EUR"},"totalAmount":{"value":"4.95","currency":"EUR"},"createdAt":"2023-11-15T11:31:49+00:00"}],"shopperCountryMustMatchBillingCountry":false,"_links":{"self":{"href":"https:\/\/api.mollie.com\/v2\/orders\/ord_1.xxxx","type":"application\/hal+json"},"dashboard":{"href":"https:\/\/my.mollie.com\/dashboard\/org_4916794\/orders\/ord_1.xxxx","type":"text\/html"},"checkout":{"href":"https:\/\/www.mollie.com\/checkout\/order\/1.xxxx","type":"text\/html"},"documentation":{"href":"https:\/\/docs.mollie.com\/reference\/v2\/orders-api\/create-order","type":"text\/html"}},"_embedded":null,"resource":"order"}
2023-11-15T11:31:50+00:00 DEBUG ideal: Mollie payment object ord_1.xxxx (live) created for order 123456
2023-11-15T11:31:50+00:00 DEBUG For order 123456 redirect user to Mollie Checkout URL: https://www.mollie.com/checkout/order/1.xxxx
2023-11-15T11:32:38+00:00 DEBUG ideal: Start process_payment for order 123456
2023-11-15T11:32:38+00:00 DEBUG mollie_wc_gateway_ideal: Create Mollie payment object for order 123456
2023-11-15T11:32:38+00:00 DEBUG  Order 123456 returnUrl: https://www.webshop.com/afrekenen/order-received/123456/?key=wc_order_wwwwwweDZb9EB&utm_nooverride=1&order_id=123456&filter_flag=onMollieReturn
2023-11-15T11:32:38+00:00 DEBUG  Order 123456 webhookUrl: https://www.webshop.com/wc-api/mollie_wc_gateway_ideal?order_id=123456&key=wc_order_wwwwwweDZb9EB&filter_flag
2023-11-15T11:32:38+00:00 DEBUG {"amount":{"currency":"EUR","value":"20.91"},"redirectUrl":"https:\/\/www.webshop.com\/afrekenen\/order-received\/123456\/?key=wc_order_wwwwwweDZb9EB&utm_nooverride=1&order_id=123456&filter_flag=onMollieReturn","webhookUrl":"https:\/\/www.webshop.com\/wc-api\/mollie_wc_gateway_ideal?order_id=123456&key=wc_order_wwwwwweDZb9EB&filter_flag","method":"ideal","payment":{"issuer":null,"customerId":"cst_axi4UmvykN"},"locale":"nl_NL","metadata":{"order_id":123456,"order_number":"123456"},"orderNumber":"123456","lines":[{"sku":"THV028204","name":"Tacx Shiva 750 ML Bidon - Zwart","quantity":4,"vatRate":21,"unitPrice":{"currency":"EUR","value":"3.99"},"totalAmount":{"currency":"EUR","value":"15.96"},"vatAmount":{"currency":"EUR","value":"2.77"},"discountAmount":{"currency":"EUR","value":"0.00"},"metadata":{"order_item_id":311901}},{"type":"shipping_fee","name":"Verzending","quantity":1,"vatRate":21,"unitPrice":{"currency":"EUR","value":"4.95"},"totalAmount":{"currency":"EUR","value":"4.95"},"vatAmount":{"currency":"EUR","value":"0.86"},"metadata":{"order_item_id":"311902"}}]}
2023-11-15T11:32:38+00:00 DEBUG {"id":"ord_1.yyyy","profileId":"pfl_CzQdfEUEhV","mode":"live","amount":{"value":"20.91","currency":"EUR"},"amountCaptured":null,"amountRefunded":null,"status":"created","billingAddress":{"streetAndNumber":"Missielaan 63","postalCode":"5401BP","city":"Uden","country":"NL","givenName":"Marita","familyName":"van Zutphen","email":"marita_nl@yahoo.com"},"consumerDateOfBirth":null,"orderNumber":"123456","shippingAddress":{"streetAndNumber":"Vluchtoord 3-a","postalCode":"5406XP","city":"Uden","country":"NL","givenName":"Marita","familyName":"van Zutphen","email":"marita_nl@yahoo.com"},"method":"ideal","locale":"nl_NL","metadata":{"order_id":123456,"order_number":"123456"},"isCancelable":false,"webhookUrl":"https:\/\/www.webshop.com\/wc-api\/mollie_wc_gateway_ideal?order_id=123456&key=wc_order_wwwwwweDZb9EB&filter_flag","redirectUrl":"https:\/\/www.webshop.com\/afrekenen\/order-received\/123456\/?key=wc_order_wwwwwweDZb9EB&utm_nooverride=1&order_id=123456&filter_flag=onMollieReturn","cancelUrl":null,"createdAt":"2023-11-15T11:32:38+00:00","expiresAt":"2023-12-13T11:32:38+00:00","expiredAt":null,"paidAt":null,"authorizedAt":null,"canceledAt":null,"completedAt":null,"lines":[{"resource":"orderline","id":"odl_3.ih6kj4","orderId":"ord_1.yyyy","name":"Tacx Shiva 750 ML Bidon - Zwart","sku":"THV028204","type":"physical","status":"created","metadata":{"order_item_id":311901},"isCancelable":false,"quantity":4,"quantityShipped":0,"amountShipped":{"value":"0.00","currency":"EUR"},"quantityRefunded":0,"amountRefunded":{"value":"0.00","currency":"EUR"},"quantityCanceled":0,"amountCanceled":{"value":"0.00","currency":"EUR"},"shippableQuantity":0,"refundableQuantity":0,"cancelableQuantity":0,"unitPrice":{"value":"3.99","currency":"EUR"},"vatRate":"21.00","vatAmount":{"value":"2.77","currency":"EUR"},"totalAmount":{"value":"15.96","currency":"EUR"},"createdAt":"2023-11-15T11:32:38+00:00"},{"resource":"orderline","id":"odl_3.okg1r6","orderId":"ord_1.yyyy","name":"Verzending","sku":null,"type":"shipping_fee","status":"created","metadata":{"order_item_id":"311902"},"isCancelable":false,"quantity":1,"quantityShipped":0,"amountShipped":{"value":"0.00","currency":"EUR"},"quantityRefunded":0,"amountRefunded":{"value":"0.00","currency":"EUR"},"quantityCanceled":0,"amountCanceled":{"value":"0.00","currency":"EUR"},"shippableQuantity":0,"refundableQuantity":0,"cancelableQuantity":0,"unitPrice":{"value":"4.95","currency":"EUR"},"vatRate":"21.00","vatAmount":{"value":"0.86","currency":"EUR"},"totalAmount":{"value":"4.95","currency":"EUR"},"createdAt":"2023-11-15T11:32:38+00:00"}],"shopperCountryMustMatchBillingCountry":false,"_links":{"self":{"href":"https:\/\/api.mollie.com\/v2\/orders\/ord_1.yyyy","type":"application\/hal+json"},"dashboard":{"href":"https:\/\/my.mollie.com\/dashboard\/org_4916794\/orders\/ord_1.yyyy","type":"text\/html"},"checkout":{"href":"https:\/\/www.mollie.com\/checkout\/order\/1.yyyy","type":"text\/html"},"documentation":{"href":"https:\/\/docs.mollie.com\/reference\/v2\/orders-api\/create-order","type":"text\/html"}},"_embedded":null,"resource":"order"}
2023-11-15T11:32:38+00:00 DEBUG ideal: Mollie payment object ord_1.yyyy (live) created for order 123456
2023-11-15T11:32:38+00:00 DEBUG For order 123456 redirect user to Mollie Checkout URL: https://www.mollie.com/checkout/order/1.yyyy
2023-11-15T11:33:37+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object ord_1.yyyy (live) webhook call for order 123456.
2023-11-15T11:33:37+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::orderNeedsPayment mollie_wc_gateway_ideal: Order 123456 orderNeedsPayment check: yes, order not previously processed by Mollie gateway.
2023-11-15T11:33:37+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrder::onWebhookPaid called for order 123456
2023-11-15T11:33:38+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrder::onWebhookPaid WooCommerce payment_complete() processed and returned to Mollie\WooCommerce\Payment\MollieOrder::onWebhookPaid for order 123456
2023-11-15T11:33:38+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrder::onWebhookPaid processing paid order via Mollie plugin fully completed for order 123456
2023-11-15T11:33:41+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::getReturnRedirectUrlForOrder 123456: Determine what the redirect URL in WooCommerce should be.
2023-11-15T11:33:41+00:00 DEBUG Mollie\WooCommerce\Payment\PaymentModule::onMollieReturn: Redirect url on return order mollie_wc_gateway_ideal, order 123456: https://www.webshop.com/afrekenen/order-received/123456/?key=wc_order_wwwwwweDZb9EB&utm_nooverride=1
2023-11-15T11:59:28+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T11:59:28+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T11:59:28+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T11:59:28+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T11:59:28+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T11:59:28+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T11:59:30+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T11:59:30+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T11:59:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T11:59:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T11:59:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T11:59:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T12:00:32+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T12:00:32+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T12:00:32+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:00:32+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:00:32+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T12:00:32+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T12:02:34+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T12:02:34+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T12:02:34+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:02:34+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:02:34+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T12:02:34+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T12:06:35+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T12:06:35+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T12:06:35+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:06:35+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:06:35+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T12:06:35+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T12:14:37+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T12:14:37+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T12:14:37+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:14:37+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:14:37+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T12:14:37+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T12:30:39+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T12:30:39+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T12:30:39+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:30:39+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:30:39+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T12:30:39+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T12:59:42+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T12:59:42+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T12:59:42+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:59:42+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T12:59:42+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T12:59:42+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3
2023-11-15T13:19:23+00:00 DEBUG Mollie\WooCommerce\Payment\PaymentModule::shipAndCaptureOrderAtMollie - 123456 - Try to process completed order for a potential capture at Mollie.
2023-11-15T13:19:23+00:00 DEBUG Mollie\WooCommerce\Payment\PaymentModule::shipAndCaptureOrderAtMollie - 123456 - Order successfully updated to shipped at Mollie, capture of funds underway.
2023-11-15T13:19:30+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object ord_1.yyyy (live) webhook call for order 123456.
2023-11-15T13:19:30+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment ord_1.yyyy).
2023-11-15T13:19:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymentord_1.yyyy
2023-11-15T13:19:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymentord_1.yyyy
2023-11-15T13:19:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment ord_1.yyyy
2023-11-15T13:19:30+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment ord_1.yyyy
2023-11-15T13:59:44+00:00 DEBUG mollie_wc_gateway_ideal: Mollie payment object tr_abcabcivd3 (live) webhook call for order 123456.
2023-11-15T13:59:44+00:00 DEBUG Mollie\WooCommerce\Gateway\MolliePaymentGateway::handlePaidOrderWebhook - mollie_wc_gateway_ideal: Order 123456 does not need a payment by Mollie (payment tr_abcabcivd3).
2023-11-15T13:59:44+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds called for order 123456 / paymenttr_abcabcivd3
2023-11-15T13:59:44+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processRefunds: No refunds to process for order 123456 / paymenttr_abcabcivd3
2023-11-15T13:59:44+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks called for order 123456 / payment tr_abcabcivd3
2023-11-15T13:59:44+00:00 DEBUG Mollie\WooCommerce\Payment\MollieOrderService::processChargebacks: No chargebacks to process for order 123456 / payment tr_abcabcivd3

Let me know if you need more examples.

Martje65 commented 10 months ago

We have the same problem sins V 7.4.1

wahidnory commented 9 months ago

Just noticed this error in our error log too. We are on latest version 7.4.1.

I don't have any extra logs because we don't keep mollie logs active.

This is the stack trace log


2023/11/20 11:00:12 [error] 71604#71604: *3438007 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to undefined method Mollie\Api\Resources\Payment::isCompleted() in / message: PHP Fatal error: Uncaught Error: Call to undefined method Mollie\Api\Resources\Payment::isCompleted() in /public/wp-content/plugins/mollie-payments-for-woocommerce/src/Payment/MollieOrderService.php:153
Stack trace:
#0 /www/webshop/public/wp-includes/class-wp-hook.php(310): Mollie\WooCommerce\Payment\MollieOrderService->onWebhookAction('')
#1 /www/webshop/public/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters('', Array)
#2 /www/webshop/public/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#3 /www/webshop/public/wp-content/plugins/woocommerce/includes/class-wc-api.php(161): do_action('woocommerce_api...')
#4 /www/webshop/public/wp-includes/class-wp-hook.php(310): WC_API->handle_api_requests(Object(WP))
#5 /www/webshop/public/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters(NULL, Array)
#6 /www/webshop/public/wp-includes/plugin.php(565): WP_Hook->do_action(Array)
#7 /www/webshop" while reading response header from upstream, client: 34.76.201.228, server: www.webshop.nl, request: "POST /wc-api/mollie_wc_gateway_bancontact?order_id=<omitted>&key=<omitted>&filter_flag HTTP/2.0"
asotela3911 commented 9 months ago

Hello everyone,

Thank you for your patience and for addressing the issue. Please find attached a package containing a fix for the error. Alternatively, downgrading to version 7.4.0 should also be a safe workaround for this error, as the code that triggers it was introduced in version 7.4.1.

mollie-payments-for-woocommerce.zip

jelledruut commented 9 months ago

Same issue here

koalabeer commented 8 months ago

Same issue here. The Undefined method isCompleted() leads to a Internal Server Error 500, which causes Mollie to call the webhook a second time. This causes an incosistent Order status which leads to the Order indicating it is paid for, but in reality there is a chargeback we know nothing about.