@primer-io/react-native 0.6.8 → 0.8.0
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/android/.gradle/7.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.0.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.0.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- 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/build.gradle +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +42 -9
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +18 -5
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerOnClientSessionActionsRequestRN.kt +65 -0
- package/android/src/main/java/com/primerioreactnative/utils/PrimerEventQueueRN.kt +0 -2
- package/ios/DataModels/PrimerErrorRN.swift +1 -0
- package/ios/DataModels/PrimerIntentRN.swift +16 -30
- package/ios/DataModels/PrimerSettingsRN.swift +1 -1
- package/ios/PrimerRN+PrimerDelegate.swift +61 -0
- package/ios/PrimerRN.swift +39 -32
- package/ios/ReactNative.m +4 -2
- package/lib/commonjs/Primer.js +53 -12
- 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 +53 -12
- 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 +15 -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.d.ts +0 -6
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/Primer.ts +39 -16
- package/src/models/client-session-actions-request.ts +21 -0
- package/src/models/primer-callbacks.ts +6 -0
- package/src/models/primer-config.ts +3 -0
- package/src/models/primer.ts +0 -7
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#
|
|
1
|
+
#Tue Jan 11 21:16:59 CET 2022
|
|
2
2
|
gradle.version=7.0.2
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
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.7.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)
|
|
@@ -140,19 +146,22 @@ 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
|
}
|
|
146
164
|
|
|
147
|
-
@ReactMethod
|
|
148
|
-
fun fetchSavedPaymentInstruments(token: String) {
|
|
149
|
-
Log.d("PrimerRN", "fetch saved payment instruments")
|
|
150
|
-
|
|
151
|
-
if (!sdkWasInitialised) startSdk(token)
|
|
152
|
-
|
|
153
|
-
Primer.instance.fetchSavedPaymentInstruments(token)
|
|
154
|
-
}
|
|
155
|
-
|
|
156
165
|
@ReactMethod
|
|
157
166
|
fun initialize(token: String) {
|
|
158
167
|
try {
|
|
@@ -199,4 +208,28 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
199
208
|
haltExecution = true
|
|
200
209
|
}
|
|
201
210
|
}
|
|
211
|
+
|
|
212
|
+
@ReactMethod
|
|
213
|
+
fun actionResume(request: String) {
|
|
214
|
+
try {
|
|
215
|
+
Log.d("PrimerRN", "resume: $request")
|
|
216
|
+
val data = json.decodeFromString<PrimerResumeRequest>(request)
|
|
217
|
+
mListener.actionCompletion?.invoke(data.error, data.token)
|
|
218
|
+
|
|
219
|
+
mListener.actionCompletion = { error, clientToken ->
|
|
220
|
+
currentActivity?.let {
|
|
221
|
+
it.runOnUiThread {
|
|
222
|
+
if (error != null) {
|
|
223
|
+
mListener.actionResumeHandler?.handleError(Error(error))
|
|
224
|
+
} else {
|
|
225
|
+
mListener.actionResumeHandler?.handleClientToken(clientToken)
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
} catch (e: Exception) {
|
|
232
|
+
Log.e("PrimerRN", "configure settings error: $e")
|
|
233
|
+
}
|
|
234
|
+
}
|
|
202
235
|
}
|
|
@@ -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,6 +17,7 @@ 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
|
|
@@ -22,14 +25,21 @@ class PrimerRNEventListener : CheckoutEventListener {
|
|
|
22
25
|
var onSavedPaymentInstrumentsFetchedQueue: PrimerEventQueueRN? = null
|
|
23
26
|
|
|
24
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 -> {
|
|
@@ -78,11 +96,6 @@ class PrimerRNEventListener : CheckoutEventListener {
|
|
|
78
96
|
onResumeSuccessQueue?.addRequestAndPoll(token)
|
|
79
97
|
resumeHandler = e.resumeHandler
|
|
80
98
|
}
|
|
81
|
-
is CheckoutEvent.SavedPaymentInstrumentsFetched -> {
|
|
82
|
-
val list = e.data.map { PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(it) }
|
|
83
|
-
val request = Json.encodeToString(list)
|
|
84
|
-
onSavedPaymentInstrumentsFetchedQueue?.addRequestAndPoll(request)
|
|
85
|
-
}
|
|
86
99
|
is CheckoutEvent.Exit -> {
|
|
87
100
|
onDismissQueue?.addRequestAndPoll("dismiss")
|
|
88
101
|
onDismissQueue = null
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
val params: Params? = null,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
@Serializable
|
|
20
|
+
data class Params(
|
|
21
|
+
val billingAddress: Map<String, String?>
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
companion object {
|
|
25
|
+
fun build(
|
|
26
|
+
request: ClientSessionActionsRequest,
|
|
27
|
+
): PrimerOnClientSessionActionsRequestRN {
|
|
28
|
+
return PrimerOnClientSessionActionsRequestRN(
|
|
29
|
+
actions = request.actions.map { action ->
|
|
30
|
+
when (action) {
|
|
31
|
+
is ClientSessionActionsRequest.SetPaymentMethod -> {
|
|
32
|
+
Action(
|
|
33
|
+
type = "SELECT_PAYMENT_METHOD",
|
|
34
|
+
paymentMethodType = action.paymentMethodType,
|
|
35
|
+
network = action.network,
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
is ClientSessionActionsRequest.UnsetPaymentMethod -> {
|
|
39
|
+
Action(
|
|
40
|
+
type = "UNSELECT_PAYMENT_METHOD",
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
is ClientSessionActionsRequest.SetBillingAddress -> {
|
|
44
|
+
Action(
|
|
45
|
+
type = "SET_BILLING_ADDRESS",
|
|
46
|
+
params = Params(
|
|
47
|
+
billingAddress = mapOf(
|
|
48
|
+
"firstName" to action.firstName,
|
|
49
|
+
"lastName" to action.lastName,
|
|
50
|
+
"addressLine1" to action.addressLine1,
|
|
51
|
+
"addressLine2" to action.addressLine2,
|
|
52
|
+
"city" to action.city,
|
|
53
|
+
"postalCode" to action.postalCode,
|
|
54
|
+
"state" to action.state,
|
|
55
|
+
"countryCode" to action.countryCode
|
|
56
|
+
)
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -4,36 +4,22 @@ struct PrimerIntentRN: Decodable {
|
|
|
4
4
|
let vault: Bool
|
|
5
5
|
let paymentMethod: PrimerPaymentMethodTypeRN
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
case
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
case true:
|
|
25
|
-
switch (paymentMethod) {
|
|
26
|
-
case .Any:
|
|
27
|
-
return .defaultWithVault
|
|
28
|
-
case .Klarna:
|
|
29
|
-
return .addKlarnaToVault
|
|
30
|
-
case .PayPal:
|
|
31
|
-
return .addPayPalToVault
|
|
32
|
-
case .Card:
|
|
33
|
-
return .defaultWithVault
|
|
34
|
-
default:
|
|
35
|
-
return nil
|
|
36
|
-
}
|
|
7
|
+
var paymentMethodConfigType: PaymentMethodConfigType {
|
|
8
|
+
switch paymentMethod {
|
|
9
|
+
case .Any:
|
|
10
|
+
return .paymentCard
|
|
11
|
+
case .Klarna:
|
|
12
|
+
return .klarna
|
|
13
|
+
case .Card:
|
|
14
|
+
return .paymentCard
|
|
15
|
+
case .PayPal:
|
|
16
|
+
return .payPal
|
|
17
|
+
case .GooglePay:
|
|
18
|
+
return .googlePay
|
|
19
|
+
case .ApplePay:
|
|
20
|
+
return .applePay
|
|
21
|
+
case .GoCardless:
|
|
22
|
+
return .goCardlessMandate
|
|
37
23
|
}
|
|
38
24
|
}
|
|
39
25
|
}
|
|
@@ -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,
|
|
@@ -39,6 +39,67 @@ extension PrimerRN: PrimerDelegate {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
func onClientSessionActions(_ actions: [ClientSession.Action], resumeHandler: ResumeHandlerProtocol?) {
|
|
43
|
+
do {
|
|
44
|
+
let actionsRN: [[String: Any]] = 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": "SELECT_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": "UNSELECT_PAYMENT_METHOD",
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if ($0.`type` == "SET_BILLING_ADDRESS") {
|
|
62
|
+
|
|
63
|
+
var billingAddress: [String: String] = [:]
|
|
64
|
+
|
|
65
|
+
$0.params?.forEach { entry in
|
|
66
|
+
if let value = entry.value as? String, !value.isEmpty {
|
|
67
|
+
billingAddress[entry.key] = value
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return [
|
|
72
|
+
"type": "SET_BILLING_ADDRESS",
|
|
73
|
+
"params": [ "billingAddress": billingAddress ]
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return [ "type": "UNKNOWN" ]
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
let request: [String: Any] = [
|
|
81
|
+
"actions": actionsRN
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
let data = try JSONSerialization.data(withJSONObject: request, options: .fragmentsAllowed)
|
|
85
|
+
let jsonString = String(data: data, encoding: .utf8)!
|
|
86
|
+
self.onClientSessionActionsCallback?([jsonString])
|
|
87
|
+
self.onClientSessionActionsCallback = nil
|
|
88
|
+
} catch {
|
|
89
|
+
checkoutFailed(with: ErrorTypeRN.ParseJsonFailed)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
onActionResumeCallback = { error, token in
|
|
93
|
+
if let token = token {
|
|
94
|
+
resumeHandler?.handle(newClientToken: token)
|
|
95
|
+
} else if let error = error {
|
|
96
|
+
resumeHandler?.handle(error: error)
|
|
97
|
+
} else {
|
|
98
|
+
resumeHandler?.handle(error: ErrorTypeRN.generic)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
42
103
|
func onResumeSuccess(_ clientToken: String, resumeHandler: ResumeHandlerProtocol) {
|
|
43
104
|
self.onResumeSuccessCallback?([clientToken])
|
|
44
105
|
|
package/ios/PrimerRN.swift
CHANGED
|
@@ -15,14 +15,15 @@ class PrimerRN: NSObject {
|
|
|
15
15
|
var clientToken: String?
|
|
16
16
|
var settings: PrimerSettingsRN?
|
|
17
17
|
var theme: PrimerThemeRN?
|
|
18
|
-
var
|
|
18
|
+
var intent: PrimerIntentRN?
|
|
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?
|
|
25
|
-
var
|
|
26
|
+
var onActionResumeCallback: BasicCompletionBlock?
|
|
26
27
|
|
|
27
28
|
private var sdkWasInitialised = false
|
|
28
29
|
internal var haltExecution = false
|
|
@@ -51,7 +52,7 @@ class PrimerRN: NSObject {
|
|
|
51
52
|
do {
|
|
52
53
|
let json = request.data(using: .utf8)!
|
|
53
54
|
let intent = try JSONDecoder().decode(PrimerIntentRN.self, from: json)
|
|
54
|
-
self.
|
|
55
|
+
self.intent = intent
|
|
55
56
|
} catch {
|
|
56
57
|
checkoutFailed(with: ErrorTypeRN.ParseJsonFailed)
|
|
57
58
|
}
|
|
@@ -61,6 +62,10 @@ class PrimerRN: NSObject {
|
|
|
61
62
|
self.onTokenizeSuccessCallback = callback
|
|
62
63
|
}
|
|
63
64
|
|
|
65
|
+
@objc func configureOnClientSessionActions(_ callback: @escaping RCTResponseSenderBlock) {
|
|
66
|
+
self.onClientSessionActionsCallback = callback
|
|
67
|
+
}
|
|
68
|
+
|
|
64
69
|
@objc func configureOnResumeSuccess(_ callback: @escaping RCTResponseSenderBlock) {
|
|
65
70
|
self.onResumeSuccessCallback = callback
|
|
66
71
|
}
|
|
@@ -77,33 +82,6 @@ class PrimerRN: NSObject {
|
|
|
77
82
|
self.onPrimerErrorCallback = callback
|
|
78
83
|
}
|
|
79
84
|
|
|
80
|
-
@objc func configureOnSavedPaymentInstrumentsFetched(_ callback: @escaping RCTResponseSenderBlock) {
|
|
81
|
-
self.onSavedPaymentInstrumentsFetchedCallback = callback
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
@objc func fetchSavedPaymentInstruments(_ token: String) {
|
|
85
|
-
|
|
86
|
-
self.clientToken = token
|
|
87
|
-
|
|
88
|
-
Primer.shared.delegate = self
|
|
89
|
-
|
|
90
|
-
Primer.shared.fetchVaultedPaymentMethods { [weak self] result in
|
|
91
|
-
switch result {
|
|
92
|
-
case .failure(let error):
|
|
93
|
-
self?.checkoutFailed(with: error)
|
|
94
|
-
case .success(let tokens):
|
|
95
|
-
do {
|
|
96
|
-
let json = try self?.encoder.encode(tokens)
|
|
97
|
-
let data = String(data: json!, encoding: .utf8)!
|
|
98
|
-
self?.onSavedPaymentInstrumentsFetchedCallback?([data])
|
|
99
|
-
self?.onSavedPaymentInstrumentsFetchedCallback = nil
|
|
100
|
-
} catch {
|
|
101
|
-
self?.checkoutFailed(with: error)
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
85
|
@objc func initialize(_ token: String) -> Void {
|
|
108
86
|
DispatchQueue.main.async { [weak self] in
|
|
109
87
|
do {
|
|
@@ -111,7 +89,7 @@ class PrimerRN: NSObject {
|
|
|
111
89
|
throw ErrorTypeRN.noIosViewController
|
|
112
90
|
}
|
|
113
91
|
|
|
114
|
-
guard let
|
|
92
|
+
guard let intent = self?.intent else {
|
|
115
93
|
throw ErrorTypeRN.invalidPrimerIntent
|
|
116
94
|
}
|
|
117
95
|
|
|
@@ -126,7 +104,14 @@ class PrimerRN: NSObject {
|
|
|
126
104
|
|
|
127
105
|
Primer.shared.delegate = self
|
|
128
106
|
Primer.shared.configure(settings: settings, theme: theme)
|
|
129
|
-
|
|
107
|
+
|
|
108
|
+
DispatchQueue.main.async {
|
|
109
|
+
if (intent.vault) {
|
|
110
|
+
Primer.shared.showVaultManager(on: viewController, clientToken: token)
|
|
111
|
+
} else {
|
|
112
|
+
Primer.shared.showUniversalCheckout(on: viewController, clientToken: token)
|
|
113
|
+
}
|
|
114
|
+
}
|
|
130
115
|
} catch {
|
|
131
116
|
self?.checkoutFailed(with: error)
|
|
132
117
|
}
|
|
@@ -146,6 +131,7 @@ class PrimerRN: NSObject {
|
|
|
146
131
|
} else {
|
|
147
132
|
self?.onResumeFlowCallback?(nil, nil)
|
|
148
133
|
}
|
|
134
|
+
|
|
149
135
|
self?.onResumeFlowCallback = nil
|
|
150
136
|
} catch {
|
|
151
137
|
self?.checkoutFailed(with: error)
|
|
@@ -153,6 +139,27 @@ class PrimerRN: NSObject {
|
|
|
153
139
|
}
|
|
154
140
|
}
|
|
155
141
|
|
|
142
|
+
@objc func actionResume(_ request: String) -> Void {
|
|
143
|
+
DispatchQueue.main.async { [weak self] in
|
|
144
|
+
do {
|
|
145
|
+
let json = request.data(using: .utf8)!
|
|
146
|
+
let request = try JSONDecoder().decode(PrimerResumeRequest.self, from: json)
|
|
147
|
+
|
|
148
|
+
if let error = request.error {
|
|
149
|
+
self?.onActionResumeCallback?(ErrorRN(message: error), nil)
|
|
150
|
+
} else if let clientToken = request.token {
|
|
151
|
+
self?.onActionResumeCallback?(nil, clientToken)
|
|
152
|
+
} else {
|
|
153
|
+
self?.onActionResumeCallback?(nil, nil)
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
self?.onActionResumeCallback = nil
|
|
157
|
+
} catch {
|
|
158
|
+
self?.checkoutFailed(with: error)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
156
163
|
@objc func dispose() -> Void {
|
|
157
164
|
|
|
158
165
|
}
|
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)
|
|
@@ -21,12 +23,12 @@ RCT_EXTERN_METHOD(configureOnPrimerError: (RCTResponseSenderBlock)callback)
|
|
|
21
23
|
|
|
22
24
|
RCT_EXTERN_METHOD(configureOnSavedPaymentInstrumentsFetched: (RCTResponseSenderBlock)callback)
|
|
23
25
|
|
|
24
|
-
RCT_EXTERN_METHOD(fetchSavedPaymentInstruments: (NSString *)token)
|
|
25
|
-
|
|
26
26
|
RCT_EXTERN_METHOD(initialize: (NSString *)data)
|
|
27
27
|
|
|
28
28
|
RCT_EXTERN_METHOD(resume: (NSString *)data)
|
|
29
29
|
|
|
30
|
+
RCT_EXTERN_METHOD(actionResume: (NSString *)data)
|
|
31
|
+
|
|
30
32
|
RCT_EXTERN_METHOD(dispose)
|
|
31
33
|
|
|
32
34
|
@end
|
package/lib/commonjs/Primer.js
CHANGED
|
@@ -37,11 +37,11 @@ const PrimerNativeMapping = {
|
|
|
37
37
|
NativeModule.initialize(token);
|
|
38
38
|
},
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
// todo: refactor
|
|
41
|
+
// fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {
|
|
42
|
+
// configure(config);
|
|
43
|
+
// NativeModule.fetchSavedPaymentInstruments(token);
|
|
44
|
+
// },
|
|
45
45
|
dispose() {
|
|
46
46
|
NativeModule.dispose();
|
|
47
47
|
}
|
|
@@ -56,8 +56,8 @@ 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
|
-
configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
function configureSettings(settings = {}) {
|
|
@@ -116,6 +116,53 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
function actionResume(request) {
|
|
120
|
+
const data = JSON.stringify(request);
|
|
121
|
+
NativeModule.actionResume(data);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function configureOnClientSessionActions(callback = (_, __) => {
|
|
125
|
+
NativeModule.configureOnClientSessionActions(___ => {
|
|
126
|
+
actionResume({
|
|
127
|
+
error: null,
|
|
128
|
+
token: null
|
|
129
|
+
});
|
|
130
|
+
configureOnClientSessionActions(callback);
|
|
131
|
+
});
|
|
132
|
+
}) {
|
|
133
|
+
NativeModule.configureOnClientSessionActions(data => {
|
|
134
|
+
try {
|
|
135
|
+
const parsedData = JSON.parse(data);
|
|
136
|
+
callback(parsedData, {
|
|
137
|
+
handleError: error => actionResume({
|
|
138
|
+
error,
|
|
139
|
+
token: null
|
|
140
|
+
}),
|
|
141
|
+
handleSuccess: () => actionResume({
|
|
142
|
+
error: null,
|
|
143
|
+
token: null
|
|
144
|
+
}),
|
|
145
|
+
handleNewClientToken: token => actionResume({
|
|
146
|
+
error: null,
|
|
147
|
+
token
|
|
148
|
+
}),
|
|
149
|
+
// deprecated
|
|
150
|
+
resumeWithError: error => actionResume({
|
|
151
|
+
error,
|
|
152
|
+
token: null
|
|
153
|
+
}),
|
|
154
|
+
resumeWithSuccess: token => actionResume({
|
|
155
|
+
error: null,
|
|
156
|
+
token
|
|
157
|
+
})
|
|
158
|
+
});
|
|
159
|
+
configureOnClientSessionActions(callback);
|
|
160
|
+
} catch (e) {
|
|
161
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
119
166
|
function configureOnResumeSuccess(callback = (_, __) => {}) {
|
|
120
167
|
NativeModule.configureOnResumeSuccess(paymentMethodToken => {
|
|
121
168
|
try {
|
|
@@ -163,10 +210,4 @@ function configureOnError(callback = _ => {}) {
|
|
|
163
210
|
(0, _utils.parseCallback)(data, callback);
|
|
164
211
|
});
|
|
165
212
|
}
|
|
166
|
-
|
|
167
|
-
function configureOnSavedPaymentInstrumentsFetched(callback = _ => {}) {
|
|
168
|
-
NativeModule.configureOnSavedPaymentInstrumentsFetched(data => {
|
|
169
|
-
(0, _utils.parseCallback)(data, callback);
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
213
|
//# sourceMappingURL=Primer.js.map
|
|
@@ -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","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","paymentMethodToken","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 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 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"]}
|
|
1
|
+
{"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","___","paymentMethodToken","configureOnPrimerError"],"mappings":";;;;;;;AAAA;;AAmBA;;AAEA,MAAM;AAAEA,EAAAA,QAAQ,EAAEC;AAAZ,IAA6BC,0BAAnC;AAEO,MAAMC,mBAA4B,GAAG;AAC1CC,EAAAA,qBAAqB,CAACC,KAAD,EAAgBC,MAAhB,EAA4C;AAC/DC,IAAAA,eAAe,CAAC;AAAEC,MAAAA,KAAK,EAAE,KAAT;AAAgBC,MAAAA,aAAa,EAAE;AAA/B,KAAD,CAAf;AACAC,IAAAA,SAAS,CAACJ,MAAD,CAAT;AACAL,IAAAA,YAAY,CAACU,UAAb,CAAwBN,KAAxB;AACD,GALyC;;AAO1CO,EAAAA,gBAAgB,CAACP,KAAD,EAAgBC,MAAhB,EAA4C;AAC1DC,IAAAA,eAAe,CAAC;AAAEC,MAAAA,KAAK,EAAE,IAAT;AAAeC,MAAAA,aAAa,EAAE;AAA9B,KAAD,CAAf;AACAC,IAAAA,SAAS,CAACJ,MAAD,CAAT;AACAL,IAAAA,YAAY,CAACU,UAAb,CAAwBN,KAAxB;AACD,GAXyC;;AAa1CQ,EAAAA,iBAAiB,CACfR,KADe,EAEfS,MAFe,EAGfR,MAHe,EAIT;AACNC,IAAAA,eAAe,CAACO,MAAD,CAAf;AACAJ,IAAAA,SAAS,CAACJ,MAAD,CAAT;AACAL,IAAAA,YAAY,CAACU,UAAb,CAAwBN,KAAxB;AACD,GArByC;;AAuB1C;AACA;AACA;AACA;AACA;AAEAU,EAAAA,OAAO,GAAS;AACdd,IAAAA,YAAY,CAACc,OAAb;AACD;;AA/ByC,CAArC;;;AAkCP,SAASL,SAAT,CAAmBJ,MAAnB,EAA+C;AAC7CU,EAAAA,cAAc,CAACV,MAAM,CAACW,KAAR,CAAd;AACAC,EAAAA,iBAAiB,CAACZ,MAAM,CAACa,QAAR,CAAjB;AACAC,EAAAA,uBAAuB,CAACd,MAAM,CAACe,mBAAR,CAAvB;AACAC,EAAAA,kBAAkB,CAAChB,MAAM,CAACiB,SAAR,CAAlB;AACAC,EAAAA,gBAAgB,CAAClB,MAAM,CAACmB,OAAR,CAAhB;AACAC,EAAAA,0BAA0B,CAACpB,MAAM,CAACqB,iBAAR,CAA1B;AACAC,EAAAA,+BAA+B,CAACtB,MAAM,CAACuB,sBAAR,CAA/B;AACAC,EAAAA,wBAAwB,CAACxB,MAAM,CAACyB,eAAR,CAAxB;AACD;;AAED,SAASb,iBAAT,CAA2BC,QAAwB,GAAG,EAAtD,EAAgE;AAC9D,QAAMa,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAef,QAAf,CAAb;AACAlB,EAAAA,YAAY,CAACiB,iBAAb,CAA+Bc,IAA/B;AACD;;AAED,SAAShB,cAAT,CAAwBC,KAAkB,GAAG,EAA7C,EAAuD;AACrD,QAAMe,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAejB,KAAf,CAAb;AACAhB,EAAAA,YAAY,CAACe,cAAb,CAA4BgB,IAA5B;AACD;;AAED,SAASzB,eAAT,CACEO,MAAoB,GAAG;AAAEN,EAAAA,KAAK,EAAE,KAAT;AAAgBC,EAAAA,aAAa,EAAE;AAA/B,CADzB,EAEQ;AACN,QAAMuB,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAepB,MAAf,CAAb;AACAb,EAAAA,YAAY,CAACM,eAAb,CAA6ByB,IAA7B;AACD;;AAED,SAASG,MAAT,CAAgBC,OAAhB,EAAwC;AACtC,QAAMJ,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAeE,OAAf,CAAb;AACAnC,EAAAA,YAAY,CAACkC,MAAb,CAAoBH,IAApB;AACD;;AAED,SAASN,0BAAT,CACEW,QAAmC,GAAG,CAACC,CAAD,EAAIC,EAAJ,KAAW,CAAE,CADrD,EAEE;AACAtC,EAAAA,YAAY,CAACyB,0BAAb,CAAyCM,IAAD,IAAe;AACrD,QAAI;AACF,YAAMQ,UAAU,GAAGP,IAAI,CAACQ,KAAL,CAAWT,IAAX,CAAnB;AACAK,MAAAA,QAAQ,CAACG,UAAD,EAAa;AACnBE,QAAAA,WAAW,EAAGC,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAAStC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CADX;AAEnBuC,QAAAA,aAAa,EAAE,MAAMT,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFR;AAGnBwC,QAAAA,oBAAoB,EAAGxC,KAAD,IAAW8B,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA;AAAf,SAAD,CAHpB;AAInB;AACAyC,QAAAA,eAAe,EAAGH,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAAStC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CALf;AAMnB0C,QAAAA,iBAAiB,EAAG1C,KAAD,IAAW8B,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA;AAAf,SAAD;AANjB,OAAb,CAAR;AAQD,KAVD,CAUE,OAAO2C,CAAP,EAAU;AACVC,MAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ,EAAoCF,CAApC;AACD;AACF,GAdD;AAeD;;AAED,SAASG,YAAT,CAAsBf,OAAtB,EAA8C;AAC5C,QAAMJ,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAeE,OAAf,CAAb;AACAnC,EAAAA,YAAY,CAACkD,YAAb,CAA0BnB,IAA1B;AACD;;AAED,SAASJ,+BAAT,CACES,QAAwC,GAAG,CAACC,CAAD,EAAIC,EAAJ,KAAW;AACpDtC,EAAAA,YAAY,CAAC2B,+BAAb,CAA8CwB,GAAD,IAAc;AACzDD,IAAAA,YAAY,CAAC;AAAER,MAAAA,KAAK,EAAE,IAAT;AAAetC,MAAAA,KAAK,EAAE;AAAtB,KAAD,CAAZ;AACAuB,IAAAA,+BAA+B,CAACS,QAAD,CAA/B;AACD,GAHD;AAID,CANH,EAOE;AACApC,EAAAA,YAAY,CAAC2B,+BAAb,CAA8CI,IAAD,IAAe;AAC1D,QAAI;AACF,YAAMQ,UAAU,GAAGP,IAAI,CAACQ,KAAL,CAAWT,IAAX,CAAnB;AACAK,MAAAA,QAAQ,CAACG,UAAD,EAAa;AACnBE,QAAAA,WAAW,EAAGC,KAAD,IAAWQ,YAAY,CAAC;AAAER,UAAAA,KAAF;AAAStC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CADjB;AAEnBuC,QAAAA,aAAa,EAAE,MAAMO,YAAY,CAAC;AAAER,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFd;AAGnBwC,QAAAA,oBAAoB,EAAGxC,KAAD,IAAW8C,YAAY,CAAC;AAAER,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA;AAAf,SAAD,CAH1B;AAInB;AACAyC,QAAAA,eAAe,EAAGH,KAAD,IAAWQ,YAAY,CAAC;AAAER,UAAAA,KAAF;AAAStC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CALrB;AAMnB0C,QAAAA,iBAAiB,EAAG1C,KAAD,IAAW8C,YAAY,CAAC;AAAER,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA;AAAf,SAAD;AANvB,OAAb,CAAR;AAQAuB,MAAAA,+BAA+B,CAACS,QAAD,CAA/B;AACD,KAXD,CAWE,OAAOW,CAAP,EAAU;AACVC,MAAAA,OAAO,CAACC,GAAR,CAAY,0BAAZ,EAAwC,sBAAxC,EAAgEF,CAAhE;AACD;AACF,GAfD;AAgBD;;AAED,SAASlB,wBAAT,CACEO,QAAmC,GAAG,CAACC,CAAD,EAAIC,EAAJ,KAAW,CAAE,CADrD,EAEE;AACAtC,EAAAA,YAAY,CAAC6B,wBAAb,CAAuCuB,kBAAD,IAA6B;AACjE,QAAI;AACFhB,MAAAA,QAAQ,CAACgB,kBAAD,EAAqB;AAC3BX,QAAAA,WAAW,EAAGC,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAAStC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CADH;AAE3BuC,QAAAA,aAAa,EAAE,MAAMT,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFA;AAG3BwC,QAAAA,oBAAoB,EAAGxC,KAAD,IAAW8B,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA;AAAf,SAAD,CAHZ;AAI3B;AACAyC,QAAAA,eAAe,EAAGH,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAAStC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CALP;AAM3B0C,QAAAA,iBAAiB,EAAG1C,KAAD,IAAW8B,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAetC,UAAAA;AAAf,SAAD;AANT,OAArB,CAAR;AAQD,KATD,CASE,OAAO2C,CAAP,EAAU;AACVC,MAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ,EAAoCF,CAApC;AACD;AACF,GAbD;AAcD;;AAED,SAAS5B,uBAAT,CACEiB,QAAqC,GAAIC,CAAD,IAAO,CAAE,CADnD,EAEE;AACArC,EAAAA,YAAY,CAACmB,uBAAb,CAAsCY,IAAD,IAAe;AAClD,8BAAsCA,IAAtC,EAA4CK,QAA5C;AACD,GAFD;AAGD;;AAED,SAASf,kBAAT,CAA4Be,QAA2B,GAAG,MAAM,CAAE,CAAlE,EAAoE;AAClEpC,EAAAA,YAAY,CAACqB,kBAAb,CAAiCgB,CAAD,IAAYD,QAAQ,EAApD;AACD;;AAED,SAASb,gBAAT,CAA0Ba,QAA+B,GAAIC,CAAD,IAAO,CAAE,CAArE,EAAuE;AACrErC,EAAAA,YAAY,CAACqD,sBAAb,CAAqCtB,IAAD,IAAe;AACjD,8BAA2BA,IAA3B,EAAiCK,QAAjC;AACD,GAFD;AAGD","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 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 // todo: refactor\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}\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\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
|
@@ -28,11 +28,11 @@ export const PrimerNativeMapping = {
|
|
|
28
28
|
NativeModule.initialize(token);
|
|
29
29
|
},
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
// todo: refactor
|
|
32
|
+
// fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {
|
|
33
|
+
// configure(config);
|
|
34
|
+
// NativeModule.fetchSavedPaymentInstruments(token);
|
|
35
|
+
// },
|
|
36
36
|
dispose() {
|
|
37
37
|
NativeModule.dispose();
|
|
38
38
|
}
|
|
@@ -46,8 +46,8 @@ 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
|
-
configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
function configureSettings(settings = {}) {
|
|
@@ -106,6 +106,53 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
function actionResume(request) {
|
|
110
|
+
const data = JSON.stringify(request);
|
|
111
|
+
NativeModule.actionResume(data);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function configureOnClientSessionActions(callback = (_, __) => {
|
|
115
|
+
NativeModule.configureOnClientSessionActions(___ => {
|
|
116
|
+
actionResume({
|
|
117
|
+
error: null,
|
|
118
|
+
token: null
|
|
119
|
+
});
|
|
120
|
+
configureOnClientSessionActions(callback);
|
|
121
|
+
});
|
|
122
|
+
}) {
|
|
123
|
+
NativeModule.configureOnClientSessionActions(data => {
|
|
124
|
+
try {
|
|
125
|
+
const parsedData = JSON.parse(data);
|
|
126
|
+
callback(parsedData, {
|
|
127
|
+
handleError: error => actionResume({
|
|
128
|
+
error,
|
|
129
|
+
token: null
|
|
130
|
+
}),
|
|
131
|
+
handleSuccess: () => actionResume({
|
|
132
|
+
error: null,
|
|
133
|
+
token: null
|
|
134
|
+
}),
|
|
135
|
+
handleNewClientToken: token => actionResume({
|
|
136
|
+
error: null,
|
|
137
|
+
token
|
|
138
|
+
}),
|
|
139
|
+
// deprecated
|
|
140
|
+
resumeWithError: error => actionResume({
|
|
141
|
+
error,
|
|
142
|
+
token: null
|
|
143
|
+
}),
|
|
144
|
+
resumeWithSuccess: token => actionResume({
|
|
145
|
+
error: null,
|
|
146
|
+
token
|
|
147
|
+
})
|
|
148
|
+
});
|
|
149
|
+
configureOnClientSessionActions(callback);
|
|
150
|
+
} catch (e) {
|
|
151
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
|
|
109
156
|
function configureOnResumeSuccess(callback = (_, __) => {}) {
|
|
110
157
|
NativeModule.configureOnResumeSuccess(paymentMethodToken => {
|
|
111
158
|
try {
|
|
@@ -153,10 +200,4 @@ function configureOnError(callback = _ => {}) {
|
|
|
153
200
|
parseCallback(data, callback);
|
|
154
201
|
});
|
|
155
202
|
}
|
|
156
|
-
|
|
157
|
-
function configureOnSavedPaymentInstrumentsFetched(callback = _ => {}) {
|
|
158
|
-
NativeModule.configureOnSavedPaymentInstrumentsFetched(data => {
|
|
159
|
-
parseCallback(data, callback);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
203
|
//# sourceMappingURL=Primer.js.map
|
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","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","paymentMethodToken","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 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 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"]}
|
|
1
|
+
{"version":3,"sources":["Primer.ts"],"names":["NativeModules","parseCallback","PrimerRN","NativeModule","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","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 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 // todo: refactor\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}\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\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,15 @@
|
|
|
1
|
+
export declare type ClientSessionActionsRequest = IClientSessionActionsRequest;
|
|
2
|
+
interface IClientSessionActionsRequest {
|
|
3
|
+
actions: ClientSessionAction[];
|
|
4
|
+
}
|
|
5
|
+
declare type ClientSessionAction = IClientSessionAction;
|
|
6
|
+
interface IClientSessionAction {
|
|
7
|
+
type: 'SELECT_PAYMENT_METHOD' | 'UNSELECT_PAYMENT_METHOD' | 'SET_BILLING_ADDRESS';
|
|
8
|
+
paymentMethodType?: string;
|
|
9
|
+
network?: string;
|
|
10
|
+
params?: IActionParams;
|
|
11
|
+
}
|
|
12
|
+
interface IActionParams {
|
|
13
|
+
billingAddress: Record<string, string | null>;
|
|
14
|
+
}
|
|
15
|
+
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 {};
|
|
@@ -26,12 +26,6 @@ export interface IPrimer {
|
|
|
26
26
|
* @param config Configuration for the SDK.
|
|
27
27
|
*/
|
|
28
28
|
showPaymentMethod(token: String, intent: PrimerPaymentMethodIntent, config: PrimerConfig): void;
|
|
29
|
-
/**
|
|
30
|
-
* Prompt the SDK to fetch saved payment instruments from Primer's vault.
|
|
31
|
-
* Use the onSavedPaymentInstrumentsFetched callback in {@link PrimerConfig}
|
|
32
|
-
* to handle returned saved payment instruments.
|
|
33
|
-
*/
|
|
34
|
-
fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void;
|
|
35
29
|
/**
|
|
36
30
|
* remove all listeners & callbacks.
|
|
37
31
|
*/
|
package/package.json
CHANGED
package/src/Primer.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
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
|
-
OnSavedPaymentInstrumentsFetchedCallback,
|
|
8
9
|
OnTokenAddedToVaultCallback,
|
|
9
10
|
OnTokenizeSuccessCallback,
|
|
10
11
|
} from './models/primer-callbacks';
|
|
@@ -43,10 +44,11 @@ export const PrimerNativeMapping: IPrimer = {
|
|
|
43
44
|
NativeModule.initialize(token);
|
|
44
45
|
},
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
// todo: refactor
|
|
48
|
+
// fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {
|
|
49
|
+
// configure(config);
|
|
50
|
+
// NativeModule.fetchSavedPaymentInstruments(token);
|
|
51
|
+
// },
|
|
50
52
|
|
|
51
53
|
dispose(): void {
|
|
52
54
|
NativeModule.dispose();
|
|
@@ -60,10 +62,8 @@ 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
|
-
configureOnSavedPaymentInstrumentsFetched(
|
|
65
|
-
config.onSavedPaymentInstrumentsFetched
|
|
66
|
-
);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
function configureSettings(settings: PrimerSettings = {}): void {
|
|
@@ -108,6 +108,37 @@ function configureOnTokenizeSuccess(
|
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
function actionResume(request: ResumeRequest) {
|
|
112
|
+
const data = JSON.stringify(request);
|
|
113
|
+
NativeModule.actionResume(data);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function configureOnClientSessionActions(
|
|
117
|
+
callback: OnClientSessionActionsCallback = (_, __) => {
|
|
118
|
+
NativeModule.configureOnClientSessionActions((___: any) => {
|
|
119
|
+
actionResume({ error: null, token: null });
|
|
120
|
+
configureOnClientSessionActions(callback);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
) {
|
|
124
|
+
NativeModule.configureOnClientSessionActions((data: any) => {
|
|
125
|
+
try {
|
|
126
|
+
const parsedData = JSON.parse(data) as ClientSessionActionsRequest;
|
|
127
|
+
callback(parsedData, {
|
|
128
|
+
handleError: (error) => actionResume({ error, token: null }),
|
|
129
|
+
handleSuccess: () => actionResume({ error: null, token: null }),
|
|
130
|
+
handleNewClientToken: (token) => actionResume({ error: null, token }),
|
|
131
|
+
// deprecated
|
|
132
|
+
resumeWithError: (error) => actionResume({ error, token: null }),
|
|
133
|
+
resumeWithSuccess: (token) => actionResume({ error: null, token }),
|
|
134
|
+
});
|
|
135
|
+
configureOnClientSessionActions(callback);
|
|
136
|
+
} catch (e) {
|
|
137
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
|
|
111
142
|
function configureOnResumeSuccess(
|
|
112
143
|
callback: OnTokenizeSuccessCallback = (_, __) => {}
|
|
113
144
|
) {
|
|
@@ -145,14 +176,6 @@ function configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {
|
|
|
145
176
|
});
|
|
146
177
|
}
|
|
147
178
|
|
|
148
|
-
function configureOnSavedPaymentInstrumentsFetched(
|
|
149
|
-
callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}
|
|
150
|
-
) {
|
|
151
|
-
NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {
|
|
152
|
-
parseCallback<PaymentInstrumentToken[]>(data, callback);
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
179
|
interface ResumeRequest {
|
|
157
180
|
error: string | null;
|
|
158
181
|
token: string | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ClientSessionActionsRequest = IClientSessionActionsRequest;
|
|
2
|
+
|
|
3
|
+
interface IClientSessionActionsRequest {
|
|
4
|
+
actions: ClientSessionAction[];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
type ClientSessionAction = IClientSessionAction;
|
|
8
|
+
|
|
9
|
+
interface IClientSessionAction {
|
|
10
|
+
type:
|
|
11
|
+
| 'SELECT_PAYMENT_METHOD'
|
|
12
|
+
| 'UNSELECT_PAYMENT_METHOD'
|
|
13
|
+
| 'SET_BILLING_ADDRESS';
|
|
14
|
+
paymentMethodType?: string;
|
|
15
|
+
network?: string;
|
|
16
|
+
params?: IActionParams;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface IActionParams {
|
|
20
|
+
billingAddress: Record<string, string | null>;
|
|
21
|
+
}
|
|
@@ -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
|
}
|
package/src/models/primer.ts
CHANGED
|
@@ -34,13 +34,6 @@ export interface IPrimer {
|
|
|
34
34
|
config: PrimerConfig
|
|
35
35
|
): void;
|
|
36
36
|
|
|
37
|
-
/**
|
|
38
|
-
* Prompt the SDK to fetch saved payment instruments from Primer's vault.
|
|
39
|
-
* Use the onSavedPaymentInstrumentsFetched callback in {@link PrimerConfig}
|
|
40
|
-
* to handle returned saved payment instruments.
|
|
41
|
-
*/
|
|
42
|
-
fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void;
|
|
43
|
-
|
|
44
37
|
/**
|
|
45
38
|
* remove all listeners & callbacks.
|
|
46
39
|
*/
|