Schaeff demonstrates Stripe’s React Native SDK in an Expo app. The server retrieves the authenticated customer, creates an ephemeral key and a PaymentIntent, then returns their details to the app. The app initializes and presents PaymentSheet, which supports cards, Apple Pay, Google Pay, and saving payment methods for later.
"Show me the money" - securely accepting payments in React Native apps
Speaker
Thor Schaeff, a developer advocate at Stripe, presents at React Native EU 2021, hosted by Callstack, on securely accepting payments in React Native apps.
Schaeff says digital products and services, such as subscriptions, in-game currency, and premium content, must use the app store’s in-app purchase APIs. Stripe can be used for other cases, including physical goods and services. He recommends checking the Apple and Google guidelines for the specific use case.
The SDK layers Stripe’s native Android and iOS SDKs beneath native module code, a React Native bridge, TypeScript interfaces, UI components, and convenience hooks. Its native card components keep card information out of the JavaScript bridge and send it directly to Stripe. Schaeff says the native SDK foundation supports PCI compliance and Strong Customer Authentication, including 3D Secure 2.
Schaeff says the Stripe React Native SDK works with Expo Go starting with Expo SDK 42, and advises using `expo install` to select a compatible version. An Expo config plugin simplifies setup for Apple Pay and Google Pay. He credits the Expo and React Native communities, including Callstack, for helping develop and improve the open source SDK.
Takeaways
- Create PaymentIntents on the server once the checkout amount is known.
- Associate ephemeral keys and saved payment methods with the authenticated customer.
- Use the native UI components to keep card details out of the JavaScript bridge.
- Check app store rules before choosing a payment method for digital products.
- For Expo projects, install the Stripe SDK with `expo install` to match the Expo SDK version.
Mentioned in this talk
Search inside this talk
What was claimed 9
- role atThor Schaeff is developer advocate at
Stripe
“I'm a developer advocate at Stripe”
YouTube Unverified1 source· Talk
- uses
“implementing it into an Expo app”
YouTube Unverified1 source· Talk
- launched
Stripe launched Stripe React Native
official React Native SDK“We recently shipped our official Stripe React Native SDK.”
YouTube Unverified1 source· Talk
- featureStripe React Native: PaymentSheet securely collects card details, supports Apple Pay and Google Pay, and can save card details for future use
“It securely collects card details, supports Apple Pay and Google Pay”
YouTube Unverified1 source· Talk
- usesnative Android and iOS SDKs, a native bridge, native UI components, and hooks
“The bottom layer of the cake is our Stripe Android and iOS native SDKs.”
YouTube Unverified1 source· Talk
- featureExpo: Expo SDK 42 supports the Stripe React Native SDK in Expo Go
“Since Expo SDK 42 ... the Stripe React Native SDK is available with Expo and the Expo Go client.”
YouTube Unverified1 source· Talk
- integrates withStripe React Native integrates with Expo
“the Stripe Direct Native SDK works with Expo”
YouTube Verified2 sources· Talk
- featureExpo: Expo config plugin simplifies setup, including Apple Pay and Google Pay configuration
“the Expo config plugin ... simplifies setup”
YouTube Unverified1 source· Talk
- builtcommunity contributions
“especially Callstack and Expo, for their major contributions to this SDK”
YouTube Unverified1 source· Talk






