-
Notifications
You must be signed in to change notification settings - Fork 982
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
ERROR An error occurred in PaymentSheet.There is a mismatch between the payment method ID on your Intent: pm_XXX and the payment method passed into the confirmHandler
: pm_YYY
#4195
Comments
Hello @Ariandr, sorry you're running into this. How are you "sharing" the payment method? In the integration you linked (https://docs.stripe.com/connect/direct-charges-multiple-accounts), cloning happens after the confirmation succeeds and you shouldn't run into this issue. |
@yuki-stripe
As you see, we finalize the payment manually on the backend side. Using August SDK version it works. In the docs, it also uses a cloned payment method (with a new unique id) to create and confirm the payment intent, so if the next action is required on iOS/Android, the app will have to go through 3DSecure after intentCreationCallback(.success(clientSecret)), since we are using manual confirmation and it cannot be confirmed before. |
Side note.
Wherever I use this workaround instead:
Just a suggestion from me, it's not directly related to the issue, just that you can understand the use case🙂 |
Hi @yuki-stripe Because otherwise new versions of SDK become unusable for us :( |
@yuki-stripe |
## Summary <!-- Simple summary of what was changed. --> Added fingerprint checking logic in deferred validation for card and us_bank_account if PM ids don't match ## Motivation <!-- Why are you making this change? If it's for fixing a bug, if possible, please include a code snippet or example project that demonstrates the issue. --> #4195 https://jira.corp.stripe.com/browse/RUN_MOBILESDK-3670 ## Testing <!-- How was the code tested? Be as specific as possible. --> Unit tests with different pm ids but matching or mismatching fingerprints for card and bank account ## Changelog <!-- Is this a notable change that affects users? If so, add a line to `CHANGELOG.md` and prefix the line with one of the following: - [Added] for new features. - [Changed] for changes in existing functionality. - [Deprecated] for soon-to-be removed features. - [Removed] for now removed features. - [Fixed] for any bug fixes. - [Security] in case of vulnerabilities. -->
Summary
We are migrating from Basic Integration to new Payment Sheet, using iOS and backend with payment intents. We use Stripe connect where we save the payment methods on the main platform account and then share these payment methods to make the Direct payments to Connected accounts.
With the Basic Integration (and with the PaymentSheet August version of SDK) it worked perfectly for us, but with the new Payment Sheet releases (after #3972) there is an issue that we cannot confirm it on the iOS side later due to a problem that the initial payment method doesn't match the one inside the payment intent.
https://docs.stripe.com/connect/direct-charges-multiple-accounts
iOS version
iOS 18, but not related to iOS version
Installation method
Cocoapods
SDK version
23.32
Other information
Essentially, our flow it this:
ERROR An error occurred in PaymentSheet.There is a mismatch between the payment method ID on your Intent: pm_XXX and the payment method passed into the
confirmHandler: pm_YYY
With Basic Integration and older PaymentSheet versions this action is handled without issues and we confirm the payment with 3DSecure.
But with the new PaymentSheet releases this got broken.
I saw you added this check in this pull request, but it breaks our use case unfortunately.
#3972
It works with the older (August) version of SDK, e.g. 23.29.2. Can we add a way (maybe additional configuration option) to omit this check, so our use case is not broken?
The text was updated successfully, but these errors were encountered: