#MDTOHM

1 messages · Page 1 of 1 (latest)

hasty kilnBOT
prisma grove
#

Hi there, can you share with me a screenshot or video so that I can see the exact issue?

valid trail
#

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

prisma grove
#

I see, are you about to scroll this page?

valid trail
#

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

prisma grove
#

Got it! Thanks a lot for your feedback, I'll report this to the owning team.

valid trail
#

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

prisma grove
#

Btw, have you tried opening this page in Mobile Safari browser instead of a embedded webview?

valid trail
#

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

prisma grove
#

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?

valid trail
#

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

prisma grove
#

And the DONE button is not displayed in both flows?

valid trail
#

neither, correct

#

and some it just has redirecting note at the top (never the success)

prisma grove
#

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.

valid trail
#

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) ?

prisma grove
#

Let me check something, one sec

valid trail
#

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

prisma grove
#

so that your backend can listen to this event to get notified when you customer has created a financial connection

valid trail
#

I thought about this as well ... but at that step.... the .account.created isn't triggered yet

#

Until you click DONE this doesnt occur

prisma grove
#

Can you send me a request ID so that i can talk a look?

valid trail
#

Can you elaborate on what Request ID you're refferring to. ?

prisma grove
valid trail
#

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)

prisma grove
#

OK, so the setupIntent was succeeded, and a PaymentMethod was created already. you are able to use this payment method to charge the customer.

valid trail
#

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

prisma grove
#

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

valid trail
#

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

prisma grove
#

The status of the setupIntent is still requires_payment_method.

valid trail
#

right

#

until I click DONE its not going to send that information

prisma grove
#

OK, can I confirm the steps to reproduce?

  1. Create a SetupIntent from backend
  2. Call stripe.confirmUsBankAccountSetup()
  3. Don't click the DONE button on the last page
  4. Check if the SetupIntent status is still requires_payment_method
valid trail
#

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*/

prisma grove
#

OK, so you are using collectBankAccountForSetup in step 2?

valid trail
#

Yes

prisma grove
#

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?

valid trail
#

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"

prisma grove
#

Got it, this is a very useful information.

valid trail
#

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");
                  }
                }
prisma grove
#

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.

valid trail
#

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 ?

prisma grove
#

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.

valid trail
#

Is there a certain ID I should reference ?

prisma grove
#

You can tell them my name (Jack), and also share with them the SetupIntent IDs

valid trail
#

Support asked for a Case ID

prisma grove
#

You can ask them to create a new case.

valid trail
#

Ok

prisma grove
#

If you get a case ID, share with me so that I can also put some notes there.

valid trail
#

ok yeah was going to ask

#

Waiting for their response

valid trail
#

They never submitted a case, they kept asking me the same question and then they closed the chat