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

Webview based 3DSecure authentication always fails #1295

Closed
Drusy opened this issue Aug 13, 2019 · 6 comments
Closed

Webview based 3DSecure authentication always fails #1295

Drusy opened this issue Aug 13, 2019 · 6 comments
Assignees
Labels
fixed in master Fixed in master, awaiting next update triaged Issue has been reviewed by Stripe and is being tracked internally

Comments

@Drusy
Copy link

Drusy commented Aug 13, 2019

Summary

Unexpected behavior

3D Secure authentication always fails in test mode even if "Complete Authentication" is pushed.
Return URL is configured, Stripe.handleURLCallback(with: url) is called and returns true

Error thrown is

Error Domain=STPPaymentHandlerErrorDomain Code=5 "We are unable to authenticate your payment method. Please choose a different payment method and try again." UserInfo={NSLocalizedDescription=We are unable to authenticate your payment method. Please choose a different payment method and try again.}

Expected behavior

The error should have STPErrorMessageKey, STPStripeErrorTypeKey with insufficient_funds

Test card used

4000 0082 6000 3178

This card requires authentication for one-time payments. All payments will be declined with an insufficient_funds failure code even after being successfully authenticated or previously set up.

iOS version

iOS 12.4 | iOS 12.3.1

Installation method

Carthage

SDK version

github "stripe/stripe-ios" "v16.0.4"

@Drusy Drusy changed the title We Webview based 3DSecure authentication always fails Aug 13, 2019
@Drusy
Copy link
Author

Drusy commented Aug 13, 2019

To complete the issue, all the other native authentication screens works like a charm

  • 4000 0000 0000 3220 (Out of Band)
  • 4000 0000 0000 3238 (One Time Passcode)
  • 4000 0000 0000 3246 (Single Select)
  • 4000 0000 0000 3253 (Multi Select)

Only the webview based authentication screen seem to have an unexpected behavior.

@yuki-stripe
Copy link
Collaborator

Thanks for the report @Drusy, we are fixing this right now in #1291

@yuki-stripe yuki-stripe self-assigned this Aug 19, 2019
@yuki-stripe yuki-stripe added triaged Issue has been reviewed by Stripe and is being tracked internally fixed in master Fixed in master, awaiting next update labels Aug 19, 2019
@Drusy
Copy link
Author

Drusy commented Aug 26, 2019

@yuki-stripe, the pull request added the error in lastPaymentError but the codes returned by the card 4000 0082 6000 3178 does not comply with the documentation.

I have:
type: STPPaymentIntentLastPaymentErrorType.card = "card_error" -> OK
code: "card_declined" -> OK
declineCode: nil -> NOT OK, should be insufficient_funds and I think should never be nil in case of card_declined

The documentation of the card 4000 0082 6000 3178 says we should expect a insufficient_funds decline code.

This card requires authentication for one-time payments. All payments will be declined with an insufficient_funds failure code even after being successfully authenticated or previously set up.

Am I missing something or should I create a new issue ?

@yuki-stripe
Copy link
Collaborator

@Drusy Thanks for spotting this. Fixing in #1319

@Pal-illuminz
Copy link

Pal-illuminz commented Sep 16, 2021

Simulator Screen Shot - iPhone 6 - 2021-09-16 at 10 10 49

User not auto redirect to the app after failed or confirmation with the specific card.

@dhaval-dobariya
Copy link

@Pal-illuminz I am also seeing this screen, any solution for this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed in master Fixed in master, awaiting next update triaged Issue has been reviewed by Stripe and is being tracked internally
Projects
None yet
Development

No branches or pull requests

4 participants