@primer-io/react-native 0.6.7 → 0.7.1
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 +4 -6
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +44 -2
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +19 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerOnClientSessionActionsRequestRN.kt +42 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerRequestRN.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/utils/PrimerEventQueueRN.kt +0 -2
- package/ios/DataModels/PrimerErrorRN.swift +4 -0
- package/ios/DataModels/PrimerRequestRN.swift +1 -1
- package/ios/DataModels/PrimerSettingsRN.swift +1 -1
- package/ios/PrimerRN+PrimerDelegate.swift +51 -7
- package/ios/PrimerRN.swift +32 -4
- package/ios/ReactNative.m +4 -0
- package/lib/commonjs/Primer.js +85 -11
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/models/client-session-actions-request.js +2 -0
- package/lib/commonjs/models/client-session-actions-request.js.map +1 -0
- package/lib/module/Primer.js +85 -11
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/models/client-session-actions-request.js +2 -0
- package/lib/module/models/client-session-actions-request.js.map +1 -0
- package/lib/typescript/models/client-session-actions-request.d.ts +11 -0
- package/lib/typescript/models/primer-callbacks.d.ts +2 -0
- package/lib/typescript/models/primer-config.d.ts +2 -1
- package/lib/typescript/models/primer-request.d.ts +11 -0
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/Primer.ts +49 -7
- package/src/models/client-session-actions-request.ts +13 -0
- package/src/models/primer-callbacks.ts +6 -0
- package/src/models/primer-config.ts +3 -0
- package/src/models/primer-request.ts +16 -0
- package/android/.gradle/7.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.0.2/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.0.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.0.2/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.0.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.0.2/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
package/README.md
CHANGED
|
@@ -43,15 +43,13 @@ import { Primer } from '@primer-io/react-native';
|
|
|
43
43
|
const token: string = await fetchClientToken();
|
|
44
44
|
|
|
45
45
|
// configure listeners and settings.
|
|
46
|
-
const onTokenizeSuccess = (t, handler) => {
|
|
47
|
-
|
|
48
|
-
handler.
|
|
46
|
+
const onTokenizeSuccess = async (t, handler) => {
|
|
47
|
+
const payment = await createPayment(t);
|
|
48
|
+
handler.handleSuccess(); // resume the checkout flow with success message.
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
const settings = { order: { amount: 50, currency: 'GBP' } };
|
|
52
|
-
|
|
53
51
|
// show Universal Checkout with client token and config.
|
|
54
|
-
Primer.showUniversalCheckout(token, { onTokenizeSuccess
|
|
52
|
+
Primer.showUniversalCheckout(token, { onTokenizeSuccess });
|
|
55
53
|
```
|
|
56
54
|
|
|
57
55
|
For more info & help troubleshooting, check out our 🔥 [docs](https://www.notion.so/primerio/Quick-Start-6c5eb61e5bbe426ca66244259e06048e)
|
package/android/build.gradle
CHANGED
|
@@ -128,5 +128,5 @@ dependencies {
|
|
|
128
128
|
api 'com.facebook.react:react-native:+'
|
|
129
129
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
130
130
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.2"
|
|
131
|
-
implementation 'io.primer:android:1.
|
|
131
|
+
implementation 'io.primer:android:1.6.0'
|
|
132
132
|
}
|
|
@@ -12,6 +12,7 @@ import io.primer.android.model.dto.*
|
|
|
12
12
|
import kotlinx.serialization.decodeFromString
|
|
13
13
|
import kotlinx.serialization.encodeToString
|
|
14
14
|
import kotlinx.serialization.json.Json
|
|
15
|
+
import kotlin.Error
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
|
|
@@ -88,6 +89,11 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
88
89
|
mListener.configureOnTokenizeSuccess(callback)
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
@ReactMethod
|
|
93
|
+
fun configureOnClientSessionActions(callback: Callback) {
|
|
94
|
+
mListener.configureOnClientSessionActions(callback)
|
|
95
|
+
}
|
|
96
|
+
|
|
91
97
|
@ReactMethod
|
|
92
98
|
fun configureOnResumeSuccess(callback: Callback) {
|
|
93
99
|
mListener.configureOnResumeSuccess(callback)
|
|
@@ -127,8 +133,8 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
127
133
|
mListener.completion = { error, clientToken ->
|
|
128
134
|
currentActivity?.let {
|
|
129
135
|
it.runOnUiThread {
|
|
130
|
-
if (error) {
|
|
131
|
-
|
|
136
|
+
if (error != null) {
|
|
137
|
+
mListener.resumeHandler?.handleError(Error(error))
|
|
132
138
|
} else {
|
|
133
139
|
if (clientToken == null) {
|
|
134
140
|
mListener.resumeHandler?.handleSuccess()
|
|
@@ -140,6 +146,18 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
140
146
|
}
|
|
141
147
|
}
|
|
142
148
|
|
|
149
|
+
mListener.actionCompletion = { error, clientToken ->
|
|
150
|
+
currentActivity?.let {
|
|
151
|
+
it.runOnUiThread {
|
|
152
|
+
if (error != null) {
|
|
153
|
+
mListener.actionResumeHandler?.handleError(Error(error))
|
|
154
|
+
} else {
|
|
155
|
+
mListener.actionResumeHandler?.handleClientToken(clientToken)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
143
161
|
Primer.instance.configure(config, mListener)
|
|
144
162
|
sdkWasInitialised = true
|
|
145
163
|
}
|
|
@@ -199,4 +217,28 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
199
217
|
haltExecution = true
|
|
200
218
|
}
|
|
201
219
|
}
|
|
220
|
+
|
|
221
|
+
@ReactMethod
|
|
222
|
+
fun actionResume(request: String) {
|
|
223
|
+
try {
|
|
224
|
+
Log.d("PrimerRN", "resume: $request")
|
|
225
|
+
val data = json.decodeFromString<PrimerResumeRequest>(request)
|
|
226
|
+
mListener.actionCompletion?.invoke(data.error, data.token)
|
|
227
|
+
|
|
228
|
+
mListener.actionCompletion = { error, clientToken ->
|
|
229
|
+
currentActivity?.let {
|
|
230
|
+
it.runOnUiThread {
|
|
231
|
+
if (error != null) {
|
|
232
|
+
mListener.actionResumeHandler?.handleError(Error(error))
|
|
233
|
+
} else {
|
|
234
|
+
mListener.actionResumeHandler?.handleClientToken(clientToken)
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
} catch (e: Exception) {
|
|
241
|
+
Log.e("PrimerRN", "configure settings error: $e")
|
|
242
|
+
}
|
|
243
|
+
}
|
|
202
244
|
}
|
|
@@ -4,9 +4,11 @@ import android.util.Log
|
|
|
4
4
|
import com.facebook.react.bridge.Callback
|
|
5
5
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
6
6
|
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
7
|
+
import com.primerioreactnative.datamodels.PrimerOnClientSessionActionsRequestRN
|
|
7
8
|
import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
|
|
8
9
|
import com.primerioreactnative.utils.PrimerEventQueueRN
|
|
9
10
|
import io.primer.android.CheckoutEventListener
|
|
11
|
+
import io.primer.android.completion.ActionResumeHandler
|
|
10
12
|
import io.primer.android.completion.ResumeHandler
|
|
11
13
|
import io.primer.android.events.CheckoutEvent
|
|
12
14
|
import kotlinx.serialization.encodeToString
|
|
@@ -15,21 +17,29 @@ import kotlinx.serialization.json.Json
|
|
|
15
17
|
class PrimerRNEventListener : CheckoutEventListener {
|
|
16
18
|
|
|
17
19
|
private var onTokenizeSuccessQueue: PrimerEventQueueRN? = null
|
|
20
|
+
private var onClientSessionActionsQueue: PrimerEventQueueRN? = null
|
|
18
21
|
private var onResumeSuccessQueue: PrimerEventQueueRN? = null
|
|
19
22
|
private var onVaultSuccessQueue: PrimerEventQueueRN? = null
|
|
20
23
|
private var onDismissQueue: PrimerEventQueueRN? = null
|
|
21
24
|
var onPrimerErrorQueue: PrimerEventQueueRN? = null
|
|
22
25
|
var onSavedPaymentInstrumentsFetchedQueue: PrimerEventQueueRN? = null
|
|
23
26
|
|
|
24
|
-
var completion: ((error:
|
|
27
|
+
var completion: ((error: String?, token: String?) -> Unit)? = null
|
|
28
|
+
var actionCompletion: ((error: String?, token: String?) -> Unit)? = null
|
|
25
29
|
|
|
26
30
|
var resumeHandler: ResumeHandler? = null
|
|
31
|
+
var actionResumeHandler: ActionResumeHandler? = null
|
|
27
32
|
|
|
28
33
|
fun configureOnTokenizeSuccess(callback: Callback) {
|
|
29
34
|
onTokenizeSuccessQueue = PrimerEventQueueRN()
|
|
30
35
|
onTokenizeSuccessQueue?.poll(callback)
|
|
31
36
|
}
|
|
32
37
|
|
|
38
|
+
fun configureOnClientSessionActions(callback: Callback) {
|
|
39
|
+
onClientSessionActionsQueue = PrimerEventQueueRN()
|
|
40
|
+
onClientSessionActionsQueue?.poll(callback)
|
|
41
|
+
}
|
|
42
|
+
|
|
33
43
|
fun configureOnResumeSuccess(callback: Callback) {
|
|
34
44
|
onResumeSuccessQueue = PrimerEventQueueRN()
|
|
35
45
|
onResumeSuccessQueue?.poll(callback)
|
|
@@ -55,6 +65,14 @@ class PrimerRNEventListener : CheckoutEventListener {
|
|
|
55
65
|
onSavedPaymentInstrumentsFetchedQueue?.poll(callback)
|
|
56
66
|
}
|
|
57
67
|
|
|
68
|
+
override fun onClientSessionActions(event: CheckoutEvent.OnClientSessionActions) {
|
|
69
|
+
val token = PrimerOnClientSessionActionsRequestRN.build(event.data)
|
|
70
|
+
val request = Json.encodeToString(token)
|
|
71
|
+
|
|
72
|
+
onClientSessionActionsQueue?.addRequestAndPoll(request)
|
|
73
|
+
actionResumeHandler = event.resumeHandler
|
|
74
|
+
}
|
|
75
|
+
|
|
58
76
|
override fun onCheckoutEvent(e: CheckoutEvent) {
|
|
59
77
|
when (e) {
|
|
60
78
|
is CheckoutEvent.TokenAddedToVault -> {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
package com.primerioreactnative.datamodels
|
|
2
|
+
|
|
3
|
+
import io.primer.android.data.action.models.ClientSessionActionsRequest
|
|
4
|
+
import kotlinx.serialization.Serializable
|
|
5
|
+
|
|
6
|
+
@Serializable
|
|
7
|
+
data class PrimerOnClientSessionActionsRequestRN(
|
|
8
|
+
val actions: List<Action>,
|
|
9
|
+
) {
|
|
10
|
+
|
|
11
|
+
@Serializable
|
|
12
|
+
data class Action(
|
|
13
|
+
val type: String,
|
|
14
|
+
val paymentMethodType: String? = null,
|
|
15
|
+
val network: String? = null,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
companion object {
|
|
19
|
+
fun build(
|
|
20
|
+
request: ClientSessionActionsRequest,
|
|
21
|
+
): PrimerOnClientSessionActionsRequestRN {
|
|
22
|
+
return PrimerOnClientSessionActionsRequestRN(
|
|
23
|
+
actions = request.actions.map { action ->
|
|
24
|
+
when (action) {
|
|
25
|
+
is ClientSessionActionsRequest.SetPaymentMethod -> {
|
|
26
|
+
Action(
|
|
27
|
+
type = "SET_PAYMENT_METHOD",
|
|
28
|
+
paymentMethodType = action.paymentMethodType,
|
|
29
|
+
network = action.network,
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
is ClientSessionActionsRequest.UnsetPaymentMethod -> {
|
|
33
|
+
Action(
|
|
34
|
+
type = "UNSET_PAYMENT_METHOD",
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -39,7 +39,7 @@ extension PrimerSettingsRN {
|
|
|
39
39
|
customer: Customer(
|
|
40
40
|
firstName: customer?.firstName,
|
|
41
41
|
lastName: customer?.lastName,
|
|
42
|
-
|
|
42
|
+
emailAddress: customer?.email,
|
|
43
43
|
homePhoneNumber: nil,
|
|
44
44
|
mobilePhoneNumber: customer?.phone,
|
|
45
45
|
workPhoneNumber: nil,
|
|
@@ -28,13 +28,57 @@ extension PrimerRN: PrimerDelegate {
|
|
|
28
28
|
} catch {
|
|
29
29
|
checkoutFailed(with: ErrorTypeRN.ParseJsonFailed)
|
|
30
30
|
}
|
|
31
|
-
onResumeFlowCallback = { error,
|
|
31
|
+
onResumeFlowCallback = { error, clientToken in
|
|
32
|
+
if let error = error {
|
|
33
|
+
resumeHandler.handle(error: error)
|
|
34
|
+
} else if let clientToken = clientToken {
|
|
35
|
+
resumeHandler.handle(newClientToken: clientToken)
|
|
36
|
+
} else {
|
|
37
|
+
resumeHandler.handleSuccess()
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
func onClientSessionActions(_ actions: [ClientSession.Action], resumeHandler: ResumeHandlerProtocol?) {
|
|
43
|
+
do {
|
|
44
|
+
let actionsRN: [[String: String?]] = actions.compactMap {
|
|
45
|
+
|
|
46
|
+
if ($0.`type` == "SELECT_PAYMENT_METHOD") {
|
|
47
|
+
let network = ($0.params?["binData"] as? [String: Any])?["network"] as? String
|
|
48
|
+
return [
|
|
49
|
+
"type": "SET_PAYMENT_METHOD",
|
|
50
|
+
"paymentMethodType": $0.params?["paymentMethodType"] as? String,
|
|
51
|
+
"network": network,
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if ($0.`type` == "UNSELECT_PAYMENT_METHOD") {
|
|
56
|
+
return [
|
|
57
|
+
"type": "UNSET_PAYMENT_METHOD",
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return [ "type": "UNKNOWN" ]
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
let request: [String: Any] = [
|
|
65
|
+
"actions": actionsRN
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
let data = try JSONSerialization.data(withJSONObject: request, options: .fragmentsAllowed)
|
|
69
|
+
let jsonString = String(data: data, encoding: .utf8)!
|
|
70
|
+
self.onClientSessionActionsCallback?([jsonString])
|
|
71
|
+
} catch {
|
|
72
|
+
checkoutFailed(with: ErrorTypeRN.ParseJsonFailed)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
onActionResumeCallback = { error, token in
|
|
32
76
|
if let token = token {
|
|
33
|
-
resumeHandler
|
|
77
|
+
resumeHandler?.handle(newClientToken: token)
|
|
34
78
|
} else if let error = error {
|
|
35
|
-
resumeHandler
|
|
79
|
+
resumeHandler?.handle(error: error)
|
|
36
80
|
} else {
|
|
37
|
-
resumeHandler
|
|
81
|
+
resumeHandler?.handle(error: PrimerError.generic)
|
|
38
82
|
}
|
|
39
83
|
}
|
|
40
84
|
}
|
|
@@ -42,11 +86,11 @@ extension PrimerRN: PrimerDelegate {
|
|
|
42
86
|
func onResumeSuccess(_ clientToken: String, resumeHandler: ResumeHandlerProtocol) {
|
|
43
87
|
self.onResumeSuccessCallback?([clientToken])
|
|
44
88
|
|
|
45
|
-
onResumeFlowCallback = { error,
|
|
89
|
+
onResumeFlowCallback = { error, clientToken in
|
|
46
90
|
if let error = error {
|
|
47
91
|
resumeHandler.handle(error: error)
|
|
48
|
-
} else if let
|
|
49
|
-
resumeHandler.handle(newClientToken:
|
|
92
|
+
} else if let clientToken = clientToken {
|
|
93
|
+
resumeHandler.handle(newClientToken: clientToken)
|
|
50
94
|
} else {
|
|
51
95
|
resumeHandler.handleSuccess()
|
|
52
96
|
}
|
package/ios/PrimerRN.swift
CHANGED
|
@@ -17,11 +17,13 @@ class PrimerRN: NSObject {
|
|
|
17
17
|
var theme: PrimerThemeRN?
|
|
18
18
|
var flow: PrimerSessionFlow?
|
|
19
19
|
var onTokenizeSuccessCallback: RCTResponseSenderBlock?
|
|
20
|
+
var onClientSessionActionsCallback: RCTResponseSenderBlock?
|
|
20
21
|
var onResumeSuccessCallback: RCTResponseSenderBlock?
|
|
21
22
|
var onVaultSuccessCallback: RCTResponseSenderBlock?
|
|
22
23
|
var onDismissCallback: RCTResponseSenderBlock?
|
|
23
24
|
var onPrimerErrorCallback: RCTResponseSenderBlock?
|
|
24
25
|
var onResumeFlowCallback: BasicCompletionBlock?
|
|
26
|
+
var onActionResumeCallback: BasicCompletionBlock?
|
|
25
27
|
var onSavedPaymentInstrumentsFetchedCallback: RCTResponseSenderBlock?
|
|
26
28
|
|
|
27
29
|
private var sdkWasInitialised = false
|
|
@@ -61,6 +63,10 @@ class PrimerRN: NSObject {
|
|
|
61
63
|
self.onTokenizeSuccessCallback = callback
|
|
62
64
|
}
|
|
63
65
|
|
|
66
|
+
@objc func configureOnClientSessionActions(_ callback: @escaping RCTResponseSenderBlock) {
|
|
67
|
+
self.onClientSessionActionsCallback = callback
|
|
68
|
+
}
|
|
69
|
+
|
|
64
70
|
@objc func configureOnResumeSuccess(_ callback: @escaping RCTResponseSenderBlock) {
|
|
65
71
|
self.onResumeSuccessCallback = callback
|
|
66
72
|
}
|
|
@@ -139,13 +145,14 @@ class PrimerRN: NSObject {
|
|
|
139
145
|
let json = request.data(using: .utf8)!
|
|
140
146
|
let request = try JSONDecoder().decode(PrimerResumeRequest.self, from: json)
|
|
141
147
|
|
|
142
|
-
if
|
|
143
|
-
self?.onResumeFlowCallback?(
|
|
144
|
-
} else if let
|
|
145
|
-
self?.onResumeFlowCallback?(nil,
|
|
148
|
+
if let error = request.error {
|
|
149
|
+
self?.onResumeFlowCallback?(ErrorRN(message: error), nil)
|
|
150
|
+
} else if let clientToken = request.token {
|
|
151
|
+
self?.onResumeFlowCallback?(nil, clientToken)
|
|
146
152
|
} else {
|
|
147
153
|
self?.onResumeFlowCallback?(nil, nil)
|
|
148
154
|
}
|
|
155
|
+
|
|
149
156
|
self?.onResumeFlowCallback = nil
|
|
150
157
|
} catch {
|
|
151
158
|
self?.checkoutFailed(with: error)
|
|
@@ -153,6 +160,27 @@ class PrimerRN: NSObject {
|
|
|
153
160
|
}
|
|
154
161
|
}
|
|
155
162
|
|
|
163
|
+
@objc func actionResume(_ request: String) -> Void {
|
|
164
|
+
DispatchQueue.main.async { [weak self] in
|
|
165
|
+
do {
|
|
166
|
+
let json = request.data(using: .utf8)!
|
|
167
|
+
let request = try JSONDecoder().decode(PrimerResumeRequest.self, from: json)
|
|
168
|
+
|
|
169
|
+
if let error = request.error {
|
|
170
|
+
self?.onActionResumeCallback?(ErrorRN(message: error), nil)
|
|
171
|
+
} else if let clientToken = request.token {
|
|
172
|
+
self?.onActionResumeCallback?(nil, clientToken)
|
|
173
|
+
} else {
|
|
174
|
+
self?.onActionResumeCallback?(nil, nil)
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
self?.onActionResumeCallback = nil
|
|
178
|
+
} catch {
|
|
179
|
+
self?.checkoutFailed(with: error)
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
156
184
|
@objc func dispose() -> Void {
|
|
157
185
|
|
|
158
186
|
}
|
package/ios/ReactNative.m
CHANGED
|
@@ -11,6 +11,8 @@ RCT_EXTERN_METHOD(configureIntent: (NSString *)request)
|
|
|
11
11
|
|
|
12
12
|
RCT_EXTERN_METHOD(configureOnTokenizeSuccess: (RCTResponseSenderBlock)callback)
|
|
13
13
|
|
|
14
|
+
RCT_EXTERN_METHOD(configureOnClientSessionActions: (RCTResponseSenderBlock)callback)
|
|
15
|
+
|
|
14
16
|
RCT_EXTERN_METHOD(configureOnResumeSuccess: (RCTResponseSenderBlock)callback)
|
|
15
17
|
|
|
16
18
|
RCT_EXTERN_METHOD(configureOnVaultSuccess: (RCTResponseSenderBlock)callback)
|
|
@@ -27,6 +29,8 @@ RCT_EXTERN_METHOD(initialize: (NSString *)data)
|
|
|
27
29
|
|
|
28
30
|
RCT_EXTERN_METHOD(resume: (NSString *)data)
|
|
29
31
|
|
|
32
|
+
RCT_EXTERN_METHOD(actionResume: (NSString *)data)
|
|
33
|
+
|
|
30
34
|
RCT_EXTERN_METHOD(dispose)
|
|
31
35
|
|
|
32
36
|
@end
|
package/lib/commonjs/Primer.js
CHANGED
|
@@ -56,6 +56,7 @@ function configure(config) {
|
|
|
56
56
|
configureOnDismiss(config.onDismiss);
|
|
57
57
|
configureOnError(config.onError);
|
|
58
58
|
configureOnTokenizeSuccess(config.onTokenizeSuccess);
|
|
59
|
+
configureOnClientSessionActions(config.onClientSessionActions);
|
|
59
60
|
configureOnResumeSuccess(config.onResumeSuccess);
|
|
60
61
|
configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
|
|
61
62
|
}
|
|
@@ -88,12 +89,25 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
88
89
|
try {
|
|
89
90
|
const parsedData = JSON.parse(data);
|
|
90
91
|
callback(parsedData, {
|
|
91
|
-
|
|
92
|
-
error
|
|
93
|
-
token:
|
|
92
|
+
handleError: error => resume({
|
|
93
|
+
error,
|
|
94
|
+
token: null
|
|
95
|
+
}),
|
|
96
|
+
handleSuccess: () => resume({
|
|
97
|
+
error: null,
|
|
98
|
+
token: null
|
|
99
|
+
}),
|
|
100
|
+
handleNewClientToken: token => resume({
|
|
101
|
+
error: null,
|
|
102
|
+
token
|
|
103
|
+
}),
|
|
104
|
+
// deprecated
|
|
105
|
+
resumeWithError: error => resume({
|
|
106
|
+
error,
|
|
107
|
+
token: null
|
|
94
108
|
}),
|
|
95
109
|
resumeWithSuccess: token => resume({
|
|
96
|
-
error:
|
|
110
|
+
error: null,
|
|
97
111
|
token
|
|
98
112
|
})
|
|
99
113
|
});
|
|
@@ -103,17 +117,77 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
103
117
|
});
|
|
104
118
|
}
|
|
105
119
|
|
|
120
|
+
function actionResume(request) {
|
|
121
|
+
const data = JSON.stringify(request);
|
|
122
|
+
NativeModule.actionResume(data);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function configureOnClientSessionActions(callback = (_, __) => {
|
|
126
|
+
NativeModule.configureOnClientSessionActions(___ => {
|
|
127
|
+
actionResume({
|
|
128
|
+
error: null,
|
|
129
|
+
token: null
|
|
130
|
+
});
|
|
131
|
+
configureOnClientSessionActions(callback);
|
|
132
|
+
});
|
|
133
|
+
}) {
|
|
134
|
+
NativeModule.configureOnClientSessionActions(data => {
|
|
135
|
+
try {
|
|
136
|
+
const parsedData = JSON.parse(data);
|
|
137
|
+
callback(parsedData, {
|
|
138
|
+
handleError: error => actionResume({
|
|
139
|
+
error,
|
|
140
|
+
token: null
|
|
141
|
+
}),
|
|
142
|
+
handleSuccess: () => actionResume({
|
|
143
|
+
error: null,
|
|
144
|
+
token: null
|
|
145
|
+
}),
|
|
146
|
+
handleNewClientToken: token => actionResume({
|
|
147
|
+
error: null,
|
|
148
|
+
token
|
|
149
|
+
}),
|
|
150
|
+
// deprecated
|
|
151
|
+
resumeWithError: error => actionResume({
|
|
152
|
+
error,
|
|
153
|
+
token: null
|
|
154
|
+
}),
|
|
155
|
+
resumeWithSuccess: token => actionResume({
|
|
156
|
+
error: null,
|
|
157
|
+
token
|
|
158
|
+
})
|
|
159
|
+
});
|
|
160
|
+
configureOnClientSessionActions(callback);
|
|
161
|
+
} catch (e) {
|
|
162
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
106
167
|
function configureOnResumeSuccess(callback = (_, __) => {}) {
|
|
107
|
-
NativeModule.configureOnResumeSuccess(
|
|
168
|
+
NativeModule.configureOnResumeSuccess(paymentMethodToken => {
|
|
108
169
|
try {
|
|
109
|
-
callback(
|
|
110
|
-
|
|
111
|
-
error
|
|
170
|
+
callback(paymentMethodToken, {
|
|
171
|
+
handleError: error => resume({
|
|
172
|
+
error,
|
|
173
|
+
token: null
|
|
174
|
+
}),
|
|
175
|
+
handleSuccess: () => resume({
|
|
176
|
+
error: null,
|
|
177
|
+
token: null
|
|
178
|
+
}),
|
|
179
|
+
handleNewClientToken: token => resume({
|
|
180
|
+
error: null,
|
|
181
|
+
token
|
|
182
|
+
}),
|
|
183
|
+
// deprecated
|
|
184
|
+
resumeWithError: error => resume({
|
|
185
|
+
error,
|
|
112
186
|
token: null
|
|
113
187
|
}),
|
|
114
|
-
resumeWithSuccess:
|
|
115
|
-
error:
|
|
116
|
-
token
|
|
188
|
+
resumeWithSuccess: token => resume({
|
|
189
|
+
error: null,
|
|
190
|
+
token
|
|
117
191
|
})
|
|
118
192
|
});
|
|
119
193
|
} catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","resumeWithError","error","resumeWithSuccess","e","console","log","t","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n resumeWithError: () => resume({ error: true, token: '' }),\n resumeWithSuccess: (token) => resume({ error: false, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((token: any) => {\n try {\n callback(token, {\n resumeWithError: () => resume({ error: true, token: null }),\n resumeWithSuccess: (t) => resume({ error: false, token: t }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: boolean;\n token: string | null;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","___","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { ClientSessionActionsRequest } from './models/client-session-actions-request';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnClientSessionActionsCallback,\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnClientSessionActions(config.onClientSessionActions);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction actionResume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.actionResume(data);\n}\n\nfunction configureOnClientSessionActions(\n callback: OnClientSessionActionsCallback = (_, __) => {\n NativeModule.configureOnClientSessionActions((___: any) => {\n actionResume({ error: null, token: null });\n configureOnClientSessionActions(callback);\n });\n }\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n callback(parsedData, {\n handleError: (error) => actionResume({ error, token: null }),\n handleSuccess: () => actionResume({ error: null, token: null }),\n handleNewClientToken: (token) => actionResume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n configureOnClientSessionActions(callback);\n } catch (e) {\n console.log('[OnClientSessionActions]', 'failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
package/lib/module/Primer.js
CHANGED
|
@@ -46,6 +46,7 @@ function configure(config) {
|
|
|
46
46
|
configureOnDismiss(config.onDismiss);
|
|
47
47
|
configureOnError(config.onError);
|
|
48
48
|
configureOnTokenizeSuccess(config.onTokenizeSuccess);
|
|
49
|
+
configureOnClientSessionActions(config.onClientSessionActions);
|
|
49
50
|
configureOnResumeSuccess(config.onResumeSuccess);
|
|
50
51
|
configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
|
|
51
52
|
}
|
|
@@ -78,12 +79,25 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
78
79
|
try {
|
|
79
80
|
const parsedData = JSON.parse(data);
|
|
80
81
|
callback(parsedData, {
|
|
81
|
-
|
|
82
|
-
error
|
|
83
|
-
token:
|
|
82
|
+
handleError: error => resume({
|
|
83
|
+
error,
|
|
84
|
+
token: null
|
|
85
|
+
}),
|
|
86
|
+
handleSuccess: () => resume({
|
|
87
|
+
error: null,
|
|
88
|
+
token: null
|
|
89
|
+
}),
|
|
90
|
+
handleNewClientToken: token => resume({
|
|
91
|
+
error: null,
|
|
92
|
+
token
|
|
93
|
+
}),
|
|
94
|
+
// deprecated
|
|
95
|
+
resumeWithError: error => resume({
|
|
96
|
+
error,
|
|
97
|
+
token: null
|
|
84
98
|
}),
|
|
85
99
|
resumeWithSuccess: token => resume({
|
|
86
|
-
error:
|
|
100
|
+
error: null,
|
|
87
101
|
token
|
|
88
102
|
})
|
|
89
103
|
});
|
|
@@ -93,17 +107,77 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
93
107
|
});
|
|
94
108
|
}
|
|
95
109
|
|
|
110
|
+
function actionResume(request) {
|
|
111
|
+
const data = JSON.stringify(request);
|
|
112
|
+
NativeModule.actionResume(data);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function configureOnClientSessionActions(callback = (_, __) => {
|
|
116
|
+
NativeModule.configureOnClientSessionActions(___ => {
|
|
117
|
+
actionResume({
|
|
118
|
+
error: null,
|
|
119
|
+
token: null
|
|
120
|
+
});
|
|
121
|
+
configureOnClientSessionActions(callback);
|
|
122
|
+
});
|
|
123
|
+
}) {
|
|
124
|
+
NativeModule.configureOnClientSessionActions(data => {
|
|
125
|
+
try {
|
|
126
|
+
const parsedData = JSON.parse(data);
|
|
127
|
+
callback(parsedData, {
|
|
128
|
+
handleError: error => actionResume({
|
|
129
|
+
error,
|
|
130
|
+
token: null
|
|
131
|
+
}),
|
|
132
|
+
handleSuccess: () => actionResume({
|
|
133
|
+
error: null,
|
|
134
|
+
token: null
|
|
135
|
+
}),
|
|
136
|
+
handleNewClientToken: token => actionResume({
|
|
137
|
+
error: null,
|
|
138
|
+
token
|
|
139
|
+
}),
|
|
140
|
+
// deprecated
|
|
141
|
+
resumeWithError: error => actionResume({
|
|
142
|
+
error,
|
|
143
|
+
token: null
|
|
144
|
+
}),
|
|
145
|
+
resumeWithSuccess: token => actionResume({
|
|
146
|
+
error: null,
|
|
147
|
+
token
|
|
148
|
+
})
|
|
149
|
+
});
|
|
150
|
+
configureOnClientSessionActions(callback);
|
|
151
|
+
} catch (e) {
|
|
152
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
96
157
|
function configureOnResumeSuccess(callback = (_, __) => {}) {
|
|
97
|
-
NativeModule.configureOnResumeSuccess(
|
|
158
|
+
NativeModule.configureOnResumeSuccess(paymentMethodToken => {
|
|
98
159
|
try {
|
|
99
|
-
callback(
|
|
100
|
-
|
|
101
|
-
error
|
|
160
|
+
callback(paymentMethodToken, {
|
|
161
|
+
handleError: error => resume({
|
|
162
|
+
error,
|
|
163
|
+
token: null
|
|
164
|
+
}),
|
|
165
|
+
handleSuccess: () => resume({
|
|
166
|
+
error: null,
|
|
167
|
+
token: null
|
|
168
|
+
}),
|
|
169
|
+
handleNewClientToken: token => resume({
|
|
170
|
+
error: null,
|
|
171
|
+
token
|
|
172
|
+
}),
|
|
173
|
+
// deprecated
|
|
174
|
+
resumeWithError: error => resume({
|
|
175
|
+
error,
|
|
102
176
|
token: null
|
|
103
177
|
}),
|
|
104
|
-
resumeWithSuccess:
|
|
105
|
-
error:
|
|
106
|
-
token
|
|
178
|
+
resumeWithSuccess: token => resume({
|
|
179
|
+
error: null,
|
|
180
|
+
token
|
|
107
181
|
})
|
|
108
182
|
});
|
|
109
183
|
} catch (e) {
|
package/lib/module/Primer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Primer.ts"],"names":["NativeModules","parseCallback","PrimerRN","NativeModule","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","resumeWithError","error","resumeWithSuccess","e","console","log","t","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n resumeWithError: () => resume({ error: true, token: '' }),\n resumeWithSuccess: (token) => resume({ error: false, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((token: any) => {\n try {\n callback(token, {\n resumeWithError: () => resume({ error: true, token: null }),\n resumeWithSuccess: (t) => resume({ error: false, token: t }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: boolean;\n token: string | null;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Primer.ts"],"names":["NativeModules","parseCallback","PrimerRN","NativeModule","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","___","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { ClientSessionActionsRequest } from './models/client-session-actions-request';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnClientSessionActionsCallback,\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnClientSessionActions(config.onClientSessionActions);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction actionResume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.actionResume(data);\n}\n\nfunction configureOnClientSessionActions(\n callback: OnClientSessionActionsCallback = (_, __) => {\n NativeModule.configureOnClientSessionActions((___: any) => {\n actionResume({ error: null, token: null });\n configureOnClientSessionActions(callback);\n });\n }\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n callback(parsedData, {\n handleError: (error) => actionResume({ error, token: null }),\n handleSuccess: () => actionResume({ error: null, token: null }),\n handleNewClientToken: (token) => actionResume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n configureOnClientSessionActions(callback);\n } catch (e) {\n console.log('[OnClientSessionActions]', 'failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare type ClientSessionActionsRequest = IClientSessionActionsRequest;
|
|
2
|
+
interface IClientSessionActionsRequest {
|
|
3
|
+
actions: ClientSessionAction[];
|
|
4
|
+
}
|
|
5
|
+
declare type ClientSessionAction = IClientSessionAction;
|
|
6
|
+
interface IClientSessionAction {
|
|
7
|
+
type: 'SET_PAYMENT_METHOD' | 'UNSET_PAYMENT_METHOD';
|
|
8
|
+
paymentMethodType?: string;
|
|
9
|
+
network?: string;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { ActionRequest } from './action-request';
|
|
2
|
+
import type { ClientSessionActionsRequest } from './client-session-actions-request';
|
|
2
3
|
import type { PaymentInstrumentToken } from './payment-instrument-token';
|
|
3
4
|
import type { PrimerError } from './primer-error';
|
|
4
5
|
import type { PrimerResumeHandler } from './primer-request';
|
|
5
6
|
export declare type OnTokenizeSuccessCallback = (req: PaymentInstrumentToken, completion: PrimerResumeHandler) => void;
|
|
7
|
+
export declare type OnClientSessionActionsCallback = (req: ClientSessionActionsRequest, completion: PrimerResumeHandler) => void;
|
|
6
8
|
export declare type OnDataChangeCallback = (req: ActionRequest, completion: PrimerResumeHandler) => void;
|
|
7
9
|
export declare type OnTokenAddedToVaultCallback = (data: PaymentInstrumentToken) => void;
|
|
8
10
|
export declare type OnDismissCallback = () => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OnDismissCallback, OnPrimerErrorCallback, OnSavedPaymentInstrumentsFetchedCallback, OnTokenAddedToVaultCallback, OnTokenizeSuccessCallback } from './primer-callbacks';
|
|
1
|
+
import type { OnClientSessionActionsCallback, OnDismissCallback, OnPrimerErrorCallback, OnSavedPaymentInstrumentsFetchedCallback, OnTokenAddedToVaultCallback, OnTokenizeSuccessCallback } from './primer-callbacks';
|
|
2
2
|
import type { PrimerSettings } from './primer-settings';
|
|
3
3
|
import type { PrimerTheme } from './primer-theme';
|
|
4
4
|
export declare type PrimerConfig = IPrimerConfig;
|
|
@@ -32,5 +32,6 @@ interface IPrimerConfig {
|
|
|
32
32
|
* Use this to receive saved payment instruments fetch result.
|
|
33
33
|
*/
|
|
34
34
|
onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
|
|
35
|
+
onClientSessionActions?: OnClientSessionActionsCallback;
|
|
35
36
|
}
|
|
36
37
|
export {};
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
export declare type PrimerResumeHandler = IPrimerResumeHandler;
|
|
2
2
|
interface IPrimerResumeHandler {
|
|
3
|
+
handleError: (error: string) => void;
|
|
4
|
+
handleSuccess: () => void;
|
|
5
|
+
handleNewClientToken: (token: string) => void;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated This method should not be used
|
|
8
|
+
* Please use handleError instead.
|
|
9
|
+
*/
|
|
3
10
|
resumeWithError: (error: string | null) => void;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated This method should not be used.
|
|
13
|
+
* Please use handleSuccess or handleNewClientToken instead.
|
|
14
|
+
*/
|
|
4
15
|
resumeWithSuccess: (clientToken: string | null) => void;
|
|
5
16
|
}
|
|
6
17
|
export {};
|
package/package.json
CHANGED
package/src/Primer.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { NativeModules } from 'react-native';
|
|
2
|
+
import type { ClientSessionActionsRequest } from './models/client-session-actions-request';
|
|
2
3
|
import type { PaymentInstrumentToken } from './models/payment-instrument-token';
|
|
3
4
|
import type { IPrimer } from './models/primer';
|
|
4
5
|
import type {
|
|
6
|
+
OnClientSessionActionsCallback,
|
|
5
7
|
OnDismissCallback,
|
|
6
8
|
OnPrimerErrorCallback,
|
|
7
9
|
OnSavedPaymentInstrumentsFetchedCallback,
|
|
@@ -60,6 +62,7 @@ function configure(config: PrimerConfig): void {
|
|
|
60
62
|
configureOnDismiss(config.onDismiss);
|
|
61
63
|
configureOnError(config.onError);
|
|
62
64
|
configureOnTokenizeSuccess(config.onTokenizeSuccess);
|
|
65
|
+
configureOnClientSessionActions(config.onClientSessionActions);
|
|
63
66
|
configureOnResumeSuccess(config.onResumeSuccess);
|
|
64
67
|
configureOnSavedPaymentInstrumentsFetched(
|
|
65
68
|
config.onSavedPaymentInstrumentsFetched
|
|
@@ -95,8 +98,12 @@ function configureOnTokenizeSuccess(
|
|
|
95
98
|
try {
|
|
96
99
|
const parsedData = JSON.parse(data) as PaymentInstrumentToken;
|
|
97
100
|
callback(parsedData, {
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
handleError: (error) => resume({ error, token: null }),
|
|
102
|
+
handleSuccess: () => resume({ error: null, token: null }),
|
|
103
|
+
handleNewClientToken: (token) => resume({ error: null, token }),
|
|
104
|
+
// deprecated
|
|
105
|
+
resumeWithError: (error) => resume({ error, token: null }),
|
|
106
|
+
resumeWithSuccess: (token) => resume({ error: null, token }),
|
|
100
107
|
});
|
|
101
108
|
} catch (e) {
|
|
102
109
|
console.log('failed to parse json', e);
|
|
@@ -104,14 +111,49 @@ function configureOnTokenizeSuccess(
|
|
|
104
111
|
});
|
|
105
112
|
}
|
|
106
113
|
|
|
114
|
+
function actionResume(request: ResumeRequest) {
|
|
115
|
+
const data = JSON.stringify(request);
|
|
116
|
+
NativeModule.actionResume(data);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function configureOnClientSessionActions(
|
|
120
|
+
callback: OnClientSessionActionsCallback = (_, __) => {
|
|
121
|
+
NativeModule.configureOnClientSessionActions((___: any) => {
|
|
122
|
+
actionResume({ error: null, token: null });
|
|
123
|
+
configureOnClientSessionActions(callback);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
) {
|
|
127
|
+
NativeModule.configureOnClientSessionActions((data: any) => {
|
|
128
|
+
try {
|
|
129
|
+
const parsedData = JSON.parse(data) as ClientSessionActionsRequest;
|
|
130
|
+
callback(parsedData, {
|
|
131
|
+
handleError: (error) => actionResume({ error, token: null }),
|
|
132
|
+
handleSuccess: () => actionResume({ error: null, token: null }),
|
|
133
|
+
handleNewClientToken: (token) => actionResume({ error: null, token }),
|
|
134
|
+
// deprecated
|
|
135
|
+
resumeWithError: (error) => actionResume({ error, token: null }),
|
|
136
|
+
resumeWithSuccess: (token) => actionResume({ error: null, token }),
|
|
137
|
+
});
|
|
138
|
+
configureOnClientSessionActions(callback);
|
|
139
|
+
} catch (e) {
|
|
140
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
107
145
|
function configureOnResumeSuccess(
|
|
108
146
|
callback: OnTokenizeSuccessCallback = (_, __) => {}
|
|
109
147
|
) {
|
|
110
|
-
NativeModule.configureOnResumeSuccess((
|
|
148
|
+
NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {
|
|
111
149
|
try {
|
|
112
|
-
callback(
|
|
113
|
-
|
|
114
|
-
|
|
150
|
+
callback(paymentMethodToken, {
|
|
151
|
+
handleError: (error) => resume({ error, token: null }),
|
|
152
|
+
handleSuccess: () => resume({ error: null, token: null }),
|
|
153
|
+
handleNewClientToken: (token) => resume({ error: null, token }),
|
|
154
|
+
// deprecated
|
|
155
|
+
resumeWithError: (error) => resume({ error, token: null }),
|
|
156
|
+
resumeWithSuccess: (token) => resume({ error: null, token }),
|
|
115
157
|
});
|
|
116
158
|
} catch (e) {
|
|
117
159
|
console.log('failed to parse json', e);
|
|
@@ -146,6 +188,6 @@ function configureOnSavedPaymentInstrumentsFetched(
|
|
|
146
188
|
}
|
|
147
189
|
|
|
148
190
|
interface ResumeRequest {
|
|
149
|
-
error:
|
|
191
|
+
error: string | null;
|
|
150
192
|
token: string | null;
|
|
151
193
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ClientSessionActionsRequest = IClientSessionActionsRequest;
|
|
2
|
+
|
|
3
|
+
interface IClientSessionActionsRequest {
|
|
4
|
+
actions: ClientSessionAction[];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
type ClientSessionAction = IClientSessionAction;
|
|
8
|
+
|
|
9
|
+
interface IClientSessionAction {
|
|
10
|
+
type: 'SET_PAYMENT_METHOD' | 'UNSET_PAYMENT_METHOD';
|
|
11
|
+
paymentMethodType?: string;
|
|
12
|
+
network?: string;
|
|
13
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ActionRequest } from './action-request';
|
|
2
|
+
import type { ClientSessionActionsRequest } from './client-session-actions-request';
|
|
2
3
|
import type { PaymentInstrumentToken } from './payment-instrument-token';
|
|
3
4
|
import type { PrimerError } from './primer-error';
|
|
4
5
|
import type { PrimerResumeHandler } from './primer-request';
|
|
@@ -8,6 +9,11 @@ export type OnTokenizeSuccessCallback = (
|
|
|
8
9
|
completion: PrimerResumeHandler
|
|
9
10
|
) => void;
|
|
10
11
|
|
|
12
|
+
export type OnClientSessionActionsCallback = (
|
|
13
|
+
req: ClientSessionActionsRequest,
|
|
14
|
+
completion: PrimerResumeHandler
|
|
15
|
+
) => void;
|
|
16
|
+
|
|
11
17
|
export type OnDataChangeCallback = (
|
|
12
18
|
req: ActionRequest,
|
|
13
19
|
completion: PrimerResumeHandler
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
OnClientSessionActionsCallback,
|
|
2
3
|
OnDismissCallback,
|
|
3
4
|
OnPrimerErrorCallback,
|
|
4
5
|
OnSavedPaymentInstrumentsFetchedCallback,
|
|
@@ -41,4 +42,6 @@ interface IPrimerConfig {
|
|
|
41
42
|
* Use this to receive saved payment instruments fetch result.
|
|
42
43
|
*/
|
|
43
44
|
onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
|
|
45
|
+
|
|
46
|
+
onClientSessionActions?: OnClientSessionActionsCallback;
|
|
44
47
|
}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
export type PrimerResumeHandler = IPrimerResumeHandler;
|
|
2
|
+
|
|
2
3
|
interface IPrimerResumeHandler {
|
|
4
|
+
handleError: (error: string) => void;
|
|
5
|
+
|
|
6
|
+
handleSuccess: () => void;
|
|
7
|
+
|
|
8
|
+
handleNewClientToken: (token: string) => void;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated This method should not be used
|
|
12
|
+
* Please use handleError instead.
|
|
13
|
+
*/
|
|
3
14
|
resumeWithError: (error: string | null) => void;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated This method should not be used.
|
|
18
|
+
* Please use handleSuccess or handleNewClientToken instead.
|
|
19
|
+
*/
|
|
4
20
|
resumeWithSuccess: (clientToken: string | null) => void;
|
|
5
21
|
}
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|