202-ecommerce / stripe_official

After years of hard work with Stripe connector for PrestaShop, 202 ecommerce stop the development of Stripe module on January 9th 2023. Thanks for all contributors that help us!
20 stars 20 forks source link

Upon entering card details, error occurs for some customers #120

Closed githubjonny closed 2 years ago

githubjonny commented 2 years ago

PS 1.7.8.3

For all UK orders, everything seems to be working fine. However for some non UK orders, we are seeing the below error:

"This PaymentIntent’s payment_method_types could not be updated because it has a status of requires_capture. You may only update the payment_method_types of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation, requires_action."

clotairer commented 2 years ago

Hi thank you for your report.

Is it the same bug than #118 ?

githubjonny commented 2 years ago

Not sure (error is different but may be related), the payment occurs when paying via a card.

githubjonny commented 2 years ago

Looking in stripe we can see a 400 ERR "A request to update a paymentIntent XXXXXXXXXXXXXXX failed" with the code in the response of: "code": "payment_intent_unexpected_state", "doc_url": "https://stripe.com/docs/error-codes/payment-intent-unexpected-state", "message": "This PaymentIntent's payment_method_types could not be updated because it has a status of requires_capture. You may only update the payment_method_types of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation, requires_action.",

clotairer commented 2 years ago

Do you use option Authorize and Catch ? You use 2.4.2 version of the module ?

I think we probably need more information to reproduce the bug. Could you please contact our support https://addons.prestashop.com/en/contact-us?id_product=24922 and indicate that @clotairer sent you to the support and that you need level 2 support for this issue #120

Thank you.

githubjonny commented 2 years ago

All settings in the module are default with the exception : "Display an extended version of the form with card logos instead of the compact version. Choose the logos to display below based on the brands accepted by your Stripe account." is ticked.

No action is usually required by us to complete the payment (e.g. should be auto Authorized) and other payments since (all UK) have gone through fine.

Module V 2.4.2

talking to stripe now to see if they can shed any light.

Have already replied to an old ticket with prestashop (Thread #725025) but will add your details to end.

githubjonny commented 2 years ago

From Stripe:

My team could determine that: it seems that the country was not the issue.

On the first attempt, customer's card was declined. Then the card was changed and that was confirmed successfully. But then instead of finishing the checkout and capturing the funds, the customer was left on the checkout page. I would suggest that you contact Prestashop plugin for further assistance.

ecenturyuk commented 2 years ago

Yes a client has reported same bug after upgrade to 2.4.2

I think it could be related to using Android and details filled in with GPay

Please see attached screenshot

screenshot_2

githubjonny commented 2 years ago

Our customer was using a windows device and not Gpay. Do you know if your clients customer had a failed transaction first?

ecenturyuk commented 2 years ago

ok thanks for that

Yes there was a failed payment initially so that could be it

And then a lot of this error

Error message "message": "This PaymentIntent's payment_method_types could not be updated because it has a status of requires_capture. You may only update the payment_method_types of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation, requires_action." "type": "invalid_request_error"

githubjonny commented 2 years ago

Same here. 1 failed payment then 6 of :

"message": "This PaymentIntent's payment_method_types could not be updated because it has a status of requires_capture. You may only update the payment_method_types of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation, requires_action." "type": "invalid_request_error"

clotairer commented 2 years ago

Thank you for these elements. We will try to reproduce. @githubjonny we received your message. Keep in touch.

clotairer commented 2 years ago

Hi @githubjonny We make some tests, it looks like the pull request #119 fixed this issue. But we found an other better solution to accept succeded payement after a first failed attempt. Thank you

jgriff321 commented 2 years ago

Hi we also have this issue and appreciate the fix is in progress. To elaborate on the issue, it occurs when a customer enters wrong payment details and get an error message saying wrong details please try again. If they then re-enter correct details they then get the error message "This PaymentIntent's payment_method_types could not be updated because it has a status of requires_capture. You may only update the payment_method_types of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation, requires_action.", the payment is authorised but left uncaptured in Stripe, no order is created on the back office and cart is abandoned.

This occurs if they enter wrong CVC, then try to update it, wrong card number, wrong expiry. They then can't place any order using this cart at all and have to delete cart and start again then use different payment method.

Can we use the changes in pull request now to fix the issue before the new module update is released?

clotairer commented 2 years ago

Hi @jgriff321 I confirm your description correspond exactly to our constatation. So you can try to patch your module with this PR. However, we didn’t make QA validation and all test to be perfectly sure there isn’t regression. If you decide to apply this PR on your environment, we will be glad to collect your feedback.

thank you

githubjonny commented 2 years ago

Can you please confirm the changes needed to fix this issue as we are still seeing this issue occur

githubjonny commented 2 years ago

is it just the 1 line change on https://github.com/202-ecommerce/stripe_official/pull/119/commits/af5e1d3376936a03abb7cca46a524a4fd7a02726 ?

clotairer commented 2 years ago

Hi, This issue is linked to this PR: https://github.com/202-ecommerce/stripe_official/pull/124/files

Thanks

githubjonny commented 2 years ago

Hello @clotairer Do you know when the module will be updated? Also is the change on https://github.com/202-ecommerce/stripe_official/commit/af5e1d3376936a03abb7cca46a524a4fd7a02726 a tempoary fix whilst the changes on https://github.com/202-ecommerce/stripe_official/pull/124/files are hopefully the permenant fix?

clotairer commented 2 years ago

The PR https://github.com/202-ecommerce/stripe_official/commit/af5e1d3376936a03abb7cca46a524a4fd7a02726 was proposed by the community but doesn't fix all cases. The next release is not schedule for now. If you contact our support we will supply a fix before the next release. Just indicate the issue 120 on Github.

clotairer commented 2 years ago

Hi,

You can download the (pre)release 2.4.3 or wait the availability on PrestaShop Addons.

Thank you.