Bancontact payment error
-
On my live WooCommerce store selling data only eSIMs, a customer paid with Bancontact (via the ING banking app). Stripe captured the payment successfully, the money arrived and showed on the card statement with no hold.
However, WooCommerce never marked the order as paid. The order stayed on Pending payment until I manually changed it to Completed.
After payment, Stripe tried to notify my site (webhook) and/or redirect the customer back. Both failed with a 500 internal server error.
The error was a PHP fatal in the WooCommerce Stripe plugin:
WC_Payment_Token_SEPA::set_fingerprint(): Argument #1 ($fingerprint) must be of type string, null given
The stack trace shows this happened while handling a successful Bancontact checkout session, specifically in
handle_saving_payment_methodwhen the plugin tried to save the Bancontact payment as a SEPA token.Important context
- Test card payments (<code class=””>4242…) worked fine.
- My first live payment used Bancontact and failed on this path.
- A second live Visa payment (with itsme 3DS verification) worked end-to-end — order completed and eSIM provisioning ran automatically.
- All plugins and WooCommerce were up to date at the time. They still are.
What should happen:
After a successful Bancontact payment, the customer should be redirected back to the site, the webhook should return 200, and the order should move to Processing/Completed automatically.
What actually happened:
Payment succeeded at Stripe, but the plugin crashed while saving the payment method. The customer was not redirected back, the webhook returned 500 and the order stayed pending.
The page I need help with: [log in to see the link]
You must be logged in to reply to this topic.