#jesuisilya
1 messages · Page 1 of 1 (latest)
I've added this https://github.com/stripe/stripe-react-native/blob/master/example/src/screens/ApplePayScreen.tsx#L310 sample to my project at changed it from typescript to javascript, here's a screenshot from my phone
The buttons for apple pay are disabled because the isPlatformPaySupported is returning false
No error, just isPlatformPaySupported returning false all the time on my iPhone 12
which iOS do you have?
16.3.1
and does your phone work with Apple Pay usually? do you have cards in your wallet?
Yes, I've just made a test purchase with apple pay on this phone and it went successfully
when you say test purchase, do you mean using your real live bank card, or are you using some Apple sandbox testing card specifically?
Using my real bank card I bought ordered something from amazon with apple pay and it worked well
ok. So have you implemented the steps at https://stripe.com/docs/apple-pay?platform=react-native#csr to set up a processing certificate in your Apple Developer account to accept Apple Pay and configured your app to use the merchant identifier?
I did, but let me confirm one more time that I didn't miss any steps here
Yeah this is all done
and your app uses the merchant ID?
Yes
share your exact code so I can have a look?
return (
<Provider store={store}>
<PersistGate persistor={persistor}>
<AnalyticsProvider client={segmentClient}>
<StripeProvider
publishableKey={config.STRIPE_API_KEY}
merchantIdentifier={config.APPLE_MERCHANT_ID}
urlScheme={
Constants.appOwnership === 'expo'
? Linking.createURL('/--/')
: Linking.createURL('')
}>
<RNPProvider>{loaded && <AppNavigation />}</RNPProvider>
</StripeProvider>
</AnalyticsProvider>
</PersistGate>
</Provider>
);
We're using expo, so I also added this entitlement to the app.config.js
can you try your app on someone else's phone?
yeah I know nothing about Expo
presumably you tried this first on an iOS simulator right? did that work?
I haven't tested it in the emulator as I don't have access to a mac at the moment
Are you convinced that it's an issue with the device?
I don't know
Were there any problems like this experienced by other users?
nope
for now I'd just see if you can test it on some other devices, or build on a Mac and use the emulator, there isn't really a great answer. I'm not seeing anything obviously wrong with your setup and there isn't some sort of known issue. It's also worth building and installing the exact example app from our Github as a standalone thing and seeing if that works on your device.
Well it's not even the payment that doesn't work so I don't see how testing apple pay in a standalone project could change anything. I'll try testing it further with my colleagues and will try out the standalone project but I would like this issue to be escalated as Apple Pay works fine on other apps on my device
not sure what you mean by 'escalated'
Either reported as a potential bug or have more devs check it out
you can write to https://support.stripe.com/?contact=true so we can spend more time trying to reproduce something
if you do that please share
- the complete code of your app
- exact details of the device
- anything else relevant
there's other stuff I could ask you here; for example, have you confirmed that config.APPLE_MERCHANT_ID is not null at runtime?
One moment, I'll check this
Yeah the mechant id is correct when isPlatformPaySupported is being called
I'm really running out of things we could ask
the cards in your wallet, what brands are they?
I am getting some Sentry warnings but I am not sure if they are related
if your wallet only has brands Stripe doesn't support for example then you can get a null result, but as long as you have some Visa/Mastercards that's not an issue
Both Visa and Mastercard
I don't know either, there's nothing really there to work with
did you do the additional Apple Pay step mentioned for Expo at https://github.com/stripe/stripe-react-native#expo ?
i.e. adding the merch ID in the plugins section
Yeah it's there
I really have nothing else beyond trying on other devices or sharing much more of your code/your full app so we can try, and trying just our example app directly to narrow down what part of your additional specific set up that might have an issue