#oscar-android-ephemeralkeys
1 messages ยท Page 1 of 1 (latest)
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.
Can you share more detail about this? Perhaps an example payment intent ID?
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
}
}
}
)
Looks like you're using setup intents then, can you share an example?
Pardon me, what do you mean by the setup intent? I've provided you with the entire implementation on the screen
Yes, but I'm looking to inspect the logs related to specific instances, specific Setup Intents
Since it appears you're doing setup, I'd looking for a setup intent ID like si_12345 where you expected to see the bank account payment method options but it was not included
Oh I see
seti_1OX50AKA296nhejwyNkx9F2C_secret_PLmZU1DDELGmdc2rsTTWALS2X6WH6rr
Oh, you're using explicitly specified PM types, and us_bank_account is included: https://dashboard.stripe.com/test/logs/req_A1vD1Qr4c4puh4
So then using this or similar setup intents, what do you end up seeing in the payment sheet?
On the payment sheet, only the card option. Previously, both bank account and card would display
Hmm that seems unexpected, then, I agree
Is this always happening, or under some circumstances?
This is always happening
Looking at the stripe dashboard - logs, we're noticing an error associated with v1/payment_methods which states:
more_permissions_required The provided key 'ek_test_YW*********************************************************************_******upvF' does not have the required permissions for this endpoint on account 'acct_1Mta0EKA296nhejw'. Having more permissions would allow this request to continue.
What's odd is we can still add card information
Hi there ๐ taking over, as my colleague needs to step away
Give me a few minutes to get caught up.
๐
Have you looked at the permissions for that restricted key? There's modular read and write permissions that can be set/unset for Payment Methods, Payment Intents, and Setup Intents
Can you go here and try updating the key to give write permissions to that specific restricted key that's. mentioned in the error?
We're currently looking at the link you sent us but we do not see any options to give write permissions to that key. Could you help me find it
What does that page look like for you? (make sure to redact any full API keys that you can see)
as such
Ohhhh, sorry. This is an ephemeral key --> ek_test_YW*********************************************************************_******upvF. I thought it was a restricted API key. Just a minute
In your code, you create customerEpheralSecret. What does that line/block look like?
I wouldn't recommend posting the key here. Specifically I mean, what does the block of code look like?
We dont create that on the client side. That's returned to us from our server. Did you want me to ask the BE team to send you the block of code for it?
BE
ek = await self.payment_wrapper.create_ephemeral_secret(
stripe_customer_id=customer.stripe_customer_id
)
Circling back a little bit, can you find a request ID for the request that gave you the below error?
more_permissions_required
The provided key 'ek_test_YW*********************************************************************_******upvF' does not have the required permissions for this endpoint on account 'acct_1Mta0EKA296nhejw'. Having more permissions would allow this request to continue.
It should be in the log you mentioned earlier, but just in case, here's how you can find a request ID: https://support.stripe.com/questions/finding-the-id-for-an-api-request