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

[ECP-9352] Implement onError handler on Amazon Pay component #2768

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

candemiralp
Copy link
Member

@candemiralp candemiralp commented Oct 8, 2024

Description

If an Amazon Pay payment is declined on Amazon Pay hosted page and Amazon Pay payment component can't handle the decline flow, there is no way to proceed further on the checkout. Besides this issue, payment cancellation on Amazon Pay hosted page triggers a payment attempt on the plugin since the return URL contains amazonCheckoutSessionId, which always fails.

This PR introduces a fix to these two issues.

As a solution to the first issue related to decline flow handling, we've implemented onError callback to handle cases where handledDeclineFlow() function returns an error. In this case, plugin removes amazonCheckoutSessionId parameter from the query parameters of the URL and remounts the Amazon Pay payment component. This allows shoppers to pay with Amazon Pay again. On the other hand, if decline flow is available for the given Amazon Pay session, the shopper will be redirected to Amazon Pay hosted payment page to update the payment method.

To tackle the second issue related to payment cancellation on hosted payment page, cancelUrl parameter has been added. Now, shoppers are being redirected to the cart page instead of checkout if the payment is cancelled.

Tested scenarios

  • Happy flow payments
  • Payment cancellation
  • Declined payment followed by a successful authorisation

Copy link

sonarcloud bot commented Oct 15, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant