react-native-stripe-payment-intents
v2.0.3
Published
A bridge for Stripe's PaymentsIntents SDK
Downloads
5
Keywords
Readme
react-native-stripe-payment-intents
This is a bridge intended for the new Stripe API PaymentIntents.
Read before you use
- Only the confirmation process is currently implemented (with 3DS2 support)
- You are expected to have already created a PaymentIntent on your server and passed the client_secret to the client
- There is no plan to expand on what is currently implemented
Getting started
$ npm install react-native-stripe-payment-intents --save
Link it
$ react-native link react-native-stripe-payment-intents
iOS Specifics
You have to support custom url schemes to automatically redirect Ios.
Add this in info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>yourCustomScheme</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.scheme.custom.your</string>
<key>CFBundleURLSchemes</key>
<array>
<string>yourCustomScheme</string>
</array>
</dict>
</array>
Add this in appDelegate.m
#import <Stripe/Stripe.h>
...
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
BOOL stripeHandled = [Stripe handleStripeURLCallbackWithURL:url];
return YES;
}
Usage
// Exposed module with the logic
import RNStripePaymentIntents from 'react-native-stripe-payment-intents';
const initCallback = (err, result) => {
...
}
const payCallback = (err, result) => {
...
}
// Init with publishableKey
RNStripePaymentIntents.init(publishableKey, initCallback);
// Only one of sourceId and paymentMethodId should be filled, the other should be null
// The module will display and handle any authorization flow if needed, then call the callback
// returnUrl can be set to null if you do not support custom url schemes, otherwise the format is: "yourCustomScheme://main" and you should do the steps described in iOS Specifics below
RNStripePaymentIntents.pay(clientSecret, sourceId, paymentMethodId, returnUrl, payCallback);