@capacitor-community/stripe-terminal 5.4.4 → 5.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -14
- package/android/src/main/java/com/getcapacitor/community/stripe/terminal/StripeTerminal.java +62 -82
- package/android/src/main/java/com/getcapacitor/community/stripe/terminal/StripeTerminalPlugin.java +5 -2
- package/android/src/main/java/com/getcapacitor/community/stripe/terminal/TerminalEvent.kt +1 -0
- package/android/src/main/java/com/getcapacitor/community/stripe/terminal/TokenProvider.java +69 -35
- package/android/src/main/java/com/getcapacitor/community/stripe/terminal/helper/MetaData.java +0 -2
- package/android/src/main/java/com/getcapacitor/community/stripe/terminal/models/Executor.java +0 -2
- package/dist/docs.json +48 -2
- package/dist/esm/definitions.d.ts +5 -1
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/events.enum.d.ts +2 -1
- package/dist/esm/events.enum.js +1 -0
- package/dist/esm/events.enum.js.map +1 -1
- package/dist/esm/web.d.ts +1 -0
- package/dist/esm/web.js +3 -0
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +4 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +4 -0
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/StripeTerminal.swift +74 -45
- package/ios/Plugin/StripeTerminalPlugin.m +1 -0
- package/ios/Plugin/StripeTerminalPlugin.swift +4 -0
- package/ios/Plugin/TerminalEvents.swift +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,6 +56,8 @@ And update minSdkVersion to 26 And compileSdkVersion to 34 in your `android/app/
|
|
|
56
56
|
|
|
57
57
|
## Usage
|
|
58
58
|
|
|
59
|
+
### use native http client for getting a token
|
|
60
|
+
|
|
59
61
|
```typescript
|
|
60
62
|
(async ()=> {
|
|
61
63
|
/**
|
|
@@ -73,12 +75,36 @@ And update minSdkVersion to 26 And compileSdkVersion to 34 in your `android/app/
|
|
|
73
75
|
});
|
|
74
76
|
```
|
|
75
77
|
|
|
78
|
+
### set string token
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
(async ()=> {
|
|
82
|
+
// run before StripeTerminal.initialize
|
|
83
|
+
StripeTerminal.addListener(TerminalEventsEnum.RequestedConnectionToken, async () => {
|
|
84
|
+
const { token } = (await fetch("https://example.com/token")).json();
|
|
85
|
+
StripeTerminal.setConnectionToken({ token });
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
(async ()=> {
|
|
89
|
+
await StripeTerminal.initialize({ isTest: true })
|
|
90
|
+
const { readers } = await StripeTerminal.discoverReaders({
|
|
91
|
+
type: TerminalConnectTypes.TapToPay,
|
|
92
|
+
locationId: "**************",
|
|
93
|
+
});
|
|
94
|
+
await StripeTerminal.connectReader({
|
|
95
|
+
reader: readers[0],
|
|
96
|
+
});
|
|
97
|
+
await StripeTerminal.collect({ paymentIntent: "**************" });
|
|
98
|
+
});
|
|
99
|
+
````
|
|
100
|
+
|
|
76
101
|
## API
|
|
77
102
|
|
|
78
103
|
<docgen-index>
|
|
79
104
|
|
|
80
105
|
* [`initialize(...)`](#initialize)
|
|
81
106
|
* [`discoverReaders(...)`](#discoverreaders)
|
|
107
|
+
* [`setConnectionToken(...)`](#setconnectiontoken)
|
|
82
108
|
* [`connectReader(...)`](#connectreader)
|
|
83
109
|
* [`getConnectedReader()`](#getconnectedreader)
|
|
84
110
|
* [`disconnectReader()`](#disconnectreader)
|
|
@@ -86,6 +112,7 @@ And update minSdkVersion to 26 And compileSdkVersion to 34 in your `android/app/
|
|
|
86
112
|
* [`collect(...)`](#collect)
|
|
87
113
|
* [`cancelCollect()`](#cancelcollect)
|
|
88
114
|
* [`addListener(TerminalEventsEnum.Loaded, ...)`](#addlistenerterminaleventsenumloaded)
|
|
115
|
+
* [`addListener(TerminalEventsEnum.RequestedConnectionToken, ...)`](#addlistenerterminaleventsenumrequestedconnectiontoken)
|
|
89
116
|
* [`addListener(TerminalEventsEnum.DiscoveredReaders, ...)`](#addlistenerterminaleventsenumdiscoveredreaders)
|
|
90
117
|
* [`addListener(TerminalEventsEnum.ConnectedReader, ...)`](#addlistenerterminaleventsenumconnectedreader)
|
|
91
118
|
* [`addListener(TerminalEventsEnum.Completed, ...)`](#addlistenerterminaleventsenumcompleted)
|
|
@@ -103,12 +130,12 @@ And update minSdkVersion to 26 And compileSdkVersion to 34 in your `android/app/
|
|
|
103
130
|
### initialize(...)
|
|
104
131
|
|
|
105
132
|
```typescript
|
|
106
|
-
initialize(options: { tokenProviderEndpoint
|
|
133
|
+
initialize(options: { tokenProviderEndpoint?: string; isTest: boolean; }) => Promise<void>
|
|
107
134
|
```
|
|
108
135
|
|
|
109
|
-
| Param | Type
|
|
110
|
-
| ------------- |
|
|
111
|
-
| **`options`** | <code>{ tokenProviderEndpoint
|
|
136
|
+
| Param | Type |
|
|
137
|
+
| ------------- | ----------------------------------------------------------------- |
|
|
138
|
+
| **`options`** | <code>{ tokenProviderEndpoint?: string; isTest: boolean; }</code> |
|
|
112
139
|
|
|
113
140
|
--------------------
|
|
114
141
|
|
|
@@ -128,6 +155,19 @@ discoverReaders(options: { type: TerminalConnectTypes; locationId?: string; }) =
|
|
|
128
155
|
--------------------
|
|
129
156
|
|
|
130
157
|
|
|
158
|
+
### setConnectionToken(...)
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
setConnectionToken(options: { token: string; }) => Promise<void>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
| Param | Type |
|
|
165
|
+
| ------------- | ------------------------------- |
|
|
166
|
+
| **`options`** | <code>{ token: string; }</code> |
|
|
167
|
+
|
|
168
|
+
--------------------
|
|
169
|
+
|
|
170
|
+
|
|
131
171
|
### connectReader(...)
|
|
132
172
|
|
|
133
173
|
```typescript
|
|
@@ -208,6 +248,22 @@ addListener(eventName: TerminalEventsEnum.Loaded, listenerFunc: () => void) => P
|
|
|
208
248
|
--------------------
|
|
209
249
|
|
|
210
250
|
|
|
251
|
+
### addListener(TerminalEventsEnum.RequestedConnectionToken, ...)
|
|
252
|
+
|
|
253
|
+
```typescript
|
|
254
|
+
addListener(eventName: TerminalEventsEnum.RequestedConnectionToken, listenerFunc: () => void) => PluginListenerHandle
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
| Param | Type |
|
|
258
|
+
| ------------------ | ------------------------------------------------------------------------------------------ |
|
|
259
|
+
| **`eventName`** | <code><a href="#terminaleventsenum">TerminalEventsEnum.RequestedConnectionToken</a></code> |
|
|
260
|
+
| **`listenerFunc`** | <code>() => void</code> |
|
|
261
|
+
|
|
262
|
+
**Returns:** <code><a href="#pluginlistenerhandle">PluginListenerHandle</a></code>
|
|
263
|
+
|
|
264
|
+
--------------------
|
|
265
|
+
|
|
266
|
+
|
|
211
267
|
### addListener(TerminalEventsEnum.DiscoveredReaders, ...)
|
|
212
268
|
|
|
213
269
|
```typescript
|
|
@@ -322,15 +378,16 @@ addListener(eventName: TerminalEventsEnum.Failed, listenerFunc: () => void) => P
|
|
|
322
378
|
|
|
323
379
|
#### TerminalEventsEnum
|
|
324
380
|
|
|
325
|
-
| Members
|
|
326
|
-
|
|
|
327
|
-
| **`Loaded`**
|
|
328
|
-
| **`DiscoveredReaders`**
|
|
329
|
-
| **`CancelDiscoveredReaders`**
|
|
330
|
-
| **`ConnectedReader`**
|
|
331
|
-
| **`DisconnectedReader`**
|
|
332
|
-
| **`Completed`**
|
|
333
|
-
| **`Canceled`**
|
|
334
|
-
| **`Failed`**
|
|
381
|
+
| Members | Value |
|
|
382
|
+
| ------------------------------ | ----------------------------------------------- |
|
|
383
|
+
| **`Loaded`** | <code>'terminalLoaded'</code> |
|
|
384
|
+
| **`DiscoveredReaders`** | <code>'terminalDiscoveredReaders'</code> |
|
|
385
|
+
| **`CancelDiscoveredReaders`** | <code>'terminalCancelDiscoveredReaders'</code> |
|
|
386
|
+
| **`ConnectedReader`** | <code>'terminalConnectedReader'</code> |
|
|
387
|
+
| **`DisconnectedReader`** | <code>'terminalDisconnectedReader'</code> |
|
|
388
|
+
| **`Completed`** | <code>'terminalCompleted'</code> |
|
|
389
|
+
| **`Canceled`** | <code>'terminalCanceled'</code> |
|
|
390
|
+
| **`Failed`** | <code>'terminalFailed'</code> |
|
|
391
|
+
| **`RequestedConnectionToken`** | <code>'terminalRequestedConnectionToken'</code> |
|
|
335
392
|
|
|
336
393
|
</docgen-api>
|
package/android/src/main/java/com/getcapacitor/community/stripe/terminal/StripeTerminal.java
CHANGED
|
@@ -7,12 +7,10 @@ import android.bluetooth.BluetoothAdapter;
|
|
|
7
7
|
import android.content.Context;
|
|
8
8
|
import android.content.pm.PackageManager;
|
|
9
9
|
import android.util.Log;
|
|
10
|
-
|
|
11
10
|
import androidx.annotation.NonNull;
|
|
12
11
|
import androidx.annotation.Nullable;
|
|
13
12
|
import androidx.core.app.ActivityCompat;
|
|
14
13
|
import androidx.core.util.Supplier;
|
|
15
|
-
|
|
16
14
|
import com.getcapacitor.JSArray;
|
|
17
15
|
import com.getcapacitor.JSObject;
|
|
18
16
|
import com.getcapacitor.PluginCall;
|
|
@@ -42,15 +40,14 @@ import com.stripe.stripeterminal.external.models.Reader;
|
|
|
42
40
|
import com.stripe.stripeterminal.external.models.ReaderSoftwareUpdate;
|
|
43
41
|
import com.stripe.stripeterminal.external.models.TerminalException;
|
|
44
42
|
import com.stripe.stripeterminal.log.LogLevel;
|
|
45
|
-
|
|
46
|
-
import org.jetbrains.annotations.NotNull;
|
|
47
|
-
|
|
48
43
|
import java.util.ArrayList;
|
|
49
44
|
import java.util.List;
|
|
50
45
|
import java.util.Objects;
|
|
46
|
+
import org.jetbrains.annotations.NotNull;
|
|
51
47
|
|
|
52
48
|
public class StripeTerminal extends Executor {
|
|
53
49
|
|
|
50
|
+
private TokenProvider tokenProvider;
|
|
54
51
|
private Cancelable discoveryCancelable;
|
|
55
52
|
private Cancelable collectCancelable;
|
|
56
53
|
private List<Reader> readers;
|
|
@@ -61,10 +58,10 @@ public class StripeTerminal extends Executor {
|
|
|
61
58
|
private TerminalConnectTypes terminalConnectType;
|
|
62
59
|
|
|
63
60
|
public StripeTerminal(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
Supplier<Context> contextSupplier,
|
|
62
|
+
Supplier<Activity> activitySupplier,
|
|
63
|
+
BiConsumer<String, JSObject> notifyListenersFunction,
|
|
64
|
+
String pluginLogTag
|
|
68
65
|
) {
|
|
69
66
|
super(contextSupplier, activitySupplier, notifyListenersFunction, pluginLogTag, "StripeTerminalExecutor");
|
|
70
67
|
this.contextSupplier = contextSupplier;
|
|
@@ -77,21 +74,21 @@ public class StripeTerminal extends Executor {
|
|
|
77
74
|
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
|
|
78
75
|
if (!bluetooth.isEnabled()) {
|
|
79
76
|
if (
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
ActivityCompat.checkSelfPermission(this.contextSupplier.get(), Manifest.permission.BLUETOOTH_CONNECT) ==
|
|
78
|
+
PackageManager.PERMISSION_GRANTED
|
|
82
79
|
) {
|
|
83
80
|
bluetooth.enable();
|
|
84
81
|
}
|
|
85
82
|
}
|
|
86
83
|
|
|
87
84
|
this.activitySupplier.get()
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
85
|
+
.runOnUiThread(
|
|
86
|
+
() -> {
|
|
87
|
+
TerminalApplicationDelegate.onCreate((Application) this.contextSupplier.get().getApplicationContext());
|
|
88
|
+
notifyListeners(TerminalEnumEvent.Loaded.getWebEventName(), emptyObject);
|
|
89
|
+
call.resolve();
|
|
90
|
+
}
|
|
91
|
+
);
|
|
95
92
|
TerminalListener listener = new TerminalListener() {
|
|
96
93
|
@Override
|
|
97
94
|
public void onUnexpectedReaderDisconnect(@NonNull Reader reader) {
|
|
@@ -100,24 +97,32 @@ public class StripeTerminal extends Executor {
|
|
|
100
97
|
|
|
101
98
|
@Override
|
|
102
99
|
public void onConnectionStatusChange(@NonNull ConnectionStatus status) {
|
|
103
|
-
|
|
100
|
+
// TODO: Listenerを追加
|
|
104
101
|
}
|
|
105
102
|
|
|
106
103
|
@Override
|
|
107
104
|
public void onPaymentStatusChange(@NonNull PaymentStatus status) {
|
|
108
|
-
|
|
105
|
+
// TODO: Listenerを追加
|
|
109
106
|
}
|
|
110
107
|
};
|
|
111
108
|
LogLevel logLevel = LogLevel.VERBOSE;
|
|
112
|
-
|
|
109
|
+
this.tokenProvider =
|
|
110
|
+
new TokenProvider(this.contextSupplier, call.getString("tokenProviderEndpoint", ""), this.notifyListenersFunction);
|
|
113
111
|
if (!Terminal.isInitialized()) {
|
|
114
|
-
Terminal.initTerminal(this.contextSupplier.get().getApplicationContext(), logLevel, tokenProvider, listener);
|
|
112
|
+
Terminal.initTerminal(this.contextSupplier.get().getApplicationContext(), logLevel, this.tokenProvider, listener);
|
|
115
113
|
}
|
|
116
114
|
Terminal.getInstance();
|
|
117
115
|
}
|
|
118
116
|
|
|
119
|
-
public void
|
|
120
|
-
|
|
117
|
+
public void setConnectionToken(PluginCall call) {
|
|
118
|
+
this.tokenProvider.setConnectionToken(call);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
public void onDiscoverReaders(final PluginCall call) {
|
|
122
|
+
if (
|
|
123
|
+
ActivityCompat.checkSelfPermission(this.contextSupplier.get(), Manifest.permission.ACCESS_FINE_LOCATION) !=
|
|
124
|
+
PackageManager.PERMISSION_GRANTED
|
|
125
|
+
) {
|
|
121
126
|
Log.d(this.logTag, "android.permission.ACCESS_FINE_LOCATION permission is not granted.");
|
|
122
127
|
call.reject("android.permission.ACCESS_FINE_LOCATION permission is not granted.");
|
|
123
128
|
return;
|
|
@@ -134,7 +139,10 @@ public class StripeTerminal extends Executor {
|
|
|
134
139
|
} else if (Objects.equals(call.getString("type"), TerminalConnectTypes.Usb.getWebEventName())) {
|
|
135
140
|
config = new DiscoveryConfiguration.UsbDiscoveryConfiguration(0, this.isTest);
|
|
136
141
|
this.terminalConnectType = TerminalConnectTypes.Usb;
|
|
137
|
-
} else if (
|
|
142
|
+
} else if (
|
|
143
|
+
Objects.equals(call.getString("type"), TerminalConnectTypes.Bluetooth.getWebEventName()) ||
|
|
144
|
+
Objects.equals(call.getString("type"), TerminalConnectTypes.Simulated.getWebEventName())
|
|
145
|
+
) {
|
|
138
146
|
config = new DiscoveryConfiguration.BluetoothDiscoveryConfiguration(0, this.isTest);
|
|
139
147
|
this.terminalConnectType = TerminalConnectTypes.Bluetooth;
|
|
140
148
|
} else {
|
|
@@ -156,21 +164,23 @@ public class StripeTerminal extends Executor {
|
|
|
156
164
|
call.resolve(new JSObject().put("readers", readersJSObject));
|
|
157
165
|
};
|
|
158
166
|
discoveryCancelable =
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
167
|
+
Terminal
|
|
168
|
+
.getInstance()
|
|
169
|
+
.discoverReaders(
|
|
170
|
+
config,
|
|
171
|
+
discoveryListener,
|
|
172
|
+
new Callback() {
|
|
173
|
+
@Override
|
|
174
|
+
public void onSuccess() {
|
|
175
|
+
Log.d(logTag, "Finished discovering readers");
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@Override
|
|
179
|
+
public void onFailure(@NonNull TerminalException ex) {
|
|
180
|
+
Log.d(logTag, ex.getLocalizedMessage());
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
);
|
|
174
184
|
}
|
|
175
185
|
|
|
176
186
|
public void connectReader(final PluginCall call) {
|
|
@@ -228,54 +238,30 @@ public class StripeTerminal extends Executor {
|
|
|
228
238
|
return;
|
|
229
239
|
}
|
|
230
240
|
|
|
231
|
-
LocalMobileConnectionConfiguration config = new LocalMobileConnectionConfiguration(
|
|
232
|
-
|
|
233
|
-
);
|
|
234
|
-
Terminal
|
|
235
|
-
.getInstance()
|
|
236
|
-
.connectLocalMobileReader(
|
|
237
|
-
this.readers.get(reader.getInteger("index")),
|
|
238
|
-
config,
|
|
239
|
-
this.readerCallback(call)
|
|
240
|
-
);
|
|
241
|
+
LocalMobileConnectionConfiguration config = new LocalMobileConnectionConfiguration(this.locationId);
|
|
242
|
+
Terminal.getInstance().connectLocalMobileReader(this.readers.get(reader.getInteger("index")), config, this.readerCallback(call));
|
|
241
243
|
}
|
|
242
244
|
|
|
243
245
|
private void connectInternetReader(final PluginCall call) {
|
|
244
246
|
JSObject reader = call.getObject("reader");
|
|
245
247
|
InternetConnectionConfiguration config = new InternetConnectionConfiguration();
|
|
246
|
-
Terminal
|
|
247
|
-
.getInstance()
|
|
248
|
-
.connectInternetReader(
|
|
249
|
-
this.readers.get(reader.getInteger("index")),
|
|
250
|
-
config,
|
|
251
|
-
this.readerCallback(call)
|
|
252
|
-
);
|
|
248
|
+
Terminal.getInstance().connectInternetReader(this.readers.get(reader.getInteger("index")), config, this.readerCallback(call));
|
|
253
249
|
}
|
|
254
250
|
|
|
255
251
|
private void connectUsbReader(final PluginCall call) {
|
|
256
252
|
JSObject reader = call.getObject("reader");
|
|
257
253
|
UsbConnectionConfiguration config = new UsbConnectionConfiguration(this.locationId);
|
|
258
254
|
Terminal
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
this.readers.get(reader.getInteger("index")),
|
|
262
|
-
config,
|
|
263
|
-
this.readerListener(),
|
|
264
|
-
this.readerCallback(call)
|
|
265
|
-
);
|
|
255
|
+
.getInstance()
|
|
256
|
+
.connectUsbReader(this.readers.get(reader.getInteger("index")), config, this.readerListener(), this.readerCallback(call));
|
|
266
257
|
}
|
|
267
258
|
|
|
268
259
|
private void connectBluetoothReader(final PluginCall call) {
|
|
269
260
|
JSObject reader = call.getObject("reader");
|
|
270
261
|
BluetoothConnectionConfiguration config = new BluetoothConnectionConfiguration(this.locationId);
|
|
271
262
|
Terminal
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
this.readers.get(reader.getInteger("index")),
|
|
275
|
-
config,
|
|
276
|
-
this.readerListener(),
|
|
277
|
-
this.readerCallback(call)
|
|
278
|
-
);
|
|
263
|
+
.getInstance()
|
|
264
|
+
.connectBluetoothReader(this.readers.get(reader.getInteger("index")), config, this.readerListener(), this.readerCallback(call));
|
|
279
265
|
}
|
|
280
266
|
|
|
281
267
|
public void cancelDiscoverReaders(final PluginCall call) {
|
|
@@ -334,9 +320,7 @@ public class StripeTerminal extends Executor {
|
|
|
334
320
|
private final PaymentIntentCallback createPaymentIntentCallback = new PaymentIntentCallback() {
|
|
335
321
|
@Override
|
|
336
322
|
public void onSuccess(@NonNull PaymentIntent paymentIntent) {
|
|
337
|
-
CollectConfiguration collectConfig = new CollectConfiguration.Builder()
|
|
338
|
-
.updatePaymentIntent(true)
|
|
339
|
-
.build();
|
|
323
|
+
CollectConfiguration collectConfig = new CollectConfiguration.Builder().updatePaymentIntent(true).build();
|
|
340
324
|
collectCancelable = Terminal.getInstance().collectPaymentMethod(paymentIntent, collectPaymentMethodCallback, collectConfig);
|
|
341
325
|
}
|
|
342
326
|
|
|
@@ -355,12 +339,11 @@ public class StripeTerminal extends Executor {
|
|
|
355
339
|
notifyListeners(TerminalEnumEvent.Completed.getWebEventName(), emptyObject);
|
|
356
340
|
|
|
357
341
|
PaymentMethod pm = paymentIntent.getPaymentMethod();
|
|
358
|
-
CardPresentDetails card = pm.getCardPresentDetails() != null
|
|
359
|
-
? pm.getCardPresentDetails()
|
|
360
|
-
: pm.getInteracPresentDetails();
|
|
342
|
+
CardPresentDetails card = pm.getCardPresentDetails() != null ? pm.getCardPresentDetails() : pm.getInteracPresentDetails();
|
|
361
343
|
|
|
362
344
|
if (card != null) {
|
|
363
|
-
collectCall.resolve(
|
|
345
|
+
collectCall.resolve(
|
|
346
|
+
new JSObject()
|
|
364
347
|
.put("brand", card.getBrand())
|
|
365
348
|
.put("cardholderName", card.getCardholderName())
|
|
366
349
|
.put("country", card.getCountry())
|
|
@@ -373,7 +356,6 @@ public class StripeTerminal extends Executor {
|
|
|
373
356
|
.put("last4", card.getLast4())
|
|
374
357
|
.put("networks", card.getNetworks())
|
|
375
358
|
.put("readMethod", card.getReadMethod())
|
|
376
|
-
|
|
377
359
|
);
|
|
378
360
|
} else {
|
|
379
361
|
collectCall.resolve();
|
|
@@ -422,9 +404,7 @@ public class StripeTerminal extends Executor {
|
|
|
422
404
|
}
|
|
423
405
|
|
|
424
406
|
@Override
|
|
425
|
-
public void onReportLowBatteryWarning() {
|
|
426
|
-
|
|
427
|
-
}
|
|
407
|
+
public void onReportLowBatteryWarning() {}
|
|
428
408
|
|
|
429
409
|
@Override
|
|
430
410
|
public void onReportAvailableUpdate(@NotNull ReaderSoftwareUpdate update) {
|
package/android/src/main/java/com/getcapacitor/community/stripe/terminal/StripeTerminalPlugin.java
CHANGED
|
@@ -2,9 +2,7 @@ package com.getcapacitor.community.stripe.terminal;
|
|
|
2
2
|
|
|
3
3
|
import android.Manifest;
|
|
4
4
|
import android.os.Build;
|
|
5
|
-
|
|
6
5
|
import androidx.annotation.RequiresApi;
|
|
7
|
-
|
|
8
6
|
import com.getcapacitor.PermissionState;
|
|
9
7
|
import com.getcapacitor.Plugin;
|
|
10
8
|
import com.getcapacitor.PluginCall;
|
|
@@ -36,6 +34,11 @@ public class StripeTerminalPlugin extends Plugin {
|
|
|
36
34
|
this._initialize(call);
|
|
37
35
|
}
|
|
38
36
|
|
|
37
|
+
@PluginMethod
|
|
38
|
+
public void setConnectionToken(PluginCall call) {
|
|
39
|
+
this.implementation.setConnectionToken(call);
|
|
40
|
+
}
|
|
41
|
+
|
|
39
42
|
@PermissionCallback
|
|
40
43
|
private void locationPermsCallback(PluginCall call) throws TerminalException {
|
|
41
44
|
if (getPermissionState("location") == PermissionState.GRANTED) {
|
|
@@ -2,19 +2,20 @@ package com.getcapacitor.community.stripe.terminal;
|
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.util.Log;
|
|
5
|
-
|
|
6
5
|
import androidx.core.util.Supplier;
|
|
7
|
-
|
|
8
6
|
import com.android.volley.Request;
|
|
9
7
|
import com.android.volley.RequestQueue;
|
|
10
8
|
import com.android.volley.Response;
|
|
11
9
|
import com.android.volley.VolleyError;
|
|
12
10
|
import com.android.volley.toolbox.StringRequest;
|
|
13
11
|
import com.android.volley.toolbox.Volley;
|
|
12
|
+
import com.getcapacitor.JSObject;
|
|
13
|
+
import com.getcapacitor.PluginCall;
|
|
14
|
+
import com.google.android.gms.common.util.BiConsumer;
|
|
14
15
|
import com.stripe.stripeterminal.external.callable.ConnectionTokenCallback;
|
|
15
16
|
import com.stripe.stripeterminal.external.callable.ConnectionTokenProvider;
|
|
16
17
|
import com.stripe.stripeterminal.external.models.ConnectionTokenException;
|
|
17
|
-
|
|
18
|
+
import java.util.Objects;
|
|
18
19
|
import org.json.JSONException;
|
|
19
20
|
import org.json.JSONObject;
|
|
20
21
|
|
|
@@ -22,49 +23,82 @@ public class TokenProvider implements ConnectionTokenProvider {
|
|
|
22
23
|
|
|
23
24
|
protected Supplier<Context> contextSupplier;
|
|
24
25
|
protected final String tokenProviderEndpoint;
|
|
26
|
+
protected BiConsumer<String, JSObject> notifyListenersFunction;
|
|
27
|
+
ConnectionTokenCallback pendingCallback = null;
|
|
25
28
|
|
|
26
|
-
public TokenProvider(
|
|
29
|
+
public TokenProvider(
|
|
30
|
+
Supplier<Context> contextSupplier,
|
|
31
|
+
String tokenProviderEndpoint,
|
|
32
|
+
BiConsumer<String, JSObject> notifyListenersFunction
|
|
33
|
+
) {
|
|
27
34
|
this.contextSupplier = contextSupplier;
|
|
28
35
|
this.tokenProviderEndpoint = tokenProviderEndpoint;
|
|
36
|
+
this.notifyListenersFunction = notifyListenersFunction;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public void setConnectionToken(PluginCall call) {
|
|
40
|
+
String token = call.getString("token", "");
|
|
41
|
+
if (pendingCallback != null) {
|
|
42
|
+
if (Objects.equals(token, "")) {
|
|
43
|
+
pendingCallback.onFailure(new ConnectionTokenException("Missing `token` is empty"));
|
|
44
|
+
call.reject("Missing `token` is empty");
|
|
45
|
+
} else {
|
|
46
|
+
pendingCallback.onSuccess(token);
|
|
47
|
+
call.resolve();
|
|
48
|
+
}
|
|
49
|
+
pendingCallback = null;
|
|
50
|
+
} else {
|
|
51
|
+
call.reject("Stripe Terminal do not pending fetchConnectionToken");
|
|
52
|
+
}
|
|
29
53
|
}
|
|
30
54
|
|
|
31
55
|
@Override
|
|
32
56
|
public void fetchConnectionToken(ConnectionTokenCallback callback) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
57
|
+
if (Objects.equals(this.tokenProviderEndpoint, "")) {
|
|
58
|
+
pendingCallback = callback;
|
|
59
|
+
this.notifyListeners(TerminalEnumEvent.RequestedConnectionToken.getWebEventName(), new JSObject());
|
|
60
|
+
} else {
|
|
61
|
+
try {
|
|
62
|
+
RequestQueue queue = Volley.newRequestQueue(this.contextSupplier.get());
|
|
63
|
+
StringRequest postRequest = new StringRequest(
|
|
64
|
+
Request.Method.POST,
|
|
65
|
+
this.tokenProviderEndpoint,
|
|
66
|
+
new Response.Listener<String>() {
|
|
67
|
+
@Override
|
|
68
|
+
public void onResponse(String response) {
|
|
69
|
+
try {
|
|
70
|
+
JSONObject jsonObject = new JSONObject(response);
|
|
71
|
+
Log.d("TokenProvider", jsonObject.getString("secret"));
|
|
72
|
+
callback.onSuccess(jsonObject.getString("secret"));
|
|
73
|
+
} catch (JSONException e) {
|
|
74
|
+
callback.onFailure(new ConnectionTokenException(Objects.requireNonNull(e.getLocalizedMessage())));
|
|
75
|
+
throw new RuntimeException(e);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
new Response.ErrorListener() {
|
|
80
|
+
@Override
|
|
81
|
+
public void onErrorResponse(VolleyError e) {
|
|
46
82
|
throw new RuntimeException(e);
|
|
47
83
|
}
|
|
48
84
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// @Override
|
|
58
|
-
// protected Map<String,String> getParams(){
|
|
59
|
-
// Map<String,String> params = new HashMap<>();
|
|
60
|
-
// params.put("word","test");
|
|
61
|
-
// return params;
|
|
62
|
-
// }
|
|
63
|
-
};
|
|
85
|
+
) {
|
|
86
|
+
// @Override
|
|
87
|
+
// protected Map<String,String> getParams(){
|
|
88
|
+
// Map<String,String> params = new HashMap<>();
|
|
89
|
+
// params.put("word","test");
|
|
90
|
+
// return params;
|
|
91
|
+
// }
|
|
92
|
+
};
|
|
64
93
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
94
|
+
queue.add(postRequest);
|
|
95
|
+
} catch (Exception e) {
|
|
96
|
+
callback.onFailure(new ConnectionTokenException("Failed to fetch connection token", e));
|
|
97
|
+
}
|
|
68
98
|
}
|
|
69
99
|
}
|
|
100
|
+
|
|
101
|
+
protected void notifyListeners(String eventName, JSObject data) {
|
|
102
|
+
notifyListenersFunction.accept(eventName, data);
|
|
103
|
+
}
|
|
70
104
|
}
|
package/android/src/main/java/com/getcapacitor/community/stripe/terminal/helper/MetaData.java
CHANGED
|
@@ -3,9 +3,7 @@ package com.getcapacitor.community.stripe.terminal.helper;
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.content.pm.ApplicationInfo;
|
|
5
5
|
import android.content.pm.PackageManager;
|
|
6
|
-
|
|
7
6
|
import androidx.core.util.Supplier;
|
|
8
|
-
|
|
9
7
|
import com.getcapacitor.Logger;
|
|
10
8
|
|
|
11
9
|
public class MetaData {
|
package/dist/docs.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"methods": [
|
|
8
8
|
{
|
|
9
9
|
"name": "initialize",
|
|
10
|
-
"signature": "(options: { tokenProviderEndpoint
|
|
10
|
+
"signature": "(options: { tokenProviderEndpoint?: string; isTest: boolean; }) => Promise<void>",
|
|
11
11
|
"parameters": [
|
|
12
12
|
{
|
|
13
13
|
"name": "options",
|
|
14
14
|
"docs": "",
|
|
15
|
-
"type": "{ tokenProviderEndpoint
|
|
15
|
+
"type": "{ tokenProviderEndpoint?: string | undefined; isTest: boolean; }"
|
|
16
16
|
}
|
|
17
17
|
],
|
|
18
18
|
"returns": "Promise<void>",
|
|
@@ -40,6 +40,22 @@
|
|
|
40
40
|
],
|
|
41
41
|
"slug": "discoverreaders"
|
|
42
42
|
},
|
|
43
|
+
{
|
|
44
|
+
"name": "setConnectionToken",
|
|
45
|
+
"signature": "(options: { token: string; }) => Promise<void>",
|
|
46
|
+
"parameters": [
|
|
47
|
+
{
|
|
48
|
+
"name": "options",
|
|
49
|
+
"docs": "",
|
|
50
|
+
"type": "{ token: string; }"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"returns": "Promise<void>",
|
|
54
|
+
"tags": [],
|
|
55
|
+
"docs": "",
|
|
56
|
+
"complexTypes": [],
|
|
57
|
+
"slug": "setconnectiontoken"
|
|
58
|
+
},
|
|
43
59
|
{
|
|
44
60
|
"name": "connectReader",
|
|
45
61
|
"signature": "(options: { reader: ReaderInterface; }) => Promise<void>",
|
|
@@ -140,6 +156,30 @@
|
|
|
140
156
|
],
|
|
141
157
|
"slug": "addlistenerterminaleventsenumloaded"
|
|
142
158
|
},
|
|
159
|
+
{
|
|
160
|
+
"name": "addListener",
|
|
161
|
+
"signature": "(eventName: TerminalEventsEnum.RequestedConnectionToken, listenerFunc: () => void) => PluginListenerHandle",
|
|
162
|
+
"parameters": [
|
|
163
|
+
{
|
|
164
|
+
"name": "eventName",
|
|
165
|
+
"docs": "",
|
|
166
|
+
"type": "TerminalEventsEnum.RequestedConnectionToken"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"name": "listenerFunc",
|
|
170
|
+
"docs": "",
|
|
171
|
+
"type": "() => void"
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"returns": "PluginListenerHandle",
|
|
175
|
+
"tags": [],
|
|
176
|
+
"docs": "",
|
|
177
|
+
"complexTypes": [
|
|
178
|
+
"PluginListenerHandle",
|
|
179
|
+
"TerminalEventsEnum"
|
|
180
|
+
],
|
|
181
|
+
"slug": "addlistenerterminaleventsenumrequestedconnectiontoken"
|
|
182
|
+
},
|
|
143
183
|
{
|
|
144
184
|
"name": "addListener",
|
|
145
185
|
"signature": "(eventName: TerminalEventsEnum.DiscoveredReaders, listenerFunc: () => { reader: ReaderInterface; }) => PluginListenerHandle",
|
|
@@ -370,6 +410,12 @@
|
|
|
370
410
|
"value": "'terminalFailed'",
|
|
371
411
|
"tags": [],
|
|
372
412
|
"docs": ""
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"name": "RequestedConnectionToken",
|
|
416
|
+
"value": "'terminalRequestedConnectionToken'",
|
|
417
|
+
"tags": [],
|
|
418
|
+
"docs": ""
|
|
373
419
|
}
|
|
374
420
|
]
|
|
375
421
|
}
|
|
@@ -14,7 +14,7 @@ export declare type ReaderInterface = {
|
|
|
14
14
|
export * from './events.enum';
|
|
15
15
|
export interface StripeTerminalPlugin {
|
|
16
16
|
initialize(options: {
|
|
17
|
-
tokenProviderEndpoint
|
|
17
|
+
tokenProviderEndpoint?: string;
|
|
18
18
|
isTest: boolean;
|
|
19
19
|
}): Promise<void>;
|
|
20
20
|
discoverReaders(options: {
|
|
@@ -23,6 +23,9 @@ export interface StripeTerminalPlugin {
|
|
|
23
23
|
}): Promise<{
|
|
24
24
|
readers: ReaderInterface[];
|
|
25
25
|
}>;
|
|
26
|
+
setConnectionToken(options: {
|
|
27
|
+
token: string;
|
|
28
|
+
}): Promise<void>;
|
|
26
29
|
connectReader(options: {
|
|
27
30
|
reader: ReaderInterface;
|
|
28
31
|
}): Promise<void>;
|
|
@@ -36,6 +39,7 @@ export interface StripeTerminalPlugin {
|
|
|
36
39
|
}): Promise<void>;
|
|
37
40
|
cancelCollect(): Promise<void>;
|
|
38
41
|
addListener(eventName: TerminalEventsEnum.Loaded, listenerFunc: () => void): PluginListenerHandle;
|
|
42
|
+
addListener(eventName: TerminalEventsEnum.RequestedConnectionToken, listenerFunc: () => void): PluginListenerHandle;
|
|
39
43
|
addListener(eventName: TerminalEventsEnum.DiscoveredReaders, listenerFunc: () => {
|
|
40
44
|
reader: ReaderInterface;
|
|
41
45
|
}): PluginListenerHandle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;IACrB,+CAAuB,CAAA;IACvB,mCAAW,CAAA;IACX,+CAAuB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAOD,cAAc,eAAe,CAAC","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\nimport type { TerminalEventsEnum } from './events.enum';\n\nexport enum TerminalConnectTypes {\n Simulated = 'simulated',\n Internet = 'internet',\n Bluetooth = 'bluetooth',\n Usb = 'usb',\n TapToPay = 'tap-to-pay',\n}\n\nexport type ReaderInterface = {\n index: number;\n serialNumber: string;\n};\n\nexport * from './events.enum';\nexport interface StripeTerminalPlugin {\n initialize(options: {\n tokenProviderEndpoint
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;IACrB,+CAAuB,CAAA;IACvB,mCAAW,CAAA;IACX,+CAAuB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAOD,cAAc,eAAe,CAAC","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\nimport type { TerminalEventsEnum } from './events.enum';\n\nexport enum TerminalConnectTypes {\n Simulated = 'simulated',\n Internet = 'internet',\n Bluetooth = 'bluetooth',\n Usb = 'usb',\n TapToPay = 'tap-to-pay',\n}\n\nexport type ReaderInterface = {\n index: number;\n serialNumber: string;\n};\n\nexport * from './events.enum';\nexport interface StripeTerminalPlugin {\n initialize(options: {\n tokenProviderEndpoint?: string;\n isTest: boolean;\n }): Promise<void>;\n discoverReaders(options: {\n type: TerminalConnectTypes;\n locationId?: string;\n }): Promise<{\n readers: ReaderInterface[];\n }>;\n setConnectionToken(options: { token: string }): Promise<void>;\n connectReader(options: { reader: ReaderInterface }): Promise<void>;\n getConnectedReader(): Promise<{ reader: ReaderInterface | null }>;\n disconnectReader(): Promise<void>;\n cancelDiscoverReaders(): Promise<void>;\n collect(options: { paymentIntent: string }): Promise<void>;\n cancelCollect(): Promise<void>;\n addListener(\n eventName: TerminalEventsEnum.Loaded,\n listenerFunc: () => void,\n ): PluginListenerHandle;\n addListener(\n eventName: TerminalEventsEnum.RequestedConnectionToken,\n listenerFunc: () => void,\n ): PluginListenerHandle;\n addListener(\n eventName: TerminalEventsEnum.DiscoveredReaders,\n listenerFunc: () => { reader: ReaderInterface },\n ): PluginListenerHandle;\n addListener(\n eventName: TerminalEventsEnum.ConnectedReader,\n listenerFunc: () => void,\n ): PluginListenerHandle;\n addListener(\n eventName: TerminalEventsEnum.Completed,\n listenerFunc: () => void,\n ): PluginListenerHandle;\n addListener(\n eventName: TerminalEventsEnum.Canceled,\n listenerFunc: () => void,\n ): PluginListenerHandle;\n addListener(\n eventName: TerminalEventsEnum.Failed,\n listenerFunc: () => void,\n ): PluginListenerHandle;\n}\n"]}
|
|
@@ -6,6 +6,7 @@ export declare enum TerminalEventsEnum {
|
|
|
6
6
|
DisconnectedReader = "terminalDisconnectedReader",
|
|
7
7
|
Completed = "terminalCompleted",
|
|
8
8
|
Canceled = "terminalCanceled",
|
|
9
|
-
Failed = "terminalFailed"
|
|
9
|
+
Failed = "terminalFailed",
|
|
10
|
+
RequestedConnectionToken = "terminalRequestedConnectionToken"
|
|
10
11
|
}
|
|
11
12
|
export declare type TerminalResultInterface = TerminalEventsEnum.Completed | TerminalEventsEnum.Canceled | TerminalEventsEnum.Failed;
|
package/dist/esm/events.enum.js
CHANGED
|
@@ -8,5 +8,6 @@ export var TerminalEventsEnum;
|
|
|
8
8
|
TerminalEventsEnum["Completed"] = "terminalCompleted";
|
|
9
9
|
TerminalEventsEnum["Canceled"] = "terminalCanceled";
|
|
10
10
|
TerminalEventsEnum["Failed"] = "terminalFailed";
|
|
11
|
+
TerminalEventsEnum["RequestedConnectionToken"] = "terminalRequestedConnectionToken";
|
|
11
12
|
})(TerminalEventsEnum || (TerminalEventsEnum = {}));
|
|
12
13
|
//# sourceMappingURL=events.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.enum.js","sourceRoot":"","sources":["../../src/events.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"events.enum.js","sourceRoot":"","sources":["../../src/events.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,qEAA+C,CAAA;IAC/C,iFAA2D,CAAA;IAC3D,iEAA2C,CAAA;IAC3C,uEAAiD,CAAA;IACjD,qDAA+B,CAAA;IAC/B,mDAA6B,CAAA;IAC7B,+CAAyB,CAAA;IACzB,mFAA6D,CAAA;AAC/D,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,QAU7B","sourcesContent":["export enum TerminalEventsEnum {\n Loaded = 'terminalLoaded',\n DiscoveredReaders = 'terminalDiscoveredReaders',\n CancelDiscoveredReaders = 'terminalCancelDiscoveredReaders',\n ConnectedReader = 'terminalConnectedReader',\n DisconnectedReader = 'terminalDisconnectedReader',\n Completed = 'terminalCompleted',\n Canceled = 'terminalCanceled',\n Failed = 'terminalFailed',\n RequestedConnectionToken = 'terminalRequestedConnectionToken',\n}\n\nexport type TerminalResultInterface =\n | TerminalEventsEnum.Completed\n | TerminalEventsEnum.Canceled\n | TerminalEventsEnum.Failed;\n"]}
|
package/dist/esm/web.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare class StripeTerminalWeb extends WebPlugin implements StripeTermin
|
|
|
12
12
|
readers: ReaderInterface[];
|
|
13
13
|
}>;
|
|
14
14
|
cancelDiscoverReaders(): Promise<void>;
|
|
15
|
+
setConnectionToken(): Promise<void>;
|
|
15
16
|
connectReader(options: {
|
|
16
17
|
reader: ReaderInterface;
|
|
17
18
|
}): Promise<void>;
|
package/dist/esm/web.js
CHANGED
|
@@ -18,6 +18,9 @@ export class StripeTerminalWeb extends WebPlugin {
|
|
|
18
18
|
console.log('cancelDiscoverReaders');
|
|
19
19
|
this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);
|
|
20
20
|
}
|
|
21
|
+
async setConnectionToken() {
|
|
22
|
+
console.log('setConnectionToken');
|
|
23
|
+
}
|
|
21
24
|
async connectReader(options) {
|
|
22
25
|
console.log('connectReader', options);
|
|
23
26
|
this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);
|
package/dist/esm/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,OAAO,iBACX,SAAQ,SAAS;IAGjB,KAAK,CAAC,UAAU,CAAC,OAGhB;QACC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAGrB;QAGC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;YACzD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAoC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO;YACL,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAkC;QAC9C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type {\n StripeTerminalPlugin,\n TerminalConnectTypes,\n ReaderInterface,\n} from './definitions';\nimport { TerminalEventsEnum } from './events.enum';\n\nexport class StripeTerminalWeb\n extends WebPlugin\n implements StripeTerminalPlugin\n{\n async initialize(options: {\n tokenProviderEndpoint: string;\n isTest: boolean;\n }): Promise<void> {\n console.log('initialize', options);\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n\n async discoverReaders(options: {\n type: TerminalConnectTypes;\n locationId?: string;\n }): Promise<{\n readers: ReaderInterface[];\n }> {\n console.log('discoverReaders', options);\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: [],\n });\n return {\n readers: [],\n };\n }\n\n async cancelDiscoverReaders(): Promise<void> {\n console.log('cancelDiscoverReaders');\n this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);\n }\n\n async connectReader(options: { reader: ReaderInterface }): Promise<void> {\n console.log('connectReader', options);\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n\n async getConnectedReader(): Promise<{ reader: ReaderInterface | null }> {\n return {\n reader: null,\n };\n }\n\n async disconnectReader(): Promise<void> {\n console.log('disconnectReader');\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n\n async collect(options: { paymentIntent: string }): Promise<void> {\n console.log('collect', options);\n this.notifyListeners(TerminalEventsEnum.Completed, null);\n }\n\n async cancelCollect(): Promise<void> {\n console.log('cancelCollect');\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,OAAO,iBACX,SAAQ,SAAS;IAGjB,KAAK,CAAC,UAAU,CAAC,OAGhB;QACC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAGrB;QAGC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;YACzD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAoC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO;YACL,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAkC;QAC9C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type {\n StripeTerminalPlugin,\n TerminalConnectTypes,\n ReaderInterface,\n} from './definitions';\nimport { TerminalEventsEnum } from './events.enum';\n\nexport class StripeTerminalWeb\n extends WebPlugin\n implements StripeTerminalPlugin\n{\n async initialize(options: {\n tokenProviderEndpoint: string;\n isTest: boolean;\n }): Promise<void> {\n console.log('initialize', options);\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n\n async discoverReaders(options: {\n type: TerminalConnectTypes;\n locationId?: string;\n }): Promise<{\n readers: ReaderInterface[];\n }> {\n console.log('discoverReaders', options);\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: [],\n });\n return {\n readers: [],\n };\n }\n\n async cancelDiscoverReaders(): Promise<void> {\n console.log('cancelDiscoverReaders');\n this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);\n }\n\n async setConnectionToken(): Promise<void> {\n console.log('setConnectionToken');\n }\n\n async connectReader(options: { reader: ReaderInterface }): Promise<void> {\n console.log('connectReader', options);\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n\n async getConnectedReader(): Promise<{ reader: ReaderInterface | null }> {\n return {\n reader: null,\n };\n }\n\n async disconnectReader(): Promise<void> {\n console.log('disconnectReader');\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n\n async collect(options: { paymentIntent: string }): Promise<void> {\n console.log('collect', options);\n this.notifyListeners(TerminalEventsEnum.Completed, null);\n }\n\n async cancelCollect(): Promise<void> {\n console.log('cancelCollect');\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n}\n"]}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -14,6 +14,7 @@ exports.TerminalEventsEnum = void 0;
|
|
|
14
14
|
TerminalEventsEnum["Completed"] = "terminalCompleted";
|
|
15
15
|
TerminalEventsEnum["Canceled"] = "terminalCanceled";
|
|
16
16
|
TerminalEventsEnum["Failed"] = "terminalFailed";
|
|
17
|
+
TerminalEventsEnum["RequestedConnectionToken"] = "terminalRequestedConnectionToken";
|
|
17
18
|
})(exports.TerminalEventsEnum || (exports.TerminalEventsEnum = {}));
|
|
18
19
|
|
|
19
20
|
exports.TerminalConnectTypes = void 0;
|
|
@@ -47,6 +48,9 @@ class StripeTerminalWeb extends core.WebPlugin {
|
|
|
47
48
|
console.log('cancelDiscoverReaders');
|
|
48
49
|
this.notifyListeners(exports.TerminalEventsEnum.CancelDiscoveredReaders, null);
|
|
49
50
|
}
|
|
51
|
+
async setConnectionToken() {
|
|
52
|
+
console.log('setConnectionToken');
|
|
53
|
+
}
|
|
50
54
|
async connectReader(options) {
|
|
51
55
|
console.log('connectReader', options);
|
|
52
56
|
this.notifyListeners(exports.TerminalEventsEnum.ConnectedReader, null);
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/events.enum.js","esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["export var TerminalEventsEnum;\n(function (TerminalEventsEnum) {\n TerminalEventsEnum[\"Loaded\"] = \"terminalLoaded\";\n TerminalEventsEnum[\"DiscoveredReaders\"] = \"terminalDiscoveredReaders\";\n TerminalEventsEnum[\"CancelDiscoveredReaders\"] = \"terminalCancelDiscoveredReaders\";\n TerminalEventsEnum[\"ConnectedReader\"] = \"terminalConnectedReader\";\n TerminalEventsEnum[\"DisconnectedReader\"] = \"terminalDisconnectedReader\";\n TerminalEventsEnum[\"Completed\"] = \"terminalCompleted\";\n TerminalEventsEnum[\"Canceled\"] = \"terminalCanceled\";\n TerminalEventsEnum[\"Failed\"] = \"terminalFailed\";\n})(TerminalEventsEnum || (TerminalEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","export var TerminalConnectTypes;\n(function (TerminalConnectTypes) {\n TerminalConnectTypes[\"Simulated\"] = \"simulated\";\n TerminalConnectTypes[\"Internet\"] = \"internet\";\n TerminalConnectTypes[\"Bluetooth\"] = \"bluetooth\";\n TerminalConnectTypes[\"Usb\"] = \"usb\";\n TerminalConnectTypes[\"TapToPay\"] = \"tap-to-pay\";\n})(TerminalConnectTypes || (TerminalConnectTypes = {}));\nexport * from './events.enum';\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst StripeTerminal = registerPlugin('StripeTerminal', {\n web: () => import('./web').then(m => new m.StripeTerminalWeb()),\n});\nexport * from './definitions';\nexport { StripeTerminal };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport { TerminalEventsEnum } from './events.enum';\nexport class StripeTerminalWeb extends WebPlugin {\n async initialize(options) {\n console.log('initialize', options);\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n async discoverReaders(options) {\n console.log('discoverReaders', options);\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: [],\n });\n return {\n readers: [],\n };\n }\n async cancelDiscoverReaders() {\n console.log('cancelDiscoverReaders');\n this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);\n }\n async connectReader(options) {\n console.log('connectReader', options);\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n async getConnectedReader() {\n return {\n reader: null,\n };\n }\n async disconnectReader() {\n console.log('disconnectReader');\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n async collect(options) {\n console.log('collect', options);\n this.notifyListeners(TerminalEventsEnum.Completed, null);\n }\n async cancelCollect() {\n console.log('cancelCollect');\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["TerminalEventsEnum","TerminalConnectTypes","registerPlugin","WebPlugin"],"mappings":";;;;;;AAAWA,oCAAmB;AAC9B,CAAC,UAAU,kBAAkB,EAAE;AAC/B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;AACpD,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,2BAA2B,CAAC;AAC1E,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,iCAAiC,CAAC;AACtF,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,yBAAyB,CAAC;AACtE,IAAI,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,4BAA4B,CAAC;AAC5E,IAAI,kBAAkB,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC;AAC1D,IAAI,kBAAkB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC;AACxD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;AACpD,CAAC,EAAEA,0BAAkB,KAAKA,0BAAkB,GAAG,EAAE,CAAC,CAAC;;
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/events.enum.js","esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["export var TerminalEventsEnum;\n(function (TerminalEventsEnum) {\n TerminalEventsEnum[\"Loaded\"] = \"terminalLoaded\";\n TerminalEventsEnum[\"DiscoveredReaders\"] = \"terminalDiscoveredReaders\";\n TerminalEventsEnum[\"CancelDiscoveredReaders\"] = \"terminalCancelDiscoveredReaders\";\n TerminalEventsEnum[\"ConnectedReader\"] = \"terminalConnectedReader\";\n TerminalEventsEnum[\"DisconnectedReader\"] = \"terminalDisconnectedReader\";\n TerminalEventsEnum[\"Completed\"] = \"terminalCompleted\";\n TerminalEventsEnum[\"Canceled\"] = \"terminalCanceled\";\n TerminalEventsEnum[\"Failed\"] = \"terminalFailed\";\n TerminalEventsEnum[\"RequestedConnectionToken\"] = \"terminalRequestedConnectionToken\";\n})(TerminalEventsEnum || (TerminalEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","export var TerminalConnectTypes;\n(function (TerminalConnectTypes) {\n TerminalConnectTypes[\"Simulated\"] = \"simulated\";\n TerminalConnectTypes[\"Internet\"] = \"internet\";\n TerminalConnectTypes[\"Bluetooth\"] = \"bluetooth\";\n TerminalConnectTypes[\"Usb\"] = \"usb\";\n TerminalConnectTypes[\"TapToPay\"] = \"tap-to-pay\";\n})(TerminalConnectTypes || (TerminalConnectTypes = {}));\nexport * from './events.enum';\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst StripeTerminal = registerPlugin('StripeTerminal', {\n web: () => import('./web').then(m => new m.StripeTerminalWeb()),\n});\nexport * from './definitions';\nexport { StripeTerminal };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport { TerminalEventsEnum } from './events.enum';\nexport class StripeTerminalWeb extends WebPlugin {\n async initialize(options) {\n console.log('initialize', options);\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n async discoverReaders(options) {\n console.log('discoverReaders', options);\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: [],\n });\n return {\n readers: [],\n };\n }\n async cancelDiscoverReaders() {\n console.log('cancelDiscoverReaders');\n this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);\n }\n async setConnectionToken() {\n console.log('setConnectionToken');\n }\n async connectReader(options) {\n console.log('connectReader', options);\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n async getConnectedReader() {\n return {\n reader: null,\n };\n }\n async disconnectReader() {\n console.log('disconnectReader');\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n async collect(options) {\n console.log('collect', options);\n this.notifyListeners(TerminalEventsEnum.Completed, null);\n }\n async cancelCollect() {\n console.log('cancelCollect');\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["TerminalEventsEnum","TerminalConnectTypes","registerPlugin","WebPlugin"],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
|
@@ -11,6 +11,7 @@ var capacitorStripeTerminal = (function (exports, core) {
|
|
|
11
11
|
TerminalEventsEnum["Completed"] = "terminalCompleted";
|
|
12
12
|
TerminalEventsEnum["Canceled"] = "terminalCanceled";
|
|
13
13
|
TerminalEventsEnum["Failed"] = "terminalFailed";
|
|
14
|
+
TerminalEventsEnum["RequestedConnectionToken"] = "terminalRequestedConnectionToken";
|
|
14
15
|
})(exports.TerminalEventsEnum || (exports.TerminalEventsEnum = {}));
|
|
15
16
|
|
|
16
17
|
exports.TerminalConnectTypes = void 0;
|
|
@@ -44,6 +45,9 @@ var capacitorStripeTerminal = (function (exports, core) {
|
|
|
44
45
|
console.log('cancelDiscoverReaders');
|
|
45
46
|
this.notifyListeners(exports.TerminalEventsEnum.CancelDiscoveredReaders, null);
|
|
46
47
|
}
|
|
48
|
+
async setConnectionToken() {
|
|
49
|
+
console.log('setConnectionToken');
|
|
50
|
+
}
|
|
47
51
|
async connectReader(options) {
|
|
48
52
|
console.log('connectReader', options);
|
|
49
53
|
this.notifyListeners(exports.TerminalEventsEnum.ConnectedReader, null);
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/events.enum.js","esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["export var TerminalEventsEnum;\n(function (TerminalEventsEnum) {\n TerminalEventsEnum[\"Loaded\"] = \"terminalLoaded\";\n TerminalEventsEnum[\"DiscoveredReaders\"] = \"terminalDiscoveredReaders\";\n TerminalEventsEnum[\"CancelDiscoveredReaders\"] = \"terminalCancelDiscoveredReaders\";\n TerminalEventsEnum[\"ConnectedReader\"] = \"terminalConnectedReader\";\n TerminalEventsEnum[\"DisconnectedReader\"] = \"terminalDisconnectedReader\";\n TerminalEventsEnum[\"Completed\"] = \"terminalCompleted\";\n TerminalEventsEnum[\"Canceled\"] = \"terminalCanceled\";\n TerminalEventsEnum[\"Failed\"] = \"terminalFailed\";\n})(TerminalEventsEnum || (TerminalEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","export var TerminalConnectTypes;\n(function (TerminalConnectTypes) {\n TerminalConnectTypes[\"Simulated\"] = \"simulated\";\n TerminalConnectTypes[\"Internet\"] = \"internet\";\n TerminalConnectTypes[\"Bluetooth\"] = \"bluetooth\";\n TerminalConnectTypes[\"Usb\"] = \"usb\";\n TerminalConnectTypes[\"TapToPay\"] = \"tap-to-pay\";\n})(TerminalConnectTypes || (TerminalConnectTypes = {}));\nexport * from './events.enum';\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst StripeTerminal = registerPlugin('StripeTerminal', {\n web: () => import('./web').then(m => new m.StripeTerminalWeb()),\n});\nexport * from './definitions';\nexport { StripeTerminal };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport { TerminalEventsEnum } from './events.enum';\nexport class StripeTerminalWeb extends WebPlugin {\n async initialize(options) {\n console.log('initialize', options);\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n async discoverReaders(options) {\n console.log('discoverReaders', options);\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: [],\n });\n return {\n readers: [],\n };\n }\n async cancelDiscoverReaders() {\n console.log('cancelDiscoverReaders');\n this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);\n }\n async connectReader(options) {\n console.log('connectReader', options);\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n async getConnectedReader() {\n return {\n reader: null,\n };\n }\n async disconnectReader() {\n console.log('disconnectReader');\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n async collect(options) {\n console.log('collect', options);\n this.notifyListeners(TerminalEventsEnum.Completed, null);\n }\n async cancelCollect() {\n console.log('cancelCollect');\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["TerminalEventsEnum","TerminalConnectTypes","registerPlugin","WebPlugin"],"mappings":";;;AAAWA,wCAAmB;IAC9B,CAAC,UAAU,kBAAkB,EAAE;IAC/B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;IACpD,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,2BAA2B,CAAC;IAC1E,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,iCAAiC,CAAC;IACtF,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,yBAAyB,CAAC;IACtE,IAAI,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,4BAA4B,CAAC;IAC5E,IAAI,kBAAkB,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC;IAC1D,IAAI,kBAAkB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC;IACxD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;IACpD,CAAC,EAAEA,0BAAkB,KAAKA,0BAAkB,GAAG,EAAE,CAAC,CAAC;;
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/events.enum.js","esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["export var TerminalEventsEnum;\n(function (TerminalEventsEnum) {\n TerminalEventsEnum[\"Loaded\"] = \"terminalLoaded\";\n TerminalEventsEnum[\"DiscoveredReaders\"] = \"terminalDiscoveredReaders\";\n TerminalEventsEnum[\"CancelDiscoveredReaders\"] = \"terminalCancelDiscoveredReaders\";\n TerminalEventsEnum[\"ConnectedReader\"] = \"terminalConnectedReader\";\n TerminalEventsEnum[\"DisconnectedReader\"] = \"terminalDisconnectedReader\";\n TerminalEventsEnum[\"Completed\"] = \"terminalCompleted\";\n TerminalEventsEnum[\"Canceled\"] = \"terminalCanceled\";\n TerminalEventsEnum[\"Failed\"] = \"terminalFailed\";\n TerminalEventsEnum[\"RequestedConnectionToken\"] = \"terminalRequestedConnectionToken\";\n})(TerminalEventsEnum || (TerminalEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","export var TerminalConnectTypes;\n(function (TerminalConnectTypes) {\n TerminalConnectTypes[\"Simulated\"] = \"simulated\";\n TerminalConnectTypes[\"Internet\"] = \"internet\";\n TerminalConnectTypes[\"Bluetooth\"] = \"bluetooth\";\n TerminalConnectTypes[\"Usb\"] = \"usb\";\n TerminalConnectTypes[\"TapToPay\"] = \"tap-to-pay\";\n})(TerminalConnectTypes || (TerminalConnectTypes = {}));\nexport * from './events.enum';\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst StripeTerminal = registerPlugin('StripeTerminal', {\n web: () => import('./web').then(m => new m.StripeTerminalWeb()),\n});\nexport * from './definitions';\nexport { StripeTerminal };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport { TerminalEventsEnum } from './events.enum';\nexport class StripeTerminalWeb extends WebPlugin {\n async initialize(options) {\n console.log('initialize', options);\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n async discoverReaders(options) {\n console.log('discoverReaders', options);\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: [],\n });\n return {\n readers: [],\n };\n }\n async cancelDiscoverReaders() {\n console.log('cancelDiscoverReaders');\n this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);\n }\n async setConnectionToken() {\n console.log('setConnectionToken');\n }\n async connectReader(options) {\n console.log('connectReader', options);\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n async getConnectedReader() {\n return {\n reader: null,\n };\n }\n async disconnectReader() {\n console.log('disconnectReader');\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n async collect(options) {\n console.log('collect', options);\n this.notifyListeners(TerminalEventsEnum.Completed, null);\n }\n async cancelCollect() {\n console.log('cancelCollect');\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["TerminalEventsEnum","TerminalConnectTypes","registerPlugin","WebPlugin"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import StripeTerminal
|
|
|
5
5
|
public class StripeTerminal: NSObject, DiscoveryDelegate, LocalMobileReaderDelegate, BluetoothReaderDelegate {
|
|
6
6
|
|
|
7
7
|
weak var plugin: StripeTerminalPlugin?
|
|
8
|
+
private let apiClient = APIClient()
|
|
8
9
|
var discoverCancelable: Cancelable?
|
|
9
10
|
var discoverCall: CAPPluginCall?
|
|
10
11
|
var locationId: String?
|
|
@@ -18,13 +19,18 @@ public class StripeTerminal: NSObject, DiscoveryDelegate, LocalMobileReaderDeleg
|
|
|
18
19
|
@objc public func initialize(_ call: CAPPluginCall) {
|
|
19
20
|
self.isTest = call.getBool("isTest", true)
|
|
20
21
|
if self.isInitialize == false {
|
|
21
|
-
|
|
22
|
+
apiClient.initialize(plugin: self.plugin, tokenProviderEndpoint: call.getString("tokenProviderEndpoint", ""))
|
|
23
|
+
Terminal.setTokenProvider(apiClient)
|
|
22
24
|
}
|
|
23
25
|
self.isInitialize = true
|
|
24
26
|
self.plugin?.notifyListeners(TerminalEvents.Loaded.rawValue, data: [:])
|
|
25
27
|
call.resolve()
|
|
26
28
|
}
|
|
27
29
|
|
|
30
|
+
func setConnectionToken(_ call: CAPPluginCall) {
|
|
31
|
+
self.apiClient.setConnectionToken(call)
|
|
32
|
+
}
|
|
33
|
+
|
|
28
34
|
func discoverReaders(_ call: CAPPluginCall) throws {
|
|
29
35
|
let connectType = call.getString("type")
|
|
30
36
|
let config: DiscoveryConfiguration
|
|
@@ -36,18 +42,17 @@ public class StripeTerminal: NSObject, DiscoveryDelegate, LocalMobileReaderDeleg
|
|
|
36
42
|
} else if TerminalConnectTypes.Internet.rawValue == connectType {
|
|
37
43
|
self.type = .internet
|
|
38
44
|
config = try InternetDiscoveryConfigurationBuilder()
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
45
|
+
.setLocationId(self.locationId)
|
|
46
|
+
.setSimulated(self.isTest!)
|
|
47
|
+
.build()
|
|
48
|
+
} else if TerminalConnectTypes.Bluetooth.rawValue == connectType {
|
|
43
49
|
self.type = DiscoveryMethod.bluetoothScan
|
|
44
50
|
config = try BluetoothScanDiscoveryConfigurationBuilder().setSimulated(self.isTest!).build()
|
|
45
51
|
} else {
|
|
46
52
|
call.unimplemented(connectType! + " is not support now")
|
|
47
53
|
return
|
|
48
54
|
}
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
|
|
51
56
|
self.discoverCall = call
|
|
52
57
|
self.discoverCancelable = Terminal.shared.discoverReaders(config, delegate: self) { error in
|
|
53
58
|
if let error = error {
|
|
@@ -134,7 +139,6 @@ public class StripeTerminal: NSObject, DiscoveryDelegate, LocalMobileReaderDeleg
|
|
|
134
139
|
let connectionConfig = try! LocalMobileConnectionConfigurationBuilder.init(locationId: self.locationId!).build()
|
|
135
140
|
let reader: JSObject = call.getObject("reader")!
|
|
136
141
|
let index: Int = reader["index"] as! Int
|
|
137
|
-
|
|
138
142
|
|
|
139
143
|
Terminal.shared.connectLocalMobileReader(self.readers![index], delegate: self, connectionConfig: connectionConfig) { reader, error in
|
|
140
144
|
if let reader = reader {
|
|
@@ -162,7 +166,7 @@ public class StripeTerminal: NSObject, DiscoveryDelegate, LocalMobileReaderDeleg
|
|
|
162
166
|
}
|
|
163
167
|
}
|
|
164
168
|
}
|
|
165
|
-
|
|
169
|
+
|
|
166
170
|
private func connectBluetoothReader(_ call: CAPPluginCall) {
|
|
167
171
|
let config = try! BluetoothConnectionConfigurationBuilder(locationId: "{{LOCATION_ID}}").build()
|
|
168
172
|
let reader: JSObject = call.getObject("reader")!
|
|
@@ -211,10 +215,9 @@ public class StripeTerminal: NSObject, DiscoveryDelegate, LocalMobileReaderDeleg
|
|
|
211
215
|
}
|
|
212
216
|
call.resolve()
|
|
213
217
|
}
|
|
214
|
-
|
|
215
218
|
|
|
216
219
|
// localMobile
|
|
217
|
-
|
|
220
|
+
|
|
218
221
|
public func localMobileReader(_ reader: Reader, didStartInstallingUpdate update: ReaderSoftwareUpdate, cancelable: Cancelable?) {
|
|
219
222
|
// TODO
|
|
220
223
|
}
|
|
@@ -234,74 +237,100 @@ public class StripeTerminal: NSObject, DiscoveryDelegate, LocalMobileReaderDeleg
|
|
|
234
237
|
public func localMobileReader(_ reader: Reader, didRequestReaderDisplayMessage displayMessage: ReaderDisplayMessage) {
|
|
235
238
|
// TODO
|
|
236
239
|
}
|
|
237
|
-
|
|
238
|
-
|
|
240
|
+
|
|
239
241
|
// bluetooth
|
|
240
|
-
|
|
242
|
+
|
|
241
243
|
public func reader(_: Reader, didReportAvailableUpdate update: ReaderSoftwareUpdate) {
|
|
242
244
|
// TODO
|
|
243
245
|
}
|
|
244
|
-
|
|
246
|
+
|
|
245
247
|
public func reader(_: Reader, didStartInstallingUpdate update: ReaderSoftwareUpdate, cancelable: Cancelable?) {
|
|
246
248
|
// TODO
|
|
247
249
|
}
|
|
248
|
-
|
|
250
|
+
|
|
249
251
|
public func reader(_: Reader, didReportReaderSoftwareUpdateProgress progress: Float) {
|
|
250
252
|
// TODO
|
|
251
253
|
}
|
|
252
|
-
|
|
254
|
+
|
|
253
255
|
public func reader(_: Reader, didFinishInstallingUpdate update: ReaderSoftwareUpdate?, error: Error?) {
|
|
254
256
|
// TODO
|
|
255
257
|
}
|
|
256
|
-
|
|
258
|
+
|
|
257
259
|
public func reader(_: Reader, didRequestReaderInput inputOptions: ReaderInputOptions = []) {
|
|
258
260
|
// TODO
|
|
259
261
|
}
|
|
260
|
-
|
|
262
|
+
|
|
261
263
|
public func reader(_: Reader, didRequestReaderDisplayMessage displayMessage: ReaderDisplayMessage) {
|
|
262
264
|
// TODO
|
|
263
265
|
}
|
|
264
266
|
}
|
|
265
267
|
|
|
266
268
|
class APIClient: ConnectionTokenProvider {
|
|
269
|
+
weak var plugin: StripeTerminalPlugin?
|
|
267
270
|
var tokenProviderEndpoint: String = ""
|
|
271
|
+
private var pendingCompletion: ConnectionTokenCompletionBlock?
|
|
268
272
|
|
|
269
|
-
|
|
273
|
+
func initialize(plugin: StripeTerminalPlugin?, tokenProviderEndpoint: String) {
|
|
274
|
+
self.plugin = plugin
|
|
270
275
|
self.tokenProviderEndpoint = tokenProviderEndpoint
|
|
271
276
|
}
|
|
272
277
|
|
|
278
|
+
func setConnectionToken(_ call: CAPPluginCall) {
|
|
279
|
+
let token = call.getString("token", "")
|
|
280
|
+
if let completion = pendingCompletion {
|
|
281
|
+
if token == "" {
|
|
282
|
+
let error = NSError(domain: "com.getcapacitor.community.stripe.terminal",
|
|
283
|
+
code: 3000,
|
|
284
|
+
userInfo: [NSLocalizedDescriptionKey: "Missing `token` is empty"])
|
|
285
|
+
completion(nil, error)
|
|
286
|
+
call.reject("Missing `token` is empty")
|
|
287
|
+
} else {
|
|
288
|
+
completion(token, nil)
|
|
289
|
+
call.resolve()
|
|
290
|
+
}
|
|
291
|
+
pendingCompletion = nil
|
|
292
|
+
} else {
|
|
293
|
+
call.reject("Stripe Terminal do not pending fetchConnectionToken")
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
273
297
|
// Fetches a ConnectionToken from your backend
|
|
274
298
|
func fetchConnectionToken(_ completion: @escaping ConnectionTokenCompletionBlock) {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
let
|
|
291
|
-
|
|
292
|
-
|
|
299
|
+
if tokenProviderEndpoint == "" {
|
|
300
|
+
pendingCompletion = completion
|
|
301
|
+
self.plugin?.notifyListeners(TerminalEvents.RequestedConnectionToken.rawValue, data: [:])
|
|
302
|
+
} else {
|
|
303
|
+
let config = URLSessionConfiguration.default
|
|
304
|
+
let session = URLSession(configuration: config)
|
|
305
|
+
guard let url = URL(string: tokenProviderEndpoint) else {
|
|
306
|
+
fatalError("Invalid backend URL")
|
|
307
|
+
}
|
|
308
|
+
var request = URLRequest(url: url)
|
|
309
|
+
request.httpMethod = "POST"
|
|
310
|
+
let task = session.dataTask(with: request) { (data, _, error) in
|
|
311
|
+
if let data = data {
|
|
312
|
+
do {
|
|
313
|
+
// Warning: casting using `as? [String: String]` looks simpler, but isn't safe:
|
|
314
|
+
let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
|
|
315
|
+
if let secret = json?["secret"] as? String {
|
|
316
|
+
completion(secret, nil)
|
|
317
|
+
} else {
|
|
318
|
+
let error = NSError(domain: "com.getcapacitor.community.stripe.terminal",
|
|
319
|
+
code: 2000,
|
|
320
|
+
userInfo: [NSLocalizedDescriptionKey: "Missing `secret` in ConnectionToken JSON response"])
|
|
321
|
+
completion(nil, error)
|
|
322
|
+
}
|
|
323
|
+
} catch {
|
|
293
324
|
completion(nil, error)
|
|
294
325
|
}
|
|
295
|
-
}
|
|
326
|
+
} else {
|
|
327
|
+
let error = NSError(domain: "com.getcapacitor.community.stripe.terminal",
|
|
328
|
+
code: 1000,
|
|
329
|
+
userInfo: [NSLocalizedDescriptionKey: "No data in response from ConnectionToken endpoint"])
|
|
296
330
|
completion(nil, error)
|
|
297
331
|
}
|
|
298
|
-
} else {
|
|
299
|
-
let error = NSError(domain: "com.getcapacitor.community.stripe.terminal",
|
|
300
|
-
code: 1000,
|
|
301
|
-
userInfo: [NSLocalizedDescriptionKey: "No data in response from ConnectionToken endpoint"])
|
|
302
|
-
completion(nil, error)
|
|
303
332
|
}
|
|
333
|
+
task.resume()
|
|
304
334
|
}
|
|
305
|
-
task.resume()
|
|
306
335
|
}
|
|
307
336
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// each method the plugin supports using the CAP_PLUGIN_METHOD macro.
|
|
6
6
|
CAP_PLUGIN(StripeTerminalPlugin, "StripeTerminal",
|
|
7
7
|
CAP_PLUGIN_METHOD(initialize, CAPPluginReturnPromise);
|
|
8
|
+
CAP_PLUGIN_METHOD(setConnectionToken, CAPPluginReturnPromise);
|
|
8
9
|
CAP_PLUGIN_METHOD(discoverReaders, CAPPluginReturnPromise);
|
|
9
10
|
CAP_PLUGIN_METHOD(cancelDiscoverReaders, CAPPluginReturnPromise);
|
|
10
11
|
CAP_PLUGIN_METHOD(connectReader, CAPPluginReturnPromise);
|
|
@@ -21,6 +21,10 @@ public class StripeTerminalPlugin: CAPPlugin {
|
|
|
21
21
|
self.implementation.initialize(call)
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
@objc func setConnectionToken(_ call: CAPPluginCall) {
|
|
25
|
+
self.implementation.setConnectionToken(call)
|
|
26
|
+
}
|
|
27
|
+
|
|
24
28
|
@objc func discoverReaders(_ call: CAPPluginCall) {
|
|
25
29
|
do {
|
|
26
30
|
try self.implementation.discoverReaders(call)
|