@primer-io/react-native 0.16.2 → 2.1.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/README.md +114 -24
- package/android/build.gradle +10 -2
- package/android/gradle.properties +3 -3
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +124 -150
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +212 -128
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +244 -0
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +275 -0
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutDataRN.kt +12 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +54 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +6 -9
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEvents.kt +13 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentMethodDataRN.kt +8 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +43 -125
- package/android/src/main/java/com/primerioreactnative/extensions/Payment.kt +6 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerAddress.kt +15 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutData.kt +7 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerClientSession.kt +15 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCustomer.kt +13 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerLineItem.kt +8 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerOrder.kt +6 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodData.kt +7 -0
- package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +11 -7
- package/android/src/main/java/com/primerioreactnative/utils/ErrorHelper.kt +1 -3
- package/android/src/main/java/com/primerioreactnative/utils/JsonConverter.kt +45 -0
- package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +31 -0
- package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +16 -6
- package/ios/Core/ReactNative-Bridging-Header.h +10 -0
- package/ios/DataModels/ImplementedRNCallbacks.swift +56 -0
- package/ios/DataModels/PrimerErrorRN.swift +0 -17
- package/ios/DataModels/PrimerSettingsRN.swift +78 -156
- package/ios/DataModels/PrimerThemeRN.swift +1 -10
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +33 -1
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +306 -54
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +5 -1
- package/ios/RNTPrimer.m +28 -12
- package/ios/RNTPrimer.swift +273 -222
- package/ios/ReactNative-Bridging-Header.h +4 -0
- package/ios/ReactNative.xcodeproj/project.pbxproj +14 -14
- package/lib/commonjs/Primer.js +206 -149
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +113 -41
- package/lib/commonjs/RNPrimer.js.map +1 -1
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +240 -71
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +197 -0
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/commonjs/headless_checkout/types.js +4 -0
- package/lib/commonjs/index.js +118 -24
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutData.js +9 -0
- package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -0
- package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js +2 -0
- package/lib/commonjs/models/{action-request.js.map → PrimerCheckoutPaymentMethodData.js.map} +0 -0
- package/lib/commonjs/models/PrimerClientSession.js +2 -0
- package/lib/commonjs/models/{client-session-actions-request.js.map → PrimerClientSession.js.map} +0 -0
- package/lib/commonjs/models/{utils/countryCode.js → PrimerCountryCode.js} +1 -1
- package/lib/commonjs/models/PrimerCountryCode.js.map +1 -0
- package/lib/commonjs/models/{utils/currencyCode.js → PrimerCurrencyCode.js} +1 -1
- package/lib/commonjs/models/PrimerCurrencyCode.js.map +1 -0
- package/lib/commonjs/models/PrimerError.js +28 -0
- package/lib/commonjs/models/PrimerError.js.map +1 -0
- package/lib/commonjs/models/{primer-settings.js → PrimerInterfaces.js} +1 -1
- package/lib/commonjs/models/{primer-callbacks.js.map → PrimerInterfaces.js.map} +0 -0
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js +14 -0
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js.map +1 -0
- package/lib/commonjs/models/PrimerSessionIntent.js +14 -0
- package/lib/commonjs/models/PrimerSessionIntent.js.map +1 -0
- package/lib/commonjs/models/{primer.js → PrimerSettings.js} +1 -1
- package/lib/commonjs/models/{primer-config.js.map → PrimerSettings.js.map} +0 -0
- package/lib/commonjs/models/PrimerTheme.js +2 -0
- package/lib/commonjs/models/{primer-request.js.map → PrimerTheme.js.map} +0 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/Primer.js +205 -136
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/RNPrimer.js +113 -41
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +243 -70
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +188 -0
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/module/headless_checkout/types.js +1 -1
- package/lib/module/index.js +10 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerCheckoutData.js +7 -0
- package/lib/module/models/PrimerCheckoutData.js.map +1 -0
- package/lib/module/models/PrimerCheckoutPaymentMethodData.js +2 -0
- package/lib/{commonjs/models/primer-settings.js.map → module/models/PrimerCheckoutPaymentMethodData.js.map} +0 -0
- package/lib/module/models/PrimerClientSession.js +2 -0
- package/lib/{commonjs/models/primer-theme.js.map → module/models/PrimerClientSession.js.map} +0 -0
- package/lib/module/models/{utils/countryCode.js → PrimerCountryCode.js} +1 -1
- package/lib/module/models/PrimerCountryCode.js.map +1 -0
- package/lib/module/models/{utils/currencyCode.js → PrimerCurrencyCode.js} +1 -1
- package/lib/module/models/PrimerCurrencyCode.js.map +1 -0
- package/lib/module/models/PrimerError.js +19 -0
- package/lib/module/models/PrimerError.js.map +1 -0
- package/lib/module/models/PrimerInterfaces.js +2 -0
- package/lib/{commonjs/models/primer.js.map → module/models/PrimerInterfaces.js.map} +0 -0
- package/lib/module/models/PrimerPaymentMethodTokenData.js +7 -0
- package/lib/module/models/PrimerPaymentMethodTokenData.js.map +1 -0
- package/lib/module/models/PrimerSessionIntent.js +7 -0
- package/lib/module/models/PrimerSessionIntent.js.map +1 -0
- package/lib/module/models/PrimerSettings.js +2 -0
- package/lib/module/models/{action-request.js.map → PrimerSettings.js.map} +0 -0
- package/lib/module/models/PrimerTheme.js +2 -0
- package/lib/module/models/{client-session-actions-request.js.map → PrimerTheme.js.map} +0 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/MerchantExample/App.d.ts +11 -0
- package/lib/typescript/src/Primer.d.ts +2 -0
- package/lib/typescript/{PrimerInput.d.ts → src/PrimerInput.d.ts} +0 -0
- package/lib/typescript/src/RNPrimer.d.ts +32 -0
- package/lib/typescript/{RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts → src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts} +0 -0
- package/lib/typescript/src/headless_checkout/PrimerHeadlessUniversalCheckout.d.ts +11 -0
- package/lib/typescript/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +22 -0
- package/lib/typescript/src/headless_checkout/types.d.ts +22 -0
- package/lib/typescript/src/index.d.ts +10 -0
- package/lib/typescript/src/models/PrimerCheckoutData.d.ts +15 -0
- package/lib/typescript/src/models/PrimerCheckoutPaymentMethodData.d.ts +5 -0
- package/lib/typescript/src/models/PrimerClientSession.d.ts +45 -0
- package/lib/typescript/{models/utils/countryCode.d.ts → src/models/PrimerCountryCode.d.ts} +1 -1
- package/lib/typescript/{models/utils/currencyCode.d.ts → src/models/PrimerCurrencyCode.d.ts} +1 -1
- package/lib/typescript/src/models/PrimerError.d.ts +11 -0
- package/lib/typescript/src/models/PrimerInterfaces.d.ts +27 -0
- package/lib/typescript/src/models/PrimerPaymentMethodTokenData.d.ts +116 -0
- package/lib/typescript/src/models/PrimerSessionIntent.d.ts +4 -0
- package/lib/typescript/src/models/PrimerSettings.d.ts +77 -0
- package/lib/typescript/{models/primer-theme.d.ts → src/models/PrimerTheme.d.ts} +1 -1
- package/lib/typescript/{utils → src/utils}/index.d.ts +1 -1
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/Primer.ts +231 -170
- package/src/RNPrimer.ts +148 -51
- package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +281 -94
- package/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.ts +252 -0
- package/src/headless_checkout/types.ts +26 -12
- package/src/index.tsx +36 -8
- package/src/models/PrimerCheckoutData.ts +18 -0
- package/src/models/PrimerCheckoutPaymentMethodData.ts +5 -0
- package/src/models/PrimerClientSession.ts +53 -0
- package/src/models/{utils/countryCode.ts → PrimerCountryCode.ts} +1 -1
- package/src/models/{utils/currencyCode.ts → PrimerCurrencyCode.ts} +1 -1
- package/src/models/PrimerError.ts +20 -0
- package/src/models/PrimerInterfaces.ts +36 -0
- package/src/models/PrimerPaymentMethodTokenData.ts +130 -0
- package/src/models/PrimerSessionIntent.ts +4 -0
- package/src/models/PrimerSettings.ts +108 -0
- package/src/models/{primer-theme.ts → PrimerTheme.ts} +1 -1
- package/src/utils/index.ts +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerHeadlessUniversalCheckout.kt +0 -198
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEventsRN.kt +0 -11
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerIntentRN.kt +0 -80
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerOnClientSessionActionsRequestRN.kt +0 -65
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerRequestRN.kt +0 -9
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerThemeRN.kt +0 -51
- package/android/src/main/java/com/primerioreactnative/huc/extensions/Map.kt +0 -10
- package/android/src/main/java/com/primerioreactnative/utils/Keys.kt +0 -7
- package/android/src/main/java/com/primerioreactnative/utils/PrimerEventQueueRN.kt +0 -30
- package/ios/DataModels/PrimerIntentRN.swift +0 -10
- package/ios/DataModels/PrimerRequestRN.swift +0 -14
- package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +0 -110
- package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/commonjs/models/action-request.js +0 -2
- package/lib/commonjs/models/client-session-actions-request.js +0 -2
- package/lib/commonjs/models/payment-instrument-token.js +0 -30
- package/lib/commonjs/models/payment-instrument-token.js.map +0 -1
- package/lib/commonjs/models/primer-callbacks.js +0 -6
- package/lib/commonjs/models/primer-config.js +0 -6
- package/lib/commonjs/models/primer-error.js +0 -4
- package/lib/commonjs/models/primer-error.js.map +0 -1
- package/lib/commonjs/models/primer-intent.js +0 -4
- package/lib/commonjs/models/primer-intent.js.map +0 -1
- package/lib/commonjs/models/primer-request.js +0 -2
- package/lib/commonjs/models/primer-theme.js +0 -2
- package/lib/commonjs/models/utils/countryCode.js.map +0 -1
- package/lib/commonjs/models/utils/currencyCode.js.map +0 -1
- package/lib/commonjs/models/utils/redirectScheme.js +0 -4
- package/lib/commonjs/models/utils/redirectScheme.js.map +0 -1
- package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +0 -98
- package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/module/models/action-request.js +0 -2
- package/lib/module/models/client-session-actions-request.js +0 -2
- package/lib/module/models/payment-instrument-token.js +0 -28
- package/lib/module/models/payment-instrument-token.js.map +0 -1
- package/lib/module/models/primer-callbacks.js +0 -2
- package/lib/module/models/primer-callbacks.js.map +0 -1
- package/lib/module/models/primer-config.js +0 -2
- package/lib/module/models/primer-config.js.map +0 -1
- package/lib/module/models/primer-error.js +0 -2
- package/lib/module/models/primer-error.js.map +0 -1
- package/lib/module/models/primer-intent.js +0 -2
- package/lib/module/models/primer-intent.js.map +0 -1
- package/lib/module/models/primer-request.js +0 -2
- package/lib/module/models/primer-request.js.map +0 -1
- package/lib/module/models/primer-settings.js +0 -2
- package/lib/module/models/primer-settings.js.map +0 -1
- package/lib/module/models/primer-theme.js +0 -2
- package/lib/module/models/primer-theme.js.map +0 -1
- package/lib/module/models/primer.js +0 -2
- package/lib/module/models/primer.js.map +0 -1
- package/lib/module/models/utils/countryCode.js.map +0 -1
- package/lib/module/models/utils/currencyCode.js.map +0 -1
- package/lib/module/models/utils/redirectScheme.js +0 -2
- package/lib/module/models/utils/redirectScheme.js.map +0 -1
- package/lib/typescript/Primer.d.ts +0 -15
- package/lib/typescript/RNPrimer.d.ts +0 -24
- package/lib/typescript/headless_checkout/NativePrimerHeadlessUniversalCheckout.d.ts +0 -13
- package/lib/typescript/headless_checkout/PrimerHeadlessUniversalCheckout.d.ts +0 -13
- package/lib/typescript/headless_checkout/types.d.ts +0 -16
- package/lib/typescript/index.d.ts +0 -5
- package/lib/typescript/models/action-request.d.ts +0 -10
- package/lib/typescript/models/client-session-actions-request.d.ts +0 -15
- package/lib/typescript/models/payment-instrument-token.d.ts +0 -76
- package/lib/typescript/models/primer-callbacks.d.ts +0 -10
- package/lib/typescript/models/primer-config.d.ts +0 -44
- package/lib/typescript/models/primer-error.d.ts +0 -8
- package/lib/typescript/models/primer-intent.d.ts +0 -13
- package/lib/typescript/models/primer-request.d.ts +0 -7
- package/lib/typescript/models/primer-settings.d.ts +0 -65
- package/lib/typescript/models/primer.d.ts +0 -33
- package/lib/typescript/models/utils/redirectScheme.d.ts +0 -3
- package/src/headless_checkout/NativePrimerHeadlessUniversalCheckout.ts +0 -132
- package/src/models/action-request.ts +0 -12
- package/src/models/client-session-actions-request.ts +0 -21
- package/src/models/payment-instrument-token.ts +0 -109
- package/src/models/primer-callbacks.ts +0 -14
- package/src/models/primer-config.ts +0 -55
- package/src/models/primer-error.ts +0 -19
- package/src/models/primer-intent.ts +0 -49
- package/src/models/primer-request.ts +0 -7
- package/src/models/primer-settings.ts +0 -73
- package/src/models/primer.ts +0 -41
- package/src/models/utils/redirectScheme.ts +0 -5
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
package com.primerioreactnative.extensions
|
|
2
|
+
|
|
3
|
+
import com.primerioreactnative.datamodels.PrimerLineItemRN
|
|
4
|
+
import io.primer.android.domain.action.models.PrimerLineItem
|
|
5
|
+
|
|
6
|
+
internal fun PrimerLineItem.toPrimerLineItemRN() = PrimerLineItemRN(
|
|
7
|
+
itemId, itemDescription, amount, discountAmount, quantity, taxCode, taxAmount
|
|
8
|
+
)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
package com.primerioreactnative.extensions
|
|
2
|
+
|
|
3
|
+
import com.primerioreactnative.datamodels.PrimerPaymentMethodDataRN
|
|
4
|
+
import io.primer.android.domain.tokenization.models.PrimerPaymentMethodData
|
|
5
|
+
|
|
6
|
+
internal fun PrimerPaymentMethodData.toPrimerPaymentMethodDataRN() =
|
|
7
|
+
PrimerPaymentMethodDataRN(paymentMethodType)
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
package com.primerioreactnative.huc.events
|
|
2
2
|
|
|
3
3
|
internal enum class PrimerHeadlessUniversalCheckoutEvent(val eventName: String) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
ON_HUC_AVAILABLE_PAYMENT_METHODS_LOADED("onHUCAvailablePaymentMethodsLoaded"),
|
|
5
|
+
ON_HUC_PREPARE_START("onHUCPrepareStart"),
|
|
6
|
+
ON_HUC_PAYMENT_METHOD_SHOW("onHUCPaymentMethodShow"),
|
|
7
|
+
ON_HUC_TOKENIZE_START("onHUCTokenizeStart"),
|
|
8
|
+
ON_CHECKOUT_COMPLETE("onCheckoutComplete"),
|
|
9
|
+
ON_BEFORE_CLIENT_SESSION_UPDATE("onBeforeClientSessionUpdate"),
|
|
10
|
+
ON_CLIENT_SESSION_UPDATE("onClientSessionUpdate"),
|
|
11
|
+
ON_BEFORE_PAYMENT_CREATE("onBeforePaymentCreate"),
|
|
12
|
+
ON_TOKENIZE_SUCCESS("onTokenizeSuccess"),
|
|
13
|
+
ON_RESUME_SUCCESS("onResumeSuccess"),
|
|
14
|
+
ON_ERROR("onError"),
|
|
11
15
|
}
|
|
@@ -4,8 +4,6 @@ import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
|
4
4
|
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
5
5
|
|
|
6
6
|
infix fun ErrorTypeRN.errorTo(message: String) = PrimerErrorRN(
|
|
7
|
-
|
|
7
|
+
errorId,
|
|
8
8
|
message
|
|
9
9
|
)
|
|
10
|
-
|
|
11
|
-
fun PrimerErrorRN.asError() = Error("${this.errorId}: ${this.errorDescription}")
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
package com.primerioreactnative.utils
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.*
|
|
4
|
+
import org.json.JSONArray
|
|
5
|
+
|
|
6
|
+
import org.json.JSONException
|
|
7
|
+
|
|
8
|
+
import org.json.JSONObject
|
|
9
|
+
|
|
10
|
+
@Throws(JSONException::class)
|
|
11
|
+
internal fun convertJsonToMap(jsonObject: JSONObject): WritableMap {
|
|
12
|
+
val map = Arguments.createMap()
|
|
13
|
+
val iterator = jsonObject.keys()
|
|
14
|
+
while (iterator.hasNext()) {
|
|
15
|
+
val key = iterator.next()
|
|
16
|
+
when (val value = jsonObject[key]) {
|
|
17
|
+
is JSONObject -> map.putMap(key, convertJsonToMap(value))
|
|
18
|
+
is JSONArray -> map.putArray(key, convertJsonToArray(value))
|
|
19
|
+
is Boolean -> map.putBoolean(key, value)
|
|
20
|
+
is Int -> map.putInt(key, value)
|
|
21
|
+
is Double -> map.putDouble(key, value)
|
|
22
|
+
is String -> map.putString(key, value)
|
|
23
|
+
else -> map.putString(key, value.toString())
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return map
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@Throws(JSONException::class)
|
|
30
|
+
private fun convertJsonToArray(jsonArray: JSONArray): WritableArray {
|
|
31
|
+
val array: WritableArray = Arguments.createArray()
|
|
32
|
+
for (i in 0 until jsonArray.length()) {
|
|
33
|
+
when (val value = jsonArray[i]) {
|
|
34
|
+
is JSONObject -> array.pushMap(convertJsonToMap(value))
|
|
35
|
+
is JSONArray -> array.pushArray(convertJsonToArray(value))
|
|
36
|
+
is Boolean -> array.pushBoolean(value)
|
|
37
|
+
is Int -> array.pushInt(value)
|
|
38
|
+
is Double -> array.pushDouble(value)
|
|
39
|
+
is String -> array.pushString(value)
|
|
40
|
+
else -> array.pushString(value.toString())
|
|
41
|
+
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return array
|
|
45
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package com.primerioreactnative.utils
|
|
2
|
+
|
|
3
|
+
import kotlinx.serialization.SerialName
|
|
4
|
+
import kotlinx.serialization.Serializable
|
|
5
|
+
|
|
6
|
+
@Serializable
|
|
7
|
+
data class PrimerHeadlessUniversalCheckoutImplementedRNCallbacks(
|
|
8
|
+
@SerialName("onCheckoutComplete")
|
|
9
|
+
val isOnCheckoutCompleteImplemented: Boolean? = null,
|
|
10
|
+
@SerialName("onBeforeClientSessionUpdate")
|
|
11
|
+
val isOnBeforeClientSessionUpdateImplemented: Boolean? = null,
|
|
12
|
+
@SerialName("onClientSessionUpdate")
|
|
13
|
+
val isOnClientSessionUpdateImplemented: Boolean? = null,
|
|
14
|
+
@SerialName("onBeforePaymentCreate")
|
|
15
|
+
val isOnBeforePaymentCreateImplemented: Boolean? = null,
|
|
16
|
+
@SerialName("onError")
|
|
17
|
+
val isOnErrorImplemented: Boolean? = null,
|
|
18
|
+
@SerialName("onTokenizeSuccess")
|
|
19
|
+
val isOnTokenizeSuccessImplemented: Boolean? = null,
|
|
20
|
+
@SerialName("onResumeSuccess")
|
|
21
|
+
val isOnResumeSuccessImplemented: Boolean? = null,
|
|
22
|
+
@SerialName("onHUCTokenizeStart")
|
|
23
|
+
val isOnHUCTokenizeStartsImplemented: Boolean? = null,
|
|
24
|
+
@SerialName("onHUCPrepareStart")
|
|
25
|
+
val isOnHUCPrepareStartImplemented: Boolean? = null,
|
|
26
|
+
@SerialName("onHUCAvailablePaymentMethodsLoaded")
|
|
27
|
+
val isOnHUCAvailablePaymentMethodsLoadedImplemented: Boolean? = null,
|
|
28
|
+
@SerialName("onHUCPaymentMethodShow")
|
|
29
|
+
val isOnHUCPaymentMethodShowImplemented: Boolean? = null,
|
|
30
|
+
)
|
|
31
|
+
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
package com.primerioreactnative.utils
|
|
2
2
|
|
|
3
|
+
import kotlinx.serialization.SerialName
|
|
3
4
|
import kotlinx.serialization.Serializable
|
|
4
5
|
|
|
5
6
|
@Serializable
|
|
6
7
|
data class PrimerImplementedRNCallbacks(
|
|
7
|
-
|
|
8
|
-
val
|
|
8
|
+
@SerialName("onCheckoutComplete")
|
|
9
|
+
val isOnCheckoutCompleteImplemented: Boolean? = null,
|
|
10
|
+
@SerialName("onBeforeClientSessionUpdate")
|
|
11
|
+
val isOnBeforeClientSessionUpdateImplemented: Boolean? = null,
|
|
12
|
+
@SerialName("onClientSessionUpdate")
|
|
13
|
+
val isOnClientSessionUpdateImplemented: Boolean? = null,
|
|
14
|
+
@SerialName("onBeforePaymentCreate")
|
|
15
|
+
val isOnBeforePaymentCreateImplemented: Boolean? = null,
|
|
16
|
+
@SerialName("onError")
|
|
17
|
+
val isOnErrorImplemented: Boolean? = null,
|
|
18
|
+
@SerialName("onDismiss")
|
|
19
|
+
val isOnDismissImplemented: Boolean? = null,
|
|
20
|
+
@SerialName("onTokenizeSuccess")
|
|
21
|
+
val isOnTokenizeSuccessImplemented: Boolean? = null,
|
|
22
|
+
@SerialName("onResumeSuccess")
|
|
9
23
|
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
24
|
)
|
|
@@ -2,3 +2,13 @@
|
|
|
2
2
|
#import <React/RCTEventEmitter.h>
|
|
3
3
|
#import <React/RCTViewManager.h>
|
|
4
4
|
#import <React/RCTUIManager.h>
|
|
5
|
+
#import <React/RCTView.h>
|
|
6
|
+
|
|
7
|
+
// for view controller implementation https://stackoverflow.com/questions/45741903/react-native-ios-how-can-i-navigate-to-a-non-react-native-view-native-ios-vie/46007680#46007680
|
|
8
|
+
//#import "React/RCTBridge.h"
|
|
9
|
+
//#import "React/RCTEventDispatcher.h"
|
|
10
|
+
//#import "React/RCTRootView.h"
|
|
11
|
+
//#import "React/RCTUtils.h"
|
|
12
|
+
//#import "React/RCTConvert.h"
|
|
13
|
+
//#import "React/RCTBundleURLProvider.h"
|
|
14
|
+
//#import "RCTViewManager.h"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ImplementedRNCallbacks.swift
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 20/5/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
internal struct ImplementedRNCallbacks: Decodable {
|
|
11
|
+
|
|
12
|
+
internal var isOnCheckoutCompleteImplemented: Bool = false
|
|
13
|
+
internal var isOnBeforeClientSessionUpdateImplemented: Bool = false
|
|
14
|
+
internal var isOnClientSessionUpdateImplemented: Bool = false
|
|
15
|
+
internal var isOnBeforePaymentCreateImplemented: Bool = false
|
|
16
|
+
internal var isOnErrorImplemented: Bool = false
|
|
17
|
+
internal var isOnDismissImplemented: Bool = false
|
|
18
|
+
internal var isOnTokenizeSuccessImplemented: Bool = false
|
|
19
|
+
internal var isOnResumeSuccessImplemented: Bool = false
|
|
20
|
+
internal var isOnHUCTokenizeStartImplemented: Bool = false
|
|
21
|
+
internal var isOnHUCPrepareStartImplemented: Bool = false
|
|
22
|
+
internal var isOnHUCAvailablePaymentMethodsLoadedImplemented: Bool = false
|
|
23
|
+
internal var isOnHUCPaymentMethodShowImplemented: Bool = false
|
|
24
|
+
|
|
25
|
+
enum CodingKeys: String, CodingKey {
|
|
26
|
+
case isOnCheckoutCompleteImplemented = "onCheckoutComplete"
|
|
27
|
+
case isOnBeforeClientSessionUpdateImplemented = "onBeforeClientSessionUpdate"
|
|
28
|
+
case isOnClientSessionUpdateImplemented = "onClientSessionUpdate"
|
|
29
|
+
case isOnBeforePaymentCreateImplemented = "onBeforePaymentCreate"
|
|
30
|
+
case isOnErrorImplemented = "onError"
|
|
31
|
+
case isOnDismissImplemented = "onDismiss"
|
|
32
|
+
case isOnTokenizeSuccessImplemented = "onTokenizeSuccess"
|
|
33
|
+
case isOnResumeSuccessImplemented = "onResumeSuccess"
|
|
34
|
+
case isOnHUCTokenizeStartImplemented = "onHUCTokenizeStart"
|
|
35
|
+
case isOnHUCPrepareStartImplemented = "onHUCPrepareStart"
|
|
36
|
+
case isOnHUCAvailablePaymentMethodsLoadedImplemented = "onHUCAvailablePaymentMethodsLoaded"
|
|
37
|
+
case isOnHUCPaymentMethodShowImplemented = "onHUCPaymentMethodShow"
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
init(from decoder: Decoder) throws {
|
|
41
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
42
|
+
|
|
43
|
+
self.isOnCheckoutCompleteImplemented = (try? container.decode(Bool?.self, forKey: .isOnCheckoutCompleteImplemented)) ?? false
|
|
44
|
+
self.isOnBeforeClientSessionUpdateImplemented = (try? container.decode(Bool?.self, forKey: .isOnBeforeClientSessionUpdateImplemented)) ?? false
|
|
45
|
+
self.isOnClientSessionUpdateImplemented = (try? container.decode(Bool?.self, forKey: .isOnClientSessionUpdateImplemented)) ?? false
|
|
46
|
+
self.isOnBeforePaymentCreateImplemented = (try? container.decode(Bool?.self, forKey: .isOnBeforePaymentCreateImplemented)) ?? false
|
|
47
|
+
self.isOnErrorImplemented = (try? container.decode(Bool?.self, forKey: .isOnErrorImplemented)) ?? false
|
|
48
|
+
self.isOnDismissImplemented = (try? container.decode(Bool?.self, forKey: .isOnDismissImplemented)) ?? false
|
|
49
|
+
self.isOnTokenizeSuccessImplemented = (try? container.decode(Bool?.self, forKey: .isOnTokenizeSuccessImplemented)) ?? false
|
|
50
|
+
self.isOnResumeSuccessImplemented = (try? container.decode(Bool?.self, forKey: .isOnResumeSuccessImplemented)) ?? false
|
|
51
|
+
self.isOnHUCTokenizeStartImplemented = (try? container.decode(Bool?.self, forKey: .isOnHUCTokenizeStartImplemented)) ?? false
|
|
52
|
+
self.isOnHUCPrepareStartImplemented = (try? container.decode(Bool?.self, forKey: .isOnHUCPrepareStartImplemented)) ?? false
|
|
53
|
+
self.isOnHUCAvailablePaymentMethodsLoadedImplemented = (try? container.decode(Bool?.self, forKey: .isOnHUCAvailablePaymentMethodsLoadedImplemented)) ?? false
|
|
54
|
+
self.isOnHUCPaymentMethodShowImplemented = (try? container.decode(Bool?.self, forKey: .isOnHUCPaymentMethodShowImplemented)) ?? false
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
struct PrimerErrorRN: Encodable {
|
|
2
|
-
let exceptionType: ErrorTypeRN
|
|
3
|
-
let description: String?
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
enum ErrorTypeRN: String, Error, Encodable {
|
|
7
|
-
case ParseJsonFailed
|
|
8
|
-
case noIosViewController
|
|
9
|
-
case invalidPrimerIntent
|
|
10
|
-
case themeParsingFailed
|
|
11
|
-
case settingsParsingFailed
|
|
12
|
-
case settingsNotConfigured
|
|
13
|
-
case clientTokenNotConfigured
|
|
14
|
-
case flowParsingFailed
|
|
15
|
-
case generic
|
|
16
|
-
}
|
|
17
|
-
|
|
18
1
|
struct NativeError: CustomNSError, LocalizedError, Codable {
|
|
19
2
|
let errorId: String
|
|
20
3
|
let errorDescription: String?
|
|
@@ -1,164 +1,86 @@
|
|
|
1
1
|
import PrimerSDK
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
fileprivate let order: OrderRN?
|
|
5
|
-
fileprivate let business: BusinessRN?
|
|
6
|
-
fileprivate let customer: CustomerRN?
|
|
7
|
-
fileprivate let options: OptionsRN?
|
|
8
|
-
}
|
|
3
|
+
extension PrimerSettings {
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
addressLine1: billingAddress.line1,
|
|
16
|
-
addressLine2: billingAddress.line2,
|
|
17
|
-
city: billingAddress.city,
|
|
18
|
-
state: billingAddress.state,
|
|
19
|
-
countryCode: billingAddress.country?.rawValue,
|
|
20
|
-
postalCode: billingAddress.postalCode
|
|
21
|
-
)
|
|
5
|
+
static func initialize(with settingsStr: String?) throws -> PrimerSettings {
|
|
6
|
+
guard let settingsStr = settingsStr,
|
|
7
|
+
let settingsData = settingsStr.data(using: .utf8)
|
|
8
|
+
else {
|
|
9
|
+
return PrimerSettings()
|
|
22
10
|
}
|
|
23
11
|
|
|
24
|
-
let
|
|
12
|
+
guard let settingsJson = (try JSONSerialization.jsonObject(with: settingsData)) as? [String: Any]
|
|
13
|
+
else {
|
|
14
|
+
return PrimerSettings()
|
|
15
|
+
}
|
|
25
16
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
fileprivate struct BusinessRN: Decodable {
|
|
97
|
-
let name: String
|
|
98
|
-
let registrationNumber: String?
|
|
99
|
-
let email: String?
|
|
100
|
-
let phone: String?
|
|
101
|
-
let address: AddressRN?
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
fileprivate extension BusinessRN {
|
|
105
|
-
var primerFormat: BusinessDetails? {
|
|
106
|
-
return BusinessDetails(
|
|
107
|
-
name: name,
|
|
108
|
-
address: address?.primerFormat
|
|
109
|
-
)
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
fileprivate struct CustomerRN: Decodable {
|
|
114
|
-
let id: String?
|
|
115
|
-
let firstName: String?
|
|
116
|
-
let lastName: String?
|
|
117
|
-
let email: String?
|
|
118
|
-
let phone: String?
|
|
119
|
-
let billing: AddressRN?
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
fileprivate struct AddressRN: Decodable {
|
|
123
|
-
let line1: String?
|
|
124
|
-
let line2: String?
|
|
125
|
-
let postalCode: String?
|
|
126
|
-
let city: String?
|
|
127
|
-
let state: String?
|
|
128
|
-
let country: CountryCode?
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
fileprivate extension AddressRN {
|
|
132
|
-
var primerFormat: Address {
|
|
133
|
-
return Address(
|
|
134
|
-
addressLine1: line1,
|
|
135
|
-
addressLine2: line2,
|
|
136
|
-
city: city,
|
|
137
|
-
state: state,
|
|
138
|
-
countryCode: country?.rawValue,
|
|
139
|
-
postalCode: postalCode
|
|
140
|
-
)
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
fileprivate struct OptionsRN: Decodable {
|
|
145
|
-
let isResultScreenEnabled: Bool?
|
|
146
|
-
let isLoadingScreenEnabled: Bool?
|
|
147
|
-
let isFullScreenEnabled: Bool?
|
|
148
|
-
let is3DSOnVaultingEnabled: Bool?
|
|
149
|
-
let is3DSDevelopmentModeEnabled: Bool?
|
|
150
|
-
let locale: String?
|
|
151
|
-
let ios: IosOptionsRN?
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
fileprivate extension String {
|
|
155
|
-
var localeFormatted: Locale {
|
|
156
|
-
return Locale(identifier: self)
|
|
17
|
+
var paymentHandling: PrimerPaymentHandling = .auto
|
|
18
|
+
if let rnPaymentHandling = settingsJson["paymentHandling"] as? String,
|
|
19
|
+
rnPaymentHandling == "MANUAL" {
|
|
20
|
+
paymentHandling = .manual
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let rnLocaleDataLanguageCode = (settingsJson["localeData"] as? [String: Any])?["languageCode"] as? String
|
|
24
|
+
let rnLocaleDataLocaleCode = (settingsJson["localeData"] as? [String: Any])?["localeCode"] as? String
|
|
25
|
+
let localeData = PrimerLocaleData(
|
|
26
|
+
languageCode: rnLocaleDataLanguageCode,
|
|
27
|
+
regionCode: rnLocaleDataLocaleCode)
|
|
28
|
+
|
|
29
|
+
let rnUrlScheme = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["iOS"] as? [String: Any])?["urlScheme"] as? String
|
|
30
|
+
|
|
31
|
+
var applePayOptions: PrimerApplePayOptions?
|
|
32
|
+
if let rnApplePayOptions = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["applePayOptions"] as? [String: Any]),
|
|
33
|
+
let rnApplePayMerchantIdentifier = rnApplePayOptions["merchantIdentifier"] as? String,
|
|
34
|
+
let rnApplePayMerchantName = rnApplePayOptions["merchantName"] as? String {
|
|
35
|
+
applePayOptions = PrimerApplePayOptions(merchantIdentifier: rnApplePayMerchantIdentifier, merchantName: rnApplePayMerchantName)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var klarnaOptions: PrimerKlarnaOptions?
|
|
39
|
+
if let rnKlarnaRecurringPaymentDescription = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["klarnaOptions"] as? [String: Any])?["recurringPaymentDescription"] as? String {
|
|
40
|
+
klarnaOptions = PrimerKlarnaOptions(recurringPaymentDescription: rnKlarnaRecurringPaymentDescription)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
var cardPaymentOptions: PrimerCardPaymentOptions?
|
|
44
|
+
if let rnIs3DSOnVaultingEnabled = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["cardPaymentOptions"] as? [String: Any])?["is3DSOnVaultingEnabled"] as? Bool {
|
|
45
|
+
cardPaymentOptions = PrimerCardPaymentOptions(is3DSOnVaultingEnabled: rnIs3DSOnVaultingEnabled)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
var uiOptions: PrimerUIOptions?
|
|
49
|
+
if let rnUIOptions = settingsJson["uiOptions"] as? [String: Any] {
|
|
50
|
+
|
|
51
|
+
var theme: PrimerTheme?
|
|
52
|
+
if let rnTheme = rnUIOptions["theme"] as? [String: Any] {
|
|
53
|
+
let rnThemeData = (try JSONSerialization.data(withJSONObject: rnTheme))
|
|
54
|
+
let rnTheme = try JSONDecoder().decode(PrimerThemeRN.self, from: rnThemeData)
|
|
55
|
+
theme = rnTheme.asPrimerTheme()
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
uiOptions = PrimerUIOptions(
|
|
59
|
+
isInitScreenEnabled: rnUIOptions["isInitScreenEnabled"] as? Bool,
|
|
60
|
+
isSuccessScreenEnabled: rnUIOptions["isSuccessScreenEnabled"] as? Bool,
|
|
61
|
+
isErrorScreenEnabled: rnUIOptions["isErrorScreenEnabled"] as? Bool,
|
|
62
|
+
theme: theme)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var debugOptions: PrimerDebugOptions?
|
|
66
|
+
if let rnIs3DSSanityCheckEnabled = (settingsJson["debugOptions"] as? [String: Any])?["is3DSSanityCheckEnabled"] as? Bool {
|
|
67
|
+
debugOptions = PrimerDebugOptions(is3DSSanityCheckEnabled: rnIs3DSSanityCheckEnabled)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let paymentMethodOptions = PrimerPaymentMethodOptions(
|
|
71
|
+
urlScheme: rnUrlScheme,
|
|
72
|
+
applePayOptions: applePayOptions,
|
|
73
|
+
klarnaOptions: klarnaOptions,
|
|
74
|
+
cardPaymentOptions: cardPaymentOptions)
|
|
75
|
+
|
|
76
|
+
let settings = PrimerSettings(
|
|
77
|
+
paymentHandling: paymentHandling,
|
|
78
|
+
localeData: localeData,
|
|
79
|
+
paymentMethodOptions: paymentMethodOptions,
|
|
80
|
+
uiOptions: uiOptions,
|
|
81
|
+
debugOptions: debugOptions)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
return settings
|
|
157
85
|
}
|
|
158
86
|
}
|
|
159
|
-
|
|
160
|
-
fileprivate struct IosOptionsRN: Decodable {
|
|
161
|
-
let urlScheme: String?
|
|
162
|
-
let urlSchemeIdentifier: String?
|
|
163
|
-
let merchantIdentifier: String?
|
|
164
|
-
}
|
|
@@ -7,16 +7,7 @@ struct PrimerThemeRN: Decodable {
|
|
|
7
7
|
|
|
8
8
|
extension PrimerThemeRN {
|
|
9
9
|
func asPrimerTheme() -> PrimerTheme {
|
|
10
|
-
|
|
11
|
-
return PrimerTheme(
|
|
12
|
-
colorTheme: colors?.primerColorTheme ?? PrimerDefaultTheme(),
|
|
13
|
-
darkTheme: darkModeColors?.primerDarkModeTheme ?? PrimerDarkTheme()
|
|
14
|
-
)
|
|
15
|
-
} else {
|
|
16
|
-
return PrimerTheme(
|
|
17
|
-
colorTheme: colors?.primerColorTheme ?? PrimerDefaultTheme()
|
|
18
|
-
)
|
|
19
|
-
}
|
|
10
|
+
return PrimerTheme()
|
|
20
11
|
}
|
|
21
12
|
}
|
|
22
13
|
|
|
@@ -14,7 +14,9 @@ RCT_EXTERN_METHOD(startWithClientToken:(NSString *)clientToken settingsStr:(NSSt
|
|
|
14
14
|
|
|
15
15
|
RCT_EXTERN_METHOD(resumeWithClientToken:(NSString *)resumeToken)
|
|
16
16
|
|
|
17
|
-
RCT_EXTERN_METHOD(showPaymentMethod:(NSString *)paymentMethodTypeStr
|
|
17
|
+
RCT_EXTERN_METHOD(showPaymentMethod:(NSString *)paymentMethodTypeStr
|
|
18
|
+
resolver:(RCTPromiseResolveBlock)resolver
|
|
19
|
+
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
18
20
|
|
|
19
21
|
RCT_EXTERN_METHOD(getAssetForPaymentMethodType:(NSString *)paymentMethodTypeStr
|
|
20
22
|
assetType:(NSString *)assetTypeStr
|
|
@@ -26,5 +28,35 @@ RCT_EXTERN_METHOD(getAssetForCardNetwork:(NSString *)cardNetworkStr
|
|
|
26
28
|
errorCallback:(RCTResponseSenderBlock)errorCallback
|
|
27
29
|
successCallback: (RCTResponseSenderBlock)successCallback)
|
|
28
30
|
|
|
31
|
+
RCT_EXTERN_METHOD(disposePrimerHeadlessUniversalCheckout)
|
|
32
|
+
|
|
33
|
+
// MARK: - HELPERS
|
|
34
|
+
|
|
35
|
+
RCT_EXTERN_METHOD(setImplementedRNCallbacks:(NSString *)implementedRNCallbacksStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
36
|
+
|
|
37
|
+
// MARK: - DECISION HANDLERS
|
|
38
|
+
|
|
39
|
+
// MARK: Tokenization Handlers
|
|
40
|
+
|
|
41
|
+
RCT_EXTERN_METHOD(handleTokenizationNewClientToken:(NSString *)newClientToken resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
42
|
+
|
|
43
|
+
RCT_EXTERN_METHOD(handleTokenizationSuccess:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
44
|
+
|
|
45
|
+
RCT_EXTERN_METHOD(handleTokenizationFailure:(NSString *)errorMessage resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
46
|
+
|
|
47
|
+
// MARK: Resume Handlers
|
|
48
|
+
|
|
49
|
+
RCT_EXTERN_METHOD(handleResumeWithNewClientToken:(NSString *)newClientToken resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
50
|
+
|
|
51
|
+
RCT_EXTERN_METHOD(handleResumeSuccess:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
52
|
+
|
|
53
|
+
RCT_EXTERN_METHOD(handleResumeFailure:(NSString *)errorMessage resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
54
|
+
|
|
55
|
+
// MARK: Payment Creation Handlers
|
|
56
|
+
|
|
57
|
+
RCT_EXTERN_METHOD(handlePaymentCreationAbort:(NSString *)errorMessage resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
58
|
+
|
|
59
|
+
RCT_EXTERN_METHOD(handlePaymentCreationContinue:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
60
|
+
|
|
29
61
|
|
|
30
62
|
@end
|