#oscarcodes

1 messages · Page 1 of 1 (latest)

ionic tendonBOT
#

Hello! We'll be with you shortly. 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.

blissful torrent
#

Hello, happy to help, can you summarize where you currently are with that issue?

strong flower
#

Hello, having a bizzare issue on Android implementing the Payment Intent API (https://stripe.com/docs/payments/save-and-reuse - save and reuse payment methods). Our implmentation allowed users to add credit cards and US bank accounts. This was working perfectly fine. Only recently, without any changes to the Android implementation or Stripe configuration on the BE, the bank account is no longer appearing as an option in the PaymentSheet. Could someone offer help?

#

We're using the 'setup intent' for setting up future payments

blissful torrent
#

Gotcha, can you send me an example ID of a SetupIntent that you are seeing this on?

strong flower
#

Of course, did you want the customer ID?

blissful torrent
#

Just the setup intent should be good for now

#

I can check out the customer ID from there if need be

strong flower
#

setupIntentSecret = seti_1OX8PxKA296nhejwGwf5LmFd_secret_PLq6KHb5m7LNbEWar8ycxtLL3BTavIc

#

customerId - cus_OFcAQo4ksLqkqn

blissful torrent
#

I do see us_bank_account on that intent. Can you send me the text of your code for setting up your payment sheet?

strong flower
#

stripeLauncher.launch(
PaymentSheetContract.Args.createSetupIntentArgs(
clientSecret = customerIntentSecret,
config = PaymentSheet.Configuration(
merchantDisplayName = merchantName,
customer = PaymentSheet.CustomerConfiguration(
id = customerId,
ephemeralKeySecret = customerEpheralSecret,
),
appearance = paymentSheetAppearance,
allowsDelayedPaymentMethods = true
)
)
)

Where stripeLauncher:

val stripeLauncher = rememberLauncherForActivityResult(
contract = PaymentSheetContract(),
onResult = {
when (it) {
is PaymentSheetResult.Failed,
is PaymentSheetResult.Canceled -> {
// do something
}

        is PaymentSheetResult.Completed -> {
            // do something
        }
    }
}

)

#

As noted in my first message, this worked perfectly fine up until recently. We've made no changes to the android implementation

#

I can give you the request ID too

blissful torrent
#

That would be helpful, thank you

strong flower
#

req_t4j40EkNhEeWd0

#

this is the error in the dashboard

more_permissions_required
The provided key 'ek_test_YW*********************************************************************_******rK9w' does not have the required permissions for this endpoint on account 'acct_1Mta0EKA296nhejw'. Having more permissions would allow this request to continue.

{
"error": {
"code": "more_permissions_required",
"message": "The provided key 'ek_test_YW*********************************************************************_******rK9w' does not have the required permissions for this endpoint on account 'acct_1Mta0EKA296nhejw'. Having more permissions would allow this request to continue.",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_t4j40EkNhEeWd0?t=1705003557",
"type": "invalid_request_error"
}
}

blissful torrent
#

From that code I am not immediately sure why ACH would not be showing up. Will consult my colleagues on this and get back to you

strong flower
#

Ok

#

keep me updated please

blissful torrent
#

Will do, apologies, looks like they got a rush of questions at the same time as well. I am still looking in to this now and will get back to you as soon as I can

#

For ACH not showing up, can you double check that the setup intent ID on your client is the same one that you are expecting from your server? I am still not seeing something that would disable ACH on the client, so I am wondering if there may be a mixup somewhere

strong flower
#

Checking now

blissful torrent
#

And for your ephemeral key permissions issue, it looks like your API version when creating the ephemeral key is different than the API version that your client is using when trying to confirm the intents.

#

I will make sure we improve that error

strong flower
#

Just to be clear, when you say client, do you mean android or our servers?

blissful torrent
#

Android

strong flower
#

Do you think this is the root cause of the issue?

blissful torrent
#

I thought it was, tested an am not getting this error.

#

We require a version when creating an ephemeral key so I thought it was stricter about that matching.

strong flower
#

Ok I see

#

For ACH not showing up, can you double check that the setup intent ID on your client is the same one that you are expecting from your server? I am still not seeing something that would disable ACH on the client, so I am wondering if there may be a mixup somewhere

Still working on this

blissful torrent
#

Gotcha, talking to a colleague who knows more about android now as well.

strong flower
#

Thank you

#

For ACH not showing up, can you double check that the setup intent ID on your client is the same one that you are expecting from your server? I am still not seeing something that would disable ACH on the client, so I am wondering if there may be a mixup somewhere

Yes, I can confirm the setup secret is the same

blissful torrent
#

Did you write the PaymentSheetContract wrapper? If so would you be able to send us the SDK code behind it?

#

Specifically where you are calling paymentSheet.presentWithSetupIntent()

strong flower
#

Args.createSetupIntentArgs() is what I'm calling

#

Did you write the PaymentSheetContract wrapper? I did not write a wrapper

blissful torrent
#

And stripeLauncher calls the present method?

strong flower
#

Yes

#

As mentioned, this was working well in the past. I was able to test adding cards and bank accounts. Nothing in the Android code has changed. As a matter of fact, I even tested builds older than 3 months old (when I launched the feature and was 100% sure ACH were available) and even those versions no longer display ACH as an option

#

This to me seems like a configuration issue

blissful torrent
#

Unfortunately we aren't sure what may have changed here. Can you write in to our support team and send a minimal repro project for this? We can build and debug from there

#

Also apologies that I did not recognize that PaymentSheetContract was a deprecated object from stripe-android. If you do have the bandwidth to update to use the replacements (PaymentSheet constructor or rememberPaymentSheet()) that may help going forward but I think we'll need to take a closer look offline to figure out what caused this in your existing app.
https://github.com/stripe/stripe-android/blob/master/CHANGELOG.md#20260---2023-07-05

GitHub

Stripe Android SDK . Contribute to stripe/stripe-android development by creating an account on GitHub.

strong flower
#

I think it's going to be difficult to write a repro project for this but I can try

#

Can you give me contact info for your support team

blissful torrent
#
strong flower
#

Ok thank you

#

I'll reach out