Expo includes support for @stripe/stripe-react-native, which allows you to build delightful payment experiences in your native Android and iOS apps using React Native & Expo. This library provides powerful and customizable UI screens and elements that can be used out-of-the-box to collect your users' payment details.
If you're looking for a quick example, check out this Snack!
Each Expo SDK version requires a specific @stripe/stripe-react-native version. See the Stripe CHANGELOG for a mapping of versions. To automatically install the correct version for your Expo SDK version, run:
If you're using EAS Build, you can do most of your Stripe setup using the @stripe/stripe-react-native config plugin (what's a config plugin?). To setup, just add the config plugin to the plugins array of your app.json or app.config.js as shown below, then rebuild the app.
Linking.createURL will ensure you're using the proper scheme, whether you're running in Expo Go or your production app. '/--/' is necessary in Expo Go because it indicates that the substring after it corresponds to the deep link path, and is not part of the path to the app itself.
@stripe/stripe-react-native is supported in Expo Go on Android and iOS out of the box, however, for iOS, it is only available for standalone apps built with EAS Build, and not for apps built on the classic build system- expo build:ios. Android apps built with expo build:androidwill have access to the @stripe/stripe-react-native library.