2.0.3 • Published 3 years ago

react-native-stripe-payment-intents v2.0.3

Weekly downloads
10
License
-
Repository
-
Last release
3 years ago

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);