@primer-io/react-native 0.12.4 → 0.15.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/build.gradle +2 -2
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +191 -152
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +131 -86
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +3 -2
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEventsRN.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/utils/ErrorHelper.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +14 -0
- package/ios/DataModels/PrimerErrorRN.swift +32 -2
- package/ios/RNTPrimer.m +43 -0
- package/ios/RNTPrimer.swift +394 -0
- package/ios/ReactNative-Bridging-Header.h +1 -9
- package/ios/ReactNative.xcodeproj/project.pbxproj +44 -0
- package/lib/commonjs/Primer.js +221 -209
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +145 -0
- package/lib/commonjs/RNPrimer.js.map +1 -0
- package/lib/commonjs/index.js +1 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/primer-intent.js.map +1 -1
- package/lib/commonjs/models/utils/redirectScheme.js +4 -0
- package/lib/commonjs/models/utils/redirectScheme.js.map +1 -0
- package/lib/module/Primer.js +203 -209
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/RNPrimer.js +136 -0
- package/lib/module/RNPrimer.js.map +1 -0
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/primer-intent.js.map +1 -1
- package/lib/module/models/utils/redirectScheme.js +2 -0
- package/lib/module/models/utils/redirectScheme.js.map +1 -0
- package/lib/typescript/Primer.d.ts +13 -0
- package/lib/typescript/RNPrimer.d.ts +24 -0
- package/lib/typescript/models/primer-callbacks.d.ts +7 -9
- package/lib/typescript/models/primer-config.d.ts +16 -13
- package/lib/typescript/models/primer-intent.d.ts +1 -1
- package/lib/typescript/models/primer-request.d.ts +2 -12
- package/lib/typescript/models/primer-settings.d.ts +3 -5
- package/lib/typescript/models/primer.d.ts +4 -4
- package/lib/typescript/models/utils/redirectScheme.d.ts +3 -0
- package/package.json +4 -1
- package/primer-io-react-native.podspec +2 -3
- package/src/Primer.ts +227 -176
- package/src/RNPrimer.ts +170 -0
- package/src/index.tsx +1 -0
- package/src/models/primer-callbacks.ts +9 -27
- package/src/models/primer-config.ts +23 -20
- package/src/models/primer-intent.ts +1 -1
- package/src/models/primer-request.ts +2 -16
- package/src/models/primer-settings.ts +3 -5
- package/src/models/primer.ts +5 -5
- package/src/models/utils/redirectScheme.ts +5 -0
- package/ios/PrimerRN+PrimerDelegate.swift +0 -147
- package/ios/PrimerRN.swift +0 -166
- package/ios/ReactNative.m +0 -34
|
@@ -1,124 +1,169 @@
|
|
|
1
1
|
package com.primerioreactnative
|
|
2
2
|
|
|
3
3
|
import android.util.Log
|
|
4
|
-
import com.
|
|
5
|
-
import com.primerioreactnative.
|
|
6
|
-
import com.primerioreactnative.
|
|
7
|
-
import com.primerioreactnative.
|
|
8
|
-
import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
|
|
9
|
-
import com.primerioreactnative.utils.PrimerEventQueueRN
|
|
4
|
+
import com.primerioreactnative.datamodels.*
|
|
5
|
+
import com.primerioreactnative.utils.PrimerImplementedRNCallbacks
|
|
6
|
+
import com.primerioreactnative.utils.asError
|
|
7
|
+
import com.primerioreactnative.utils.errorTo
|
|
10
8
|
import io.primer.android.CheckoutEventListener
|
|
11
|
-
import io.primer.android.completion.ActionResumeHandler
|
|
12
9
|
import io.primer.android.completion.ResumeHandler
|
|
13
10
|
import io.primer.android.events.CheckoutEvent
|
|
14
11
|
import kotlinx.serialization.encodeToString
|
|
15
12
|
import kotlinx.serialization.json.Json
|
|
13
|
+
import org.json.JSONObject
|
|
16
14
|
|
|
17
15
|
class PrimerRNEventListener : CheckoutEventListener {
|
|
18
16
|
|
|
19
|
-
private var
|
|
20
|
-
private var
|
|
21
|
-
private var
|
|
22
|
-
private var
|
|
23
|
-
private var
|
|
24
|
-
var onPrimerErrorQueue: PrimerEventQueueRN? = null
|
|
25
|
-
var onSavedPaymentInstrumentsFetchedQueue: PrimerEventQueueRN? = null
|
|
17
|
+
private var clientTokenCallback: ((String?, PrimerErrorRN?) -> Unit)? = null
|
|
18
|
+
private var onClientSessionActions: ((String?, PrimerErrorRN?) -> Unit)? = null
|
|
19
|
+
private var onTokenizeSuccess: ((String?, PrimerErrorRN?) -> Unit)? = null
|
|
20
|
+
private var onResumeSuccess: ((String?, PrimerErrorRN?) -> Unit)? = null
|
|
21
|
+
private var implementedRNCallbacks: PrimerImplementedRNCallbacks? = null
|
|
26
22
|
|
|
27
|
-
var
|
|
28
|
-
var actionCompletion: ((error: String?, token: String?) -> Unit)? = null
|
|
23
|
+
private var resumeHandler: ResumeHandler? = null
|
|
29
24
|
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
fun configureOnTokenizeSuccess(callback: Callback) {
|
|
34
|
-
onTokenizeSuccessQueue = PrimerEventQueueRN()
|
|
35
|
-
onTokenizeSuccessQueue?.poll(callback)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
fun configureOnClientSessionActions(callback: Callback) {
|
|
39
|
-
onClientSessionActionsQueue = PrimerEventQueueRN()
|
|
40
|
-
onClientSessionActionsQueue?.poll(callback)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
fun configureOnResumeSuccess(callback: Callback) {
|
|
44
|
-
onResumeSuccessQueue = PrimerEventQueueRN()
|
|
45
|
-
onResumeSuccessQueue?.poll(callback)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
fun configureOnVaultSuccess(callback: Callback) {
|
|
49
|
-
onVaultSuccessQueue = PrimerEventQueueRN()
|
|
50
|
-
onVaultSuccessQueue?.poll(callback)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
fun configureOnDismiss(callback: Callback) {
|
|
54
|
-
onDismissQueue = PrimerEventQueueRN()
|
|
55
|
-
onDismissQueue?.poll(callback)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
fun configureOnPrimerError(callback: Callback) {
|
|
59
|
-
onPrimerErrorQueue = PrimerEventQueueRN()
|
|
60
|
-
onPrimerErrorQueue?.poll(callback)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
fun configureOnSavedPaymentInstrumentsFetched(callback: Callback) {
|
|
64
|
-
onSavedPaymentInstrumentsFetchedQueue = PrimerEventQueueRN()
|
|
65
|
-
onSavedPaymentInstrumentsFetchedQueue?.poll(callback)
|
|
66
|
-
}
|
|
25
|
+
var sendEvent: ((eventName: String, paramsJson: JSONObject?) -> Unit)? = null
|
|
26
|
+
var sendError: ((error: PrimerErrorRN) -> Unit)? = null
|
|
67
27
|
|
|
68
28
|
override fun onClientSessionActions(event: CheckoutEvent.OnClientSessionActions) {
|
|
69
29
|
val token = PrimerOnClientSessionActionsRequestRN.build(event.data)
|
|
70
|
-
val request = Json.encodeToString(token)
|
|
30
|
+
val request = JSONObject(Json.encodeToString(token))
|
|
71
31
|
|
|
72
|
-
|
|
73
|
-
|
|
32
|
+
onClientSessionActions = { newClientToken, err ->
|
|
33
|
+
when {
|
|
34
|
+
err != null -> resumeHandler?.handleError(err.asError())
|
|
35
|
+
newClientToken != null -> resumeHandler?.handleNewClientToken(newClientToken)
|
|
36
|
+
else -> resumeHandler?.handleSuccess()
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
event.resumeHandler.handleClientToken(null)
|
|
41
|
+
sendEvent?.invoke(PrimerEventsRN.OnClientSessionActions.string, request)
|
|
74
42
|
}
|
|
75
43
|
|
|
76
44
|
override fun onCheckoutEvent(e: CheckoutEvent) {
|
|
77
45
|
when (e) {
|
|
78
|
-
is CheckoutEvent.TokenAddedToVault -> {
|
|
79
|
-
val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(e.data)
|
|
80
|
-
val request = Json.encodeToString(token)
|
|
81
|
-
onVaultSuccessQueue?.addRequestAndPoll(request)
|
|
82
|
-
}
|
|
83
46
|
is CheckoutEvent.TokenizationSuccess -> {
|
|
84
47
|
val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(e.data)
|
|
85
|
-
val request = Json.encodeToString(token)
|
|
86
|
-
|
|
48
|
+
val request = JSONObject(Json.encodeToString(token))
|
|
49
|
+
onTokenizeSuccess = { newClientToken, err ->
|
|
50
|
+
when {
|
|
51
|
+
err != null -> resumeHandler?.handleError(err.asError())
|
|
52
|
+
newClientToken != null -> resumeHandler?.handleNewClientToken(newClientToken)
|
|
53
|
+
else -> resumeHandler?.handleSuccess()
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
87
57
|
resumeHandler = e.resumeHandler
|
|
88
|
-
|
|
89
|
-
is CheckoutEvent.TokenSelected -> {
|
|
90
|
-
val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(e.data)
|
|
91
|
-
val request = Json.encodeToString(token)
|
|
92
|
-
onTokenizeSuccessQueue?.addRequestAndPoll(request)
|
|
58
|
+
sendEvent?.invoke(PrimerEventsRN.OnTokenizeSuccessCallback.string, request)
|
|
93
59
|
}
|
|
94
60
|
is CheckoutEvent.ResumeSuccess -> {
|
|
95
61
|
val token = e.resumeToken
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
62
|
+
if (implementedRNCallbacks?.isOnResumeSuccessImplemented == true) {
|
|
63
|
+
onResumeSuccess = { newClientToken, err ->
|
|
64
|
+
when {
|
|
65
|
+
err != null -> resumeHandler?.handleError(err.asError())
|
|
66
|
+
newClientToken != null -> resumeHandler?.handleNewClientToken(newClientToken)
|
|
67
|
+
else -> resumeHandler?.handleSuccess()
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
resumeHandler = e.resumeHandler
|
|
72
|
+
val resumeToken = mapOf(Keys.RESUME_TOKEN to token)
|
|
73
|
+
sendEvent?.invoke(
|
|
74
|
+
PrimerEventsRN.OnResumeSuccess.string,
|
|
75
|
+
JSONObject(Json.encodeToString(resumeToken))
|
|
76
|
+
)
|
|
77
|
+
} else {
|
|
78
|
+
sendError?.invoke(ErrorTypeRN.InitFailed
|
|
79
|
+
errorTo "Callback [onResumeSuccess] should had been implemented.")
|
|
80
|
+
}
|
|
102
81
|
}
|
|
103
82
|
is CheckoutEvent.ApiError -> {
|
|
104
83
|
Log.e("PrimerRN", "ApiError: ${e.data}")
|
|
105
|
-
val exception =
|
|
106
|
-
|
|
107
|
-
|
|
84
|
+
val exception = ErrorTypeRN.CheckoutFlowFailed errorTo e.data.description
|
|
85
|
+
sendError?.invoke(exception)
|
|
86
|
+
}
|
|
87
|
+
is CheckoutEvent.TokenAddedToVault -> {
|
|
88
|
+
val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(e.data)
|
|
89
|
+
val request = JSONObject(Json.encodeToString(token))
|
|
90
|
+
sendEvent?.invoke(
|
|
91
|
+
PrimerEventsRN.OnVaultSuccess.string,
|
|
92
|
+
request
|
|
108
93
|
)
|
|
109
|
-
|
|
110
|
-
|
|
94
|
+
}
|
|
95
|
+
is CheckoutEvent.TokenSelected -> {
|
|
96
|
+
val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(e.data)
|
|
97
|
+
val request = JSONObject(Json.encodeToString(token))
|
|
98
|
+
onTokenizeSuccess = { newClientToken, err ->
|
|
99
|
+
when {
|
|
100
|
+
err != null -> resumeHandler?.handleError(err.asError())
|
|
101
|
+
newClientToken != null -> resumeHandler?.handleNewClientToken(newClientToken)
|
|
102
|
+
else -> resumeHandler?.handleSuccess()
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
resumeHandler = e.resumeHandler
|
|
107
|
+
sendEvent?.invoke(PrimerEventsRN.OnTokenizeSuccessCallback.string, request)
|
|
108
|
+
}
|
|
109
|
+
is CheckoutEvent.Exit -> {
|
|
110
|
+
removeCallbacksAndHandlers()
|
|
111
|
+
if (implementedRNCallbacks?.isOnCheckoutDismissedImplemented == true) {
|
|
112
|
+
sendEvent?.invoke(
|
|
113
|
+
PrimerEventsRN.OnCheckoutDismissed.string,
|
|
114
|
+
null
|
|
115
|
+
)
|
|
116
|
+
} else {
|
|
117
|
+
sendError?.invoke(ErrorTypeRN.InitFailed
|
|
118
|
+
errorTo "Callback [onCheckoutDismissed] should had been implemented.")
|
|
119
|
+
}
|
|
111
120
|
}
|
|
112
121
|
is CheckoutEvent.TokenizationError -> {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
ErrorTypeRN.TokenizationFailed
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
122
|
+
if (implementedRNCallbacks?.isCheckoutFailedImplemented == true) {
|
|
123
|
+
Log.e("PrimerRN", "TokenizationError: ${e.data}")
|
|
124
|
+
val exception = ErrorTypeRN.TokenizationFailed errorTo e.data.description
|
|
125
|
+
sendError?.invoke(exception)
|
|
126
|
+
} else {
|
|
127
|
+
sendError?.invoke(ErrorTypeRN.InitFailed
|
|
128
|
+
errorTo "Callback [onResumeError] should had been implemented.")
|
|
129
|
+
}
|
|
120
130
|
}
|
|
121
131
|
else -> Unit
|
|
122
132
|
}
|
|
123
133
|
}
|
|
134
|
+
|
|
135
|
+
fun onClientTokenCallback(clientToken: String?, error: PrimerErrorRN?) {
|
|
136
|
+
this.clientTokenCallback?.invoke(clientToken, error)
|
|
137
|
+
sendEvent?.invoke(PrimerEventsRN.OnClientTokenCallback.string, null)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
fun onClientSessionActions(clientToken: String?, error: PrimerErrorRN?) {
|
|
141
|
+
if (implementedRNCallbacks?.isClientSessionActionsImplemented == true) {
|
|
142
|
+
this.onClientSessionActions?.invoke(clientToken, error)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
fun onTokenizeSuccess(clientToken: String?, error: PrimerErrorRN?) {
|
|
147
|
+
this.onTokenizeSuccess?.invoke(clientToken, error)
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
fun onResumeSuccess(clientToken: String?, error: PrimerErrorRN?) {
|
|
151
|
+
if (implementedRNCallbacks?.isOnResumeSuccessImplemented == true) {
|
|
152
|
+
this.onResumeSuccess?.invoke(clientToken, error)
|
|
153
|
+
} else {
|
|
154
|
+
sendError?.invoke(ErrorTypeRN.CheckoutFlowFailed
|
|
155
|
+
errorTo "Callback [onResumeSuccess] should had been implemented.")
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
fun removeCallbacksAndHandlers() {
|
|
160
|
+
clientTokenCallback = null
|
|
161
|
+
onClientSessionActions = null
|
|
162
|
+
onTokenizeSuccess = null
|
|
163
|
+
onResumeSuccess = null
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
fun setImplementedCallbacks(implementedRNCallbacks: PrimerImplementedRNCallbacks) {
|
|
167
|
+
this.implementedRNCallbacks = implementedRNCallbacks
|
|
168
|
+
}
|
|
124
169
|
}
|
|
@@ -5,8 +5,9 @@ import kotlinx.serialization.Serializable
|
|
|
5
5
|
|
|
6
6
|
@Serializable
|
|
7
7
|
data class PrimerErrorRN(
|
|
8
|
-
val
|
|
9
|
-
val
|
|
8
|
+
val errorId: String? = null,
|
|
9
|
+
val errorDescription: String? = null,
|
|
10
|
+
val recoverySuggestion: String? = null
|
|
10
11
|
)
|
|
11
12
|
|
|
12
13
|
@Serializable
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package com.primerioreactnative.datamodels
|
|
2
|
+
|
|
3
|
+
sealed class PrimerEventsRN(val string: String) {
|
|
4
|
+
object OnClientTokenCallback: PrimerEventsRN("onClientTokenCallback")
|
|
5
|
+
object OnClientSessionActions: PrimerEventsRN("onClientSessionActions")
|
|
6
|
+
object OnTokenizeSuccessCallback: PrimerEventsRN("onTokenizeSuccessCallback")
|
|
7
|
+
object OnResumeSuccess: PrimerEventsRN("onResumeSuccess")
|
|
8
|
+
object OnCheckoutDismissed: PrimerEventsRN("onCheckoutDismissed")
|
|
9
|
+
object OnError: PrimerEventsRN("onError")
|
|
10
|
+
object OnVaultSuccess: PrimerEventsRN("onVaultSuccess")
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package com.primerioreactnative.utils
|
|
2
|
+
|
|
3
|
+
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
4
|
+
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
5
|
+
|
|
6
|
+
infix fun ErrorTypeRN.errorTo(message: String) = PrimerErrorRN(
|
|
7
|
+
ErrorTypeRN.CheckoutFlowFailed.name,
|
|
8
|
+
message
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
fun PrimerErrorRN.asError() = Error("${this.errorId}: ${this.errorDescription}")
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.primerioreactnative.utils
|
|
2
|
+
|
|
3
|
+
import kotlinx.serialization.Serializable
|
|
4
|
+
|
|
5
|
+
@Serializable
|
|
6
|
+
data class PrimerImplementedRNCallbacks(
|
|
7
|
+
val isClientTokenCallbackImplemented: Boolean? = null,
|
|
8
|
+
val isTokenAddedToVaultImplemented: Boolean? = null,
|
|
9
|
+
val isOnResumeSuccessImplemented: Boolean? = null,
|
|
10
|
+
val isOnResumeErrorImplemented: Boolean? = null,
|
|
11
|
+
val isOnCheckoutDismissedImplemented: Boolean? = null,
|
|
12
|
+
val isCheckoutFailedImplemented: Boolean? = null,
|
|
13
|
+
val isClientSessionActionsImplemented: Boolean? = null
|
|
14
|
+
)
|
|
@@ -15,6 +15,36 @@ enum ErrorTypeRN: String, Error, Encodable {
|
|
|
15
15
|
case generic
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
struct
|
|
19
|
-
let
|
|
18
|
+
struct NativeError: CustomNSError, LocalizedError, Codable {
|
|
19
|
+
let errorId: String
|
|
20
|
+
let errorDescription: String?
|
|
21
|
+
let recoverySuggestion: String?
|
|
22
|
+
|
|
23
|
+
var rnError: [String: String] {
|
|
24
|
+
var json: [String: String] = [
|
|
25
|
+
"errorId": errorId,
|
|
26
|
+
"description": errorDescription ?? "Something went wrong"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
if let recoverySuggestion = recoverySuggestion {
|
|
30
|
+
json["recoverySuggestion"] = recoverySuggestion
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return json
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
internal extension Error {
|
|
38
|
+
var rnError: [String: String] {
|
|
39
|
+
var json: [String: String] = [
|
|
40
|
+
"errorId": (self as NSError).domain,
|
|
41
|
+
"description": localizedDescription
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
if let recoverySuggestion = (self as NSError).localizedRecoverySuggestion {
|
|
45
|
+
json["recoverySuggestion"] = recoverySuggestion
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return json
|
|
49
|
+
}
|
|
20
50
|
}
|
package/ios/RNTPrimer.m
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNTPrimer.m
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 15/3/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <React/RCTBridgeModule.h>
|
|
9
|
+
#import <React/RCTEventEmitter.h>
|
|
10
|
+
|
|
11
|
+
@interface RCT_EXTERN_MODULE(NativePrimer, RCTEventEmitter)
|
|
12
|
+
|
|
13
|
+
RCT_EXTERN_METHOD(configureWithSettings:(NSString *)settingsStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
14
|
+
|
|
15
|
+
RCT_EXTERN_METHOD(configureWithTheme:(NSString *)themeStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
16
|
+
|
|
17
|
+
RCT_EXTERN_METHOD(showUniversalCheckout:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
18
|
+
|
|
19
|
+
RCT_EXTERN_METHOD(showUniversalCheckoutWithClientToken:(NSString *)clientToken resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
20
|
+
|
|
21
|
+
RCT_EXTERN_METHOD(showVaultManager:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
22
|
+
|
|
23
|
+
RCT_EXTERN_METHOD(showVaultManager:(NSString *)clientToken resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
RCT_EXTERN_METHOD(handleNewClientToken:(NSString *)clientToken resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
28
|
+
|
|
29
|
+
RCT_EXTERN_METHOD(handleError:(NSString *)errorStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
30
|
+
|
|
31
|
+
RCT_EXTERN_METHOD(handleSuccess:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
32
|
+
|
|
33
|
+
RCT_EXTERN_METHOD(setImplementedRNCallbacks:(NSString *)implementedRNCallbacksStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
RCT_EXTERN_METHOD(showPaymentMethod:(NSString *)clientToken paymentMethodStr:(NSString *)paymentMethodStr intentStr:(NSString *)intentStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
41
|
+
|
|
42
|
+
@end
|
|
43
|
+
|