#felipe_code

1 messages ยท Page 1 of 1 (latest)

tiny latchBOT
gilded pilotBOT
#

Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.

tiny latchBOT
#

๐Ÿ‘‹ Welcome to your new thread!

โฒ๏ธ We'll be here soon! We typically respond in a few minutes, but in some cases we might need a bit more time (e.g., server's busy, you've got a complex question, etc.).

โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can start a new thread if you have another question.

๐Ÿ”— This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1257411370886889533

๐Ÿ“ Have more to share? Add details, code, screenshots, videos, etc. below.

proven condor
#

Can you tell me more about where you are trying to call createPaymentMethod and why? Looking for how to do this with our Android SDK now, but depending on the context there may be an easier way to do this

simple thunder
#

Sure

#

We are implementing SCA and our app is used by merchants, not final consumers. Therefore, challenges can't be sent directly to the app, as it is in the merchants' hands. The BE team devised a method to have the merchant input the user's email or phone number to receive the challenge. However, I'm unable to implement this flow because the payment sheet only receives challenges in the current app, and I can't bypass this. So, Stripe's support suggested this new flow: https://docs.stripe.com/payments/accept-a-payment?platform=android#android-flowcontroller

#

But, to use the "Accept a payment flow", I need to have a way to get the payment method id, which is possible to get calling the createPaymentMethod API

#

This API only works if I pass the cardParams, that I don't know how to get from the Stripe SDK

#

It seems the only way to achive that is using the CardWidget, but this is not recommended anymore

proven condor
#

Interesting, so 3DS shows up in the current app, but the PaymentIntent's status doesn't change overall?

#

I am honestly surprised by that. Do you have an example ID of a payment intent that you saw the challenge for but that did not go in to a requires_action state?

simple thunder
#

3DS shows up in the current app, but we don't want that because the app is used by a merchant, not for the final customer that has the card. So the BE team bypass this creating a dialog that asks the merchant to enter an email or a phone to receive the 3DS. The issue with the current Stripe flow is that I can't dismiss the payment sheet and the 3DS shows in the current app. I need to avoid this situation.

proven condor
#

What issue did you run in to with the finalize on server flow?

simple thunder
#

The 3DS shows up in the app, and that is the issue ๐Ÿ™‚

#

I don't want to show the 3DS in the app, since the app is used by a merchant, not for the final customer that has the card

proven condor
#

Interesting, so 3DS shows up before we even create the PaymentMethod?

simple thunder
#

it shows after, but I don't want to show the 3DS in the app because our backend handle it.

proven condor
#

Right, you shouldn't need to here

simple thunder
#

This issue is in this part of code: paymentSheet = PaymentSheet(
activity = this,
createIntentCallback = { paymentMethod, shouldSavePaymentMethod ->
// Here I'm calling something like this:
},
paymentResultCallback = ::onPaymentSheetResult,
)
}

#

POST

request:
{
add_to_client: true/false,
entity_type: 'client', // or user, ach, royalty
entity_id: 1234,
confirmation_token: 'ctoken_1NnQUf2eZvKYlo2CIObdtbnb',
payment_method_id: 'pm_123BgER1234',
payment_type: 'card',
}

response:
200
{
status: 'requires_action', // or 'succeeded', etc
client_secret: 'seti_23445678โ€ฆ.890'
}

#

But the app must not show the 3DS ๐Ÿ™‚

proven condor
#

Ah gotcha, we triger 3DS when you end the callback with CreateIntentResult.Success?

simple thunder
#

yeah

proven condor
#

I will ask my colleagues about this, my apologies I thought this would be easier to find. None of our other flows trigger 3DS at that point to my knowledge, I get why we do that there but that is definitely inconvinient for this flow

simple thunder
#

Ok, I will wait your response. If we had a status like CreateIntentResult.Wait, then my BE could handle the 3DS and then can just wait for the BE, not for the Stripe SDK

#

I think you got it now

#

The workaround that I was though about is to use the CardElement instead of the PaymentSheet, because I can get the cardParams from there. But since the CarElement is not recommended, I would like to use the PaymentSheet

proven condor
#

Yep, according to my colleague, the CardElement would be the best way to do this now. The PaymentSheet does not currently have a way to avoid 3DS in your situation

#

I will file feedback about adding functionality like that though. I definitely see how that would be very helpful

simple thunder
#

Yeah

#

I really appreciate

#

Is there some place where could I know when this functionality will be available? Also, do you have an ETA for it?