Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mollie doesn't call webhook #2941

Closed
martijnvdbrug opened this issue Jul 10, 2024 · 4 comments · Fixed by #3014
Closed

Mollie doesn't call webhook #2941

martijnvdbrug opened this issue Jul 10, 2024 · 4 comments · Fixed by #3014
Assignees
Labels
P1: urgent Critical issue which affects majority of users, type: bug 🐛 Something isn't working

Comments

@martijnvdbrug
Copy link
Collaborator

martijnvdbrug commented Jul 10, 2024

⚠️ Use "@vendure/payments-plugin": "2.1.8", until this is issue is closed!

Describe the bug
After upgrading the Payments Plugin to v2.2.7, we are experiencing issues where Mollie doesn't call the Vendure webhook anymore. This only happens for orders that have their corresponding Mollie orders updated (see below for details).

To Reproduce
Steps to reproduce the behavior:

  1. Add items to order (doesn't matter what)
  2. Call the createMolliePaymentIntent mutation, and follow the link to the Mollie hosted checkout page
  3. Go back (don't pay) form the Mollie hosted checkout page
  4. Add some more items to your order in Vendure
  5. Create another Mollie intent and go to the Mollie Checkout again. This updates the Mollie Order using the Manage Order Lines endpoint in a single request
  6. Mark the order as 'Paid' on the hosted checkout
  7. You will now see an error screen, and Mollie did not call your webhook, while the actual transaction is processed.

image

Workaround

Install payments-plugin 2.1.8

Suspected cause

  • This feature (Updating/reusing Mollie Orders) was implemented and tested against the Mollie platform in March 2024
  • We also tested this feature (which was included in Vendure 2.2.7) on our testing environment Juni 26
  • After going live to production (July 7) we noticed the error above
  • ** July 1st iDeal 2.0 was released** We suspect the combination of the update-mollie-order-feature and the release of iDeal 2.0 is causing this behaviour

Expected behavior
I would expect the payment to settled, and Mollie to call the webhook.

Environment (please complete the following information):

  • @vendure/core version:2.2.7
  • Nodejs version 18
  • Database (mysql/postgres etc): MySQL
@martijnvdbrug martijnvdbrug added type: bug 🐛 Something isn't working P1: urgent Critical issue which affects majority of users, labels Jul 10, 2024
@martijnvdbrug martijnvdbrug self-assigned this Jul 10, 2024
@martijnvdbrug
Copy link
Collaborator Author

Response from Mollie support

Dear Martijn,

Thank you for your message.

It seems that every time the 'billingAddress' is changed after the order is created, the webhook is not being called. Because in other iDeal transactions, the webhook is being called.

We will forward this issue including the GitHub link to our colleagues from the technical department for further investigation.

If you have any other questions, please feel free to reach out.

Kind regards,
XXXXXXX
U kunt naar dit ticket verwijzen met Ticket ID 2068689.

@martijnvdbrug
Copy link
Collaborator Author

martijnvdbrug commented Jul 17, 2024

No definitive answer yet. I will wait for one more week for an answer from Mollie support, and otherwise I will start looking at alternative implementations.

Preferably Mollie comes with an answer, as this does seem to be a bug on their side.

@martijnvdbrug
Copy link
Collaborator Author

Update:

Mollie asked for a minimal reproduction, I've created one here and sent it to them: https://gist.github.com/martijnvdbrug/361a3048ce0f26ec4c428cf717889651

@martijnvdbrug
Copy link
Collaborator Author

So, after having some talks with Mollie staff members on Discord, it seems we should go this route:

  • Create new Mollie Orders on every checkout URL
  • We log an error when a webhook comes in for an order that is already fully paid and has a different transactionID

Mollie staff member Joost verified that Shopify also handles payments in the same manner, so this should also be sufficient for us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1: urgent Critical issue which affects majority of users, type: bug 🐛 Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant