mollie / magento2

Mollie Payments for Magento 2
https://www.mollie.com
Other
98 stars 50 forks source link

Admin Payment Link Expiring Too Soon #718

Closed jorgb90 closed 5 months ago

jorgb90 commented 7 months ago

Describe the bug When creating an order in the admin using a Payment Link as payment the link is successfully created but doesn't adhere the Days to expire. It expires almost directly instead of the set 5 days (for us) or default 28 days.

Used versions

To Reproduce Steps to reproduce the behavior:

  1. Go to admin
  2. Create admin order
  3. Use Mollie Payment Link as payment option
  4. Wait until Mollie decides to expire it

Expected behavior Adhere days set

Actual behavior Few hours

Frank-Magmodules commented 7 months ago

Hello @jorgb90, thanks once again for raising this issue! I'm delighted to inform you that we've just released a new version, addressing the problem you described. Should you have any additional questions or comments regarding this issue, please feel free to respond within the issue thread.

mikemoooo commented 7 months ago

Hi @Frank-Magmodules , I've updated the module and cannot create payment links anymore. Receiving the error below. Could you please look into this?

Order saving error: Warning: count(): Parameter must be an array or an object that implements Countable in .../vendor/mollie/magento2/Service/Order/MethodCode.php on line 37

Thanks a lot!

Frank-Magmodules commented 7 months ago

Hi There @mikemoooo ,

We investigated the error you're experiencing and found that it occurs when no payment methods are selected in the multiple-select field designed to limit method options. To temporarily resolve the issue, please do select some payment methods to proceed or apply this patch file. Surely, we will include this fix in our upcoming release!

mikemoooo commented 7 months ago

Hey @Frank-Magmodules , Thanks for looking into this. I cannot open the patch file, but selecting the methods currently works for us. We'll keep an eye out for the next release!

Frank-Magmodules commented 7 months ago

Hello @mikemoooo, you're correct. It was initially in our private repository, but I've now made it publicly available. Thanks for bringing it to my attention. I'll keep this issue open until the release is complete. Have a great day!

Swahjak commented 7 months ago

I'm sure there is no intent here, but could we please stop breaking stuff, expand on testing capabilities or use proper semantic versioning. I get the feeling that every time I update one of our most essential modules, something breaks.

Edit: Btw props for adding a regression test on this issue.

Frank-Magmodules commented 7 months ago

Hello @Swahjak , we've introduced several nice features and enhancements recently. However, we acknowledge that certain changes have had some adverse effects. We take this matter seriously and are actively enhancing our manual testing processes while also working to add more scenarios to our automated tests. I will reach out to you directly for a conversation about this and to gather your opinion on how we can enhance semantic versioning from your perspective.

simonmaass commented 7 months ago

Today we deployed the new version and are experiencing the exact same issue... this is quite bad for us!

Frank-Magmodules commented 7 months ago

Hey @simonmaass , are you referring to this particular issue? If so, feel free to check out the solution above, and if you require further help, you know where to reach me. Thanks!

simonmaass commented 7 months ago

yeah i just saw the patch... would be great if you would add the patch file more visible? maybe in the release notes https://github.com/mollie/magento2/releases/tag/v2.32.4

mikemoooo commented 7 months ago

Hi @Frank-Magmodules

I've applied the patch, so there is no more error creating the payment link. However, I've created a payment link for an order yesterday and it's already expired. The expiration time is set to 28 days in the config.

From the mollie dashboard it shows that the order was cancelled and then the webhook was called to update the order in Magento:

History

Can you check what this is related to?

Cheers, Mike

jorgb90 commented 7 months ago

Same issue here. Its still not working correctly.

Frank-Magmodules commented 7 months ago

Hello all,

Thank you all for your patience. We are currently under a release freeze as it’s the busiest time of the year for most webshops. This release stop is here for the rest of the month, thank you for understanding that.

For this payment link issue. There are a few scenarios at play here:

  1. Creating a payment link order with a single payment method selected.
  2. Creating a payment link order with multiple methods selected (or none, or all).

Both these scenarios have also the option to set a manual expiry date on the order. In our latest release (v2.32.4), we release a fix for scenario one. Upon investigation, it looks like the problem still exists when a payment link order is placed with multiple methods selected. Could you please confirm this @mikemoooo and/or @jorgb90 ?

~We already tackled this problem. You can find the patch for this here. For reference, the previous patch can be found here. That one was to fix the Parameter must be an array or an object error.~

mikemoooo commented 6 months ago

Hi @Frank-Magmodules , I've applied the second patch you shared yesterday (this). Unfortunately, all payment links have already expired. I did 3 tests: only iDeal, all methods selected, no methods selected. Mollie dashboard shows the order cancellation and webhook call like I mentioned in the previous post. So not working, yet.

Frank-Magmodules commented 6 months ago

HI @mikemoooo , It seems you are right. The expiresAt date is now being sent correctly to Mollie, but it turns out that for some payment methods, this time is not honored. This does make sense for some types of payments, i.e. iDeal, but from the payment link context, this is way too soon. We are going back to the drawing board to see if we can fix this issue once and for all.

mikemoooo commented 6 months ago

Hi @Frank-Magmodules, any news on this? We are still experiencing the issues

dragonfly4 commented 6 months ago

We also have issues so looking forward for an update.

Frank-Magmodules commented 5 months ago

Hi There @mikemoooo and @dragonfly4 , I appreciate your patience as you await the release. I'm pleased to inform you that we will be releasing an update, including the awaited feature/fix, no later than upcoming Wednesday. Thank you for your understanding.

UPDATE 10-01-2023 - 22:03 : Unfortunately, today's release has been postponed due to the identification of some (valid) failing tests that require debugging and fixing. We apologize for the delay in this matter.

Also, please be aware that in this release, we have resolved issues related to the required issuer selection and/or empty values. However, it's important to note that the scenario involving the expiration of the payment link is not yet addressed in this version. Rest assured, we are actively working on a new payment-link creation process scheduled for the release following this one (in the coming weeks). In this new approach, we will generate the payment the moment when the payment link is utilized, instead of creating it upfront. This flow is designed to tackle the challenge where the order itself doesn't expire at Mollie, but the connected payment does as it is now. Our new approach dynamically creates the payment on the fly, effectively addressing the expiration issue.

Frank-Magmodules commented 5 months ago

Hi @mikemoooo and @dragonfly4 , finally we have released the new 2.33.0 version with a solution to this issue, let me explain a bit about what we have developed/changed within the payment-link process.

The situation before was that, when the admin created an order, we placed an order or payment in Mollie's systems. The Orders within Mollie have a Payment attached, but that payment expired within 15 minutes after creation, causing issues with orders that were canceled too soon.

We now have changed this behavior. Now, when the admin created the payment link order, nothing happened on Mollie's side. The link in the email now points to a controller within the webshop. We are only creating the transaction in the Mollie system the moment the customer clicks on the link in the email. This way, the transaction can’t expire before the customer clicks the link.

The new version can be found here, and will probably cover all your needs. I'm closing this issue now, but please don't hesitate to reopen the issue if necessary.

simonmaass commented 5 months ago

@Frank-Magmodules just to clarify... Your comment "The link in the email now points to a controller within the webshop. " -How does this affect customers that use magento as backend and have a custom PWA webshop?

Frank-Magmodules commented 5 months ago

Created an issue for that @simonmaass https://github.com/mollie/magento2/issues/732! Thanks for bringing this in.

mikemoooo commented 4 months ago

@Frank-Magmodules The issue seems to be resolved for us. Thanks for the updates!