React Native implementation for Stripe.js Identity.
The library allows you to use Stripe.js Identity with react-native/expo without ejecting. You can use it with both server-side implementations and client-side implementations. Simply ensure you follow the url structure guidelines below.
identity_beta=v3
- This library relies on React Native Webview. Please follow this guide to install in your project first.
-
Ensure you've completed the setps in prequisites.
-
Install package via npm or yarn:
npm install --save react-native-stripe-identity
OR yarn add react-native-stripe-identity
- Import in your project
import StripeIdentity from 'react-native-stripe-identity';
import StripeIdentity from 'react-native-stripe-identity';
const MyStripeIdentity = () => (
<StripeIdentity
redirectUrl="https://verify.stripe.com/start#XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
refreshUrl="https://example.com/refresh"
onSuccess={({ verificationIntentId }) => {
console.log(`Stripe identity session succeeded. verification intent id: ${verificationIntentId}.`);
}}
onRefresh={() => {
console.log(`Stripe identity session requested refresh.`);
}}
/>
);
export default MyStripeIdentity;
- return_url must have the query string param
?vi={VERIFICATION_INTENT_ID}
.- vi must be the last param - passed to the onSuccess function as verificationIntentId
- A simple way to do this is using url-join. eg:
urlJoin(myReturnUrl, '?vi={VERIFICATION_INTENT_ID}')
.
redirectToUrl
(string) - The Identity webpage url - Stripe'sidentity.next_action.redirect_to_url
.refreshUrl
(string) - The Identity return url - Stripe's identity.refresh_url - Intercepted to call onRefresh.onSuccess
(?Function) - Called upon success of the identity session with{ ...props, verificationIntentId: 'VERIFICATION_INTENT_ID' }
onRefresh
(?Function) - Called upon identity session redirecting to refreshUrl with{ ...props }
onLoadingComplete
(?Function) - Called when the Stripe identity session webpage loads successfully.webViewProps
(?Object) - WebView Component props, spread on the WebView Component.renderOnComplete
(?(props) => React$Node) - Optional rendering function returning a component to display upon identity completion. note: You don't need this if your onSuccess and onRefresh functions navigate away from the component.
- If you face Camera/Gallery permissions issues checkout the solutions in this react-native-permissions issue
Pull requests are highly appreciated! For major changes, please open an issue first to discuss what you would like to change.
Stripe identity is still in beta.