#MDTOHM
1 messages · Page 1 of 1 (latest)
Hi there, can you share with me a screenshot or video so that I can see the exact issue?
Yes, one second
Desktop
Working as expected
Mobile - No way to close
We added a method ("Back to PayGiv") for the user to close the window in case they get stuck but .... as you can see their is no DONE button
I see, are you about to scroll this page?
No, the frame seeminlgly doesnt allow this
But yes we thought about that
as...even if you could...how would a user know to scroll to see the DONE button
Got it! Thanks a lot for your feedback, I'll report this to the owning team.
Is there any thing you can think of that we can do to manipulate this popup (auto scroll down....for example)
As we're looking to push this LIVE ASAP, and obviously this is an issue
The Mobile SDK (https://github.com/stripe/stripe-android) has native support for financial connection integration, but it requires quite amount of development
Btw, have you tried opening this page in Mobile Safari browser instead of a embedded webview?
Yes, issue is that Stripe works but once you POPUP again to say Chase Bank...you're two too many away from getting back
As now its a popup within a popup, so embedded webview at least they're still on the APP
what webview are you using? I'm collecting the details so that I can try to reproduce
and doesn't the problem happen in Android as well?
TBH - haven't done a lot of Android testing yet besides initial setup.
We have two test models: 1) an iOS App running our Web APP as an Embedded Webview, and 2) mobile browser on an iPhone (Chrome and Safari)
Both test models have a nearly identical workflow with the Stripe flow/Financial Connections
And the DONE button is not displayed in both flows?
neither, correct
and some it just has redirecting note at the top (never the success)
OK but your customer can still click on the Back to PayGiv to go back right? It's just that some customers may miss this and get stuck.
Yes but thats just a MODAL close
And without clicking DONE it doesnt initiate the payment intent process
This basically
stripe.confirmUsBankAccountSetup(result.financial_connection_response.client_secret)
.then(({setupIntent, error}) => {
As we obviously have to wait on our end for this to kick off...to capture the account so we can use it on our end
Is there a way for STRIPE to store that account automatically (even if they never click DONE) ?
Let me check something, one sec
Not to bombard you, but when in TEST mode with the test accounts....the flow is different
Desktop as well ... not that this solves anything but it does make truly TESTING this difficult
If you are using webhook, you should receive a financial_connections.account.created event (https://stripe.com/docs/api/events/types#event_types-financial_connections.account.created) when the confirmation page is displayed
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
so that your backend can listen to this event to get notified when you customer has created a financial connection
I thought about this as well ... but at that step.... the .account.created isn't triggered yet
Until you click DONE this doesnt occur
Can you send me a request ID so that i can talk a look?
Can you elaborate on what Request ID you're refferring to. ?
Every time your application make an API call, there's request ID associated with it. Here's how you can find it: https://support.stripe.com/questions/finding-the-id-for-an-api-request
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
Ok, one second
"seti_1LzX74B0CasBeoGbK8N5dUkm"
This is for: financial_connection_response
On a mobile device, I cant get you the console ID though...the above is from a Desktop Chrome browser
The rest of the Steps on Stripe on mobile, fit perfectly (100% height), see attached
Final step you'll see its even a different VIEW then it was on Desktop (different information entirely)
OK, so the setupIntent was succeeded, and a PaymentMethod was created already. you are able to use this payment method to charge the customer.
Well thats what I'm saying ... setupIntent did not succeed / payment Method was not created
Stripe until you click DONE does not do this
You also need to CONFIRM this to get it to STORE
stripe.confirmUsBankAccountSetup(result.financial_connection_response.client_secret)
Until you complete this "CONFIRM" process, nothing is completed ....its in limbo essentially
Its not Saved for the Customer Object within Stripe, and its not completed on the clients side
Do you mind to try again? continue all steps except clicking the last Done button. Also send me the SetupIntent ID so that I can watch from my end
Well I cant send it from a mobile device
but I can do it on a Deskto and just NOT click done
id
:
"seti_1LzXK3B0CasBeoGbsJ7JKxCh"
BTW - customer
:
"cus_MfnuNFHPZceBLo"
Ok...I'm at the DONE page....let me know if you see anything
The status of the setupIntent is still requires_payment_method.
OK, can I confirm the steps to reproduce?
- Create a SetupIntent from backend
- Call stripe.confirmUsBankAccountSetup()
- Don't click the
DONEbutton on the last page - Check if the SetupIntent status is still
requires_payment_method
Well...
When you click DONE
it kicks off this function: collectBankAccountForSetup
But yes....the status NEEDS to be: requires_confirmation
Once the status is that ... we can trigger "confirmUsBankAccountSetup" (normally via a USERs interaction)
Here is your documentaiton for this: ttps://stripe.com/docs/payments/ach-debit/set-up-payment?platform=web#web-collect-details*/
OK, so you are using collectBankAccountForSetup in step 2?
Yes
Let me step back a bit, so you are still at the collectBankAccountForSetup step right, the reason you can't proceed to confirmUsBankAccountSetup is because you don't get a callback from collectBankAccountForSetup because the confirmation page can't be dismissed?
SO...we've kicked off collectBankAccountForSetup ... but it has not responded yet until we click DONE
here is the call we use for example
stripe.collectBankAccountForSetup({
clientSecret: result.financial_connection_response.client_secret,
params: {
payment_method_type: 'us_bank_account',
payment_method_data: {
billing_details: {
name: customerName,
email: result.customer.email
},
},
},
expand: ['payment_method'],
})
.then(({setupIntent, error}) => {
the "THEN" isn't triggered until we click DONE
it responds with "setupIntent"
Got it, this is a very useful information.
We have this
.then(({setupIntent, error}) => {
if (error) {
//console.error(error.message);
$('#popup-financial-error').modal('show');
$('#popup-error-msg').text(error.message);
// PaymentMethod collection failed for some reason.
} else if (setupIntent.status === 'requires_payment_method') {
// Customer canceled the hosted verification modal. Present them with other
// payment method type options.
} else if (setupIntent.status === 'requires_confirmation') {
// We collected an account - possibly instantly verified, but possibly
// manually-entered. Display payment method details and mandate text
// to the customer and confirm the intent once they accept
// the mandate.
console.log('setupIntent',setupIntent);
console.log('paymentMethod',setupIntent.payment_method);
var financial_connections_account=setupIntent.payment_method.us_bank_account.financial_connections_account;
var last4=setupIntent.payment_method.us_bank_account.last4;
var bank_name=setupIntent.payment_method.us_bank_account.bank_name;
/*New Flow Notes - Show the popup but automatically start the Confirmation
Note: The popup confirm will just "close" the Popup
*/
stripe.confirmUsBankAccountSetup(result.financial_connection_response.client_secret)
So once you click DONE .... we check what STATUS was responded with
if the correct one (which is "requires_confirmation") we can continue to CONFIRM this
for now I've added the "confirmUsBankAccountSetup()" within this operand
stripe.confirmUsBankAccountSetup(result.financial_connection_response.client_secret)
.then(({setupIntent, error}) => {
if (error) {
$('#popup-confirmation').hide();
$('#popup-financial-error').modal('show');
$('#popup-error-msg').text(error.message);
// The payment failed for some reason.
} else if (setupIntent.status === "requires_payment_method") {
// Confirmation failed. Attempt again with a different payment method.
$('#popup-financial-error').modal('show');
$('#popup-error-msg').text("Confirmation failed");
} else if (setupIntent.status === "succeeded") {
var paymentMethod=setupIntent.payment_method;
var stripe_financial_store = "{{url('stripe_financial_connection')}}";
$.ajax({
url: stripe_financial_store,
method: "POST",
data: {
"financial_id": financial_connections_account,
"last_four_digits": last4,
"bank_name": bank_name
},
success: function(result) {
console.log(result);
if(result.message == 'stripe_financial_connection') {
$('#popup-confirmation').modal('show');
}else if(result.message=='card_already_exist'){
$('#popup-financial-error').modal('show');
$('#popup-error-msg').text("Account Already Exist");
}
}
Thanks for all the details. The problem here is that stripe.collectBankAccountForSetup doesn't completes successfully and that's why the SetupIntent's status is not moved to requires_confirmation.
You mention that the behaviour is different between test and live mode. Do you see the DONE button in test mode? or this problem can only be reproduced in live mode.
Only in live, yes. the Done button shows in Test Mode
as the flow pages are different UX's entirely
As we agreed, likely just need to SCROLL down to see it
but also as you saw from my screens....on DESKTOP vs MOBILE the Financial Connection Flow has different views for each step as well
The final confirming of your accounts even....shows different information
Desktop
Mobile
Besides the DONE not being visible..the whole page is different
Is there anything I can do.... to move forward on this on my end...anything I can test or work to modify ?
I can't think of a solution at this moment, and I shall report this to the owning team immediately. If you want to follow up with the progress, please drop an message to Stripe support https://support.stripe.com/contact and tell them you have talked to the engineers in discord and they will help you to get updates and follow up accordingly.
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
Is there a certain ID I should reference ?
You can tell them my name (Jack), and also share with them the SetupIntent IDs
Support asked for a Case ID
You can ask them to create a new case.
Ok
If you get a case ID, share with me so that I can also put some notes there.
They never submitted a case, they kept asking me the same question and then they closed the chat