@capacitor-community/stripe-terminal v5.5.2
@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(...)
discoverReaders(...)
connectReader(...)
getConnectedReader()
disconnectReader()
cancelDiscoverReaders()
collect(...)
cancelCollect()
addListener(TerminalEventsEnum.Loaded, ...)
addListener(TerminalEventsEnum.DiscoveredReaders, ...)
addListener(TerminalEventsEnum.ConnectedReader, ...)
addListener(TerminalEventsEnum.Completed, ...)
addListener(TerminalEventsEnum.Canceled, ...)
addListener(TerminalEventsEnum.Failed, ...)
- Interfaces
- Type Aliases
- Enums
initialize(...)
initialize(options: { tokenProviderEndpoint: string; isTest: boolean; }) => Promise<void>
Param | Type |
---|---|
options | { tokenProviderEndpoint: string; isTest: boolean; } |
discoverReaders(...)
discoverReaders(options: { type: TerminalConnectTypes; locationId?: string; }) => Promise<{ readers: ReaderInterface[]; }>
Param | Type |
---|---|
options | { type: TerminalConnectTypes; locationId?: string; } |
Returns: Promise<{ readers: ReaderInterface[]; }>
connectReader(...)
connectReader(options: { reader: ReaderInterface; }) => Promise<void>
Param | Type |
---|---|
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>
Param | Type |
---|---|
options | { paymentIntent: string; } |
cancelCollect()
cancelCollect() => Promise<void>
addListener(TerminalEventsEnum.Loaded, ...)
addListener(eventName: TerminalEventsEnum.Loaded, listenerFunc: () => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName | TerminalEventsEnum.Loaded |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
addListener(TerminalEventsEnum.DiscoveredReaders, ...)
addListener(eventName: TerminalEventsEnum.DiscoveredReaders, listenerFunc: () => { reader: ReaderInterface; }) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName | TerminalEventsEnum.DiscoveredReaders |
listenerFunc | () => { reader: ReaderInterface; } |
Returns: Promise<PluginListenerHandle>
addListener(TerminalEventsEnum.ConnectedReader, ...)
addListener(eventName: TerminalEventsEnum.ConnectedReader, listenerFunc: () => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName | TerminalEventsEnum.ConnectedReader |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
addListener(TerminalEventsEnum.Completed, ...)
addListener(eventName: TerminalEventsEnum.Completed, listenerFunc: () => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName | TerminalEventsEnum.Completed |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
addListener(TerminalEventsEnum.Canceled, ...)
addListener(eventName: TerminalEventsEnum.Canceled, listenerFunc: () => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName | TerminalEventsEnum.Canceled |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
addListener(TerminalEventsEnum.Failed, ...)
addListener(eventName: TerminalEventsEnum.Failed, listenerFunc: () => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName | TerminalEventsEnum.Failed |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
Interfaces
PluginListenerHandle
Prop | Type |
---|---|
remove | () => Promise<void> |
Type Aliases
ReaderInterface
{ index: number; serialNumber: string; }
Enums
TerminalConnectTypes
Members | Value |
---|---|
Simulated | 'simulated' |
Internet | 'internet' |
Bluetooth | 'bluetooth' |
Usb | 'usb' |
TapToPay | 'tap-to-pay' |
TerminalEventsEnum
Members | Value |
---|---|
Loaded | 'terminalLoaded' |
DiscoveredReaders | 'terminalDiscoveredReaders' |
CancelDiscoveredReaders | 'terminalCancelDiscoveredReaders' |
ConnectedReader | 'terminalConnectedReader' |
DisconnectedReader | 'terminalDisconnectedReader' |
Completed | 'terminalCompleted' |
Canceled | 'terminalCanceled' |
Failed | 'terminalFailed' |
23 days ago
24 days ago
1 month ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
3 months ago
6 months ago
6 months ago
6 months ago
7 months ago
9 months ago
9 months ago
9 months ago