5.5.2 • Published 23 days ago

@capacitor-community/stripe-terminal v5.5.2

Weekly downloads
-
License
MIT
Repository
github
Last release
23 days ago

@capacitor-community/stripe-terminal

Stripe SDK bindings for Capacitor Applications. This plugin is still in beta. We have confirmed that it works well in the demo project. Please refer to https://github.com/capacitor-community/stripe/tree/main/demo/angular for the implementation.

  • Tap To Pay
  • Internet
  • Bluetooth
  • USB

Install

npm install @capacitor-community/stripe-terminal
npx cap sync

iOS

Android

Add permissions to your android/app/src/main/AndroidManifest.xml file:

+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
+ <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
+ <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
+ <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />

If used in conjunction with the @capacitor-community/stripe plugin, the following settings may be necessary

Add packagingOptions to your android/app/build.gradle file:

android {
...
+  packagingOptions {
+    resources.excludes.add("org/bouncycastle/x509/*")
+  }
}

And update minSdkVersion to 26 And compileSdkVersion to 34 in your android/app/build.gradle file:

  ext {
-    minSdkVersion = 22
-    compileSdkVersion = 33
+    minSdkVersion = 26
+    compileSdkVersion = 34

Usage

(async ()=> {
  /**
   * tokenProviderEndpoint: The URL of your backend to provide a token. Use Post request to get a token.
   */
  await StripeTerminal.initialize({ tokenProviderEndpoint: 'https://example.com/token', isTest: true })
  const { readers } = await StripeTerminal.discoverReaders({
    type: TerminalConnectTypes.TapToPay,
    locationId: "**************",
  });
  await StripeTerminal.connectReader({
    reader: readers[0],
  });
  await StripeTerminal.collect({ paymentIntent: "**************" });
});

API

initialize(...)

initialize(options: { tokenProviderEndpoint: string; isTest: boolean; }) => Promise<void>
ParamType
options{ tokenProviderEndpoint: string; isTest: boolean; }

discoverReaders(...)

discoverReaders(options: { type: TerminalConnectTypes; locationId?: string; }) => Promise<{ readers: ReaderInterface[]; }>
ParamType
options{ type: TerminalConnectTypes; locationId?: string; }

Returns: Promise<{ readers: ReaderInterface[]; }>


connectReader(...)

connectReader(options: { reader: ReaderInterface; }) => Promise<void>
ParamType
options{ reader: ReaderInterface; }

getConnectedReader()

getConnectedReader() => Promise<{ reader: ReaderInterface | null; }>

Returns: Promise<{ reader: ReaderInterface | null; }>


disconnectReader()

disconnectReader() => Promise<void>

cancelDiscoverReaders()

cancelDiscoverReaders() => Promise<void>

collect(...)

collect(options: { paymentIntent: string; }) => Promise<void>
ParamType
options{ paymentIntent: string; }

cancelCollect()

cancelCollect() => Promise<void>

addListener(TerminalEventsEnum.Loaded, ...)

addListener(eventName: TerminalEventsEnum.Loaded, listenerFunc: () => void) => Promise<PluginListenerHandle>
ParamType
eventNameTerminalEventsEnum.Loaded
listenerFunc() => void

Returns: Promise<PluginListenerHandle>


addListener(TerminalEventsEnum.DiscoveredReaders, ...)

addListener(eventName: TerminalEventsEnum.DiscoveredReaders, listenerFunc: () => { reader: ReaderInterface; }) => Promise<PluginListenerHandle>
ParamType
eventNameTerminalEventsEnum.DiscoveredReaders
listenerFunc() => { reader: ReaderInterface; }

Returns: Promise<PluginListenerHandle>


addListener(TerminalEventsEnum.ConnectedReader, ...)

addListener(eventName: TerminalEventsEnum.ConnectedReader, listenerFunc: () => void) => Promise<PluginListenerHandle>
ParamType
eventNameTerminalEventsEnum.ConnectedReader
listenerFunc() => void

Returns: Promise<PluginListenerHandle>


addListener(TerminalEventsEnum.Completed, ...)

addListener(eventName: TerminalEventsEnum.Completed, listenerFunc: () => void) => Promise<PluginListenerHandle>
ParamType
eventNameTerminalEventsEnum.Completed
listenerFunc() => void

Returns: Promise<PluginListenerHandle>


addListener(TerminalEventsEnum.Canceled, ...)

addListener(eventName: TerminalEventsEnum.Canceled, listenerFunc: () => void) => Promise<PluginListenerHandle>
ParamType
eventNameTerminalEventsEnum.Canceled
listenerFunc() => void

Returns: Promise<PluginListenerHandle>


addListener(TerminalEventsEnum.Failed, ...)

addListener(eventName: TerminalEventsEnum.Failed, listenerFunc: () => void) => Promise<PluginListenerHandle>
ParamType
eventNameTerminalEventsEnum.Failed
listenerFunc() => void

Returns: Promise<PluginListenerHandle>


Interfaces

PluginListenerHandle

PropType
remove() => Promise<void>

Type Aliases

ReaderInterface

{ index: number; serialNumber: string; }

Enums

TerminalConnectTypes

MembersValue
Simulated'simulated'
Internet'internet'
Bluetooth'bluetooth'
Usb'usb'
TapToPay'tap-to-pay'

TerminalEventsEnum

MembersValue
Loaded'terminalLoaded'
DiscoveredReaders'terminalDiscoveredReaders'
CancelDiscoveredReaders'terminalCancelDiscoveredReaders'
ConnectedReader'terminalConnectedReader'
DisconnectedReader'terminalDisconnectedReader'
Completed'terminalCompleted'
Canceled'terminalCanceled'
Failed'terminalFailed'
6.0.1

23 days ago

6.0.0

24 days ago

5.5.2

1 month ago

5.5.1

1 month ago

5.5.0

2 months ago

6.0.0-2

2 months ago

5.5.0-beta.2

2 months ago

5.5.0-beta.1

2 months ago

5.5.0-beta.0

2 months ago

5.4.6

2 months ago

5.4.5

2 months ago

5.4.4

2 months ago

5.4.3

2 months ago

6.0.0-1

3 months ago

6.0.0-0

3 months ago

5.4.2

6 months ago

5.4.1

6 months ago

5.4.0

6 months ago

5.3.0

7 months ago

5.2.0

9 months ago

5.1.0

9 months ago

0.0.1

9 months ago