@primer-io/react-native 2.28.0-beta.1 → 2.29.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/.settings/org.eclipse.buildship.core.prefs +2 -2
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +5 -5
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +8 -2
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/{asset/PrimerRNAsset.kt → resource/Resources.kt} +41 -9
- package/android/src/main/java/com/primerioreactnative/components/manager/NativeViewContainer.kt +35 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +84 -2
- package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonConstantsModule.kt +39 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonManager.kt +38 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerKlarnaPaymentViewManager.kt +15 -78
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManagerListener.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt +5 -10
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +49 -37
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsCollectableData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsStep.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PaymentInstrumentData.kt +29 -16
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +7 -7
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerIssuingBank.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerOrder.kt +4 -2
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +48 -35
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerUIOptionsRN.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCollectableData.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt +4 -4
- package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +50 -7
- package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.m +7 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.swift +162 -88
- package/ios/Sources/version.swift +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js +30 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +9 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/commonjs/index.js +20 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerPaymentMethodResource.js +2 -0
- package/lib/{module/models/PrimerAsset.js.map → commonjs/models/PrimerPaymentMethodResource.js.map} +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +22 -0
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +3 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +32 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +6 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +24 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodResource.js +2 -0
- package/lib/{commonjs/models/PrimerAsset.js.map → module/models/PrimerPaymentMethodResource.js.map} +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +11 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +6 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +10 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts +16 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts +14 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +8 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/PrimerPaymentMethodResource.d.ts +19 -0
- package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -0
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts +10 -49
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerSettings.d.ts +17 -4
- package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +31 -0
- package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +8 -0
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +34 -1
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +24 -1
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +22 -1
- package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +22 -1
- package/src/index.tsx +9 -3
- package/src/models/PrimerPaymentMethodResource.ts +21 -0
- package/src/models/PrimerPaymentMethodTokenData.ts +10 -53
- package/src/models/PrimerSettings.ts +20 -5
- package/lib/commonjs/models/PrimerAsset.js +0 -2
- package/lib/module/models/PrimerAsset.js +0 -2
- package/lib/typescript/models/PrimerAsset.d.ts +0 -15
- package/lib/typescript/models/PrimerAsset.d.ts.map +0 -1
- package/src/models/PrimerAsset.ts +0 -14
|
@@ -2,7 +2,7 @@ package com.primerioreactnative.components.manager.raw
|
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutRawDataManagerEvent
|
|
4
4
|
import com.primerioreactnative.datamodels.PrimerInputValidationErrorRN
|
|
5
|
-
import io.primer.android.ExperimentalPrimerApi
|
|
5
|
+
import io.primer.android.core.ExperimentalPrimerApi
|
|
6
6
|
import io.primer.android.components.domain.core.models.card.PrimerCardMetadata
|
|
7
7
|
import io.primer.android.components.domain.core.models.metadata.PrimerPaymentMethodMetadata
|
|
8
8
|
import io.primer.android.components.domain.error.PrimerInputValidationError
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.primerioreactnative.datamodels
|
|
2
2
|
|
|
3
|
-
import io.primer.android.data.
|
|
3
|
+
import io.primer.android.configuration.data.model.CountryCode
|
|
4
4
|
import io.primer.android.domain.action.models.*
|
|
5
5
|
import kotlinx.serialization.Serializable
|
|
6
6
|
|
package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt
CHANGED
|
@@ -36,28 +36,23 @@ data class PrimerPaymentInstrumentTokenRN(
|
|
|
36
36
|
val cardholderName: String? = null,
|
|
37
37
|
val first6Digits: Int? = null,
|
|
38
38
|
val last4Digits: Int? = null,
|
|
39
|
+
val accountNumberLast4Digits: Int? = null,
|
|
39
40
|
val expirationMonth: Int? = null,
|
|
40
41
|
val expirationYear: Int? = null,
|
|
41
|
-
val gocardlessMandateId: String? = null,
|
|
42
42
|
val externalPayerInfo: ExternalPayerInfo? = null,
|
|
43
43
|
val klarnaCustomerToken: String? = null,
|
|
44
44
|
val sessionData: SessionData? = null,
|
|
45
|
-
// apaya
|
|
46
|
-
val mx: String? = null,
|
|
47
|
-
val mnc: Int? = null,
|
|
48
|
-
val mcc: Int? = null,
|
|
49
|
-
val hashedIdentifier: String? = null,
|
|
50
|
-
val currencyCode: String? = null,
|
|
51
|
-
val productId: String? = null,
|
|
52
|
-
// async
|
|
53
45
|
val paymentMethodType: String? = null,
|
|
54
|
-
// bin
|
|
55
46
|
val binData: BinData? = null,
|
|
47
|
+
val bankName: String? = null
|
|
56
48
|
)
|
|
57
49
|
|
|
58
50
|
@Serializable
|
|
59
51
|
data class ExternalPayerInfo(
|
|
60
52
|
val email: String,
|
|
53
|
+
val externalPayerId: String?,
|
|
54
|
+
val firstName: String?,
|
|
55
|
+
val lastName: String?
|
|
61
56
|
)
|
|
62
57
|
|
|
63
58
|
@Serializable
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.primerioreactnative.datamodels
|
|
2
2
|
|
|
3
3
|
import android.content.Context
|
|
4
|
+
import com.google.android.gms.wallet.button.ButtonConstants
|
|
4
5
|
import com.primerioreactnative.extensions.toLocale
|
|
5
6
|
import com.primerioreactnative.extensions.toPrimerDebugOptions
|
|
6
7
|
import com.primerioreactnative.extensions.toPrimerPaymentMethodOptions
|
|
@@ -25,20 +26,20 @@ data class PrimerSettingsRN(
|
|
|
25
26
|
|
|
26
27
|
@Serializable
|
|
27
28
|
data class LocaleSettingsRN(
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
val languageCode: String? = null,
|
|
30
|
+
val localeCode: String? = null
|
|
30
31
|
)
|
|
31
32
|
|
|
32
33
|
@Serializable
|
|
33
34
|
data class PrimerPaymentMethodOptionsRN(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
@SerialName("android")
|
|
36
|
+
val androidSettingsRN: AndroidSettingsRN = AndroidSettingsRN(),
|
|
37
|
+
var cardPaymentOptions: PrimerCardPaymentOptionsRN = PrimerCardPaymentOptionsRN(),
|
|
38
|
+
var googlePayOptions: PrimerGooglePayOptionsRN = PrimerGooglePayOptionsRN(),
|
|
39
|
+
var klarnaOptions: PrimerKlarnaOptionsRN = PrimerKlarnaOptionsRN(),
|
|
40
|
+
var apayaOptions: PrimerApayaOptionsRN = PrimerApayaOptionsRN(),
|
|
41
|
+
var threeDsOptions: PrimerThreeDsOptionsRN = PrimerThreeDsOptionsRN(),
|
|
42
|
+
var stripeOptions: PrimerStripeOptionsRN = PrimerStripeOptionsRN(),
|
|
42
43
|
)
|
|
43
44
|
|
|
44
45
|
@Serializable
|
|
@@ -49,6 +50,7 @@ data class PrimerUIOptionsRN(
|
|
|
49
50
|
var isInitScreenEnabled: Boolean = true,
|
|
50
51
|
var isSuccessScreenEnabled: Boolean = true,
|
|
51
52
|
var isErrorScreenEnabled: Boolean = true,
|
|
53
|
+
var dismissalMechanism: List<String>? = listOf("gestures"),
|
|
52
54
|
var theme: PrimerThemeRN = PrimerThemeRN()
|
|
53
55
|
)
|
|
54
56
|
|
|
@@ -120,8 +122,8 @@ data class PrimerCardPaymentOptionsRN(var is3DSOnVaultingEnabled: Boolean = true
|
|
|
120
122
|
|
|
121
123
|
@Serializable
|
|
122
124
|
data class PrimerThreeDsOptionsRN(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
@SerialName("android")
|
|
126
|
+
val threeDsOptionsAndroid: PrimerThreeDsAndroidOptionsRN? = null
|
|
125
127
|
)
|
|
126
128
|
|
|
127
129
|
@Serializable
|
|
@@ -129,19 +131,21 @@ data class PrimerThreeDsAndroidOptionsRN(val threeDsAppRequestorUrl: String? = n
|
|
|
129
131
|
|
|
130
132
|
@Serializable
|
|
131
133
|
data class PrimerGooglePayOptionsRN(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
134
|
+
var merchantName: String? = null,
|
|
135
|
+
var allowedCardNetworks: List<String> =
|
|
136
|
+
listOf("AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"),
|
|
137
|
+
var buttonStyle: GooglePayButtonStyle = GooglePayButtonStyle.BLACK,
|
|
138
|
+
@SerialName("isCaptureBillingAddressEnabled")
|
|
139
|
+
var captureBillingAddress: Boolean = false,
|
|
140
|
+
@SerialName("isExistingPaymentMethodRequired")
|
|
141
|
+
var existingPaymentMethodRequired: Boolean = false,
|
|
142
|
+
var shippingAddressParameters: PrimerGoogleShippingAddressParametersRN? = null,
|
|
143
|
+
@SerialName("requireShippingMethod")
|
|
144
|
+
var requireShippingMethod: Boolean = false,
|
|
145
|
+
@SerialName("emailAddressRequired")
|
|
146
|
+
var emailAddressRequired: Boolean = false,
|
|
147
|
+
@SerialName("buttonOptions")
|
|
148
|
+
var buttonOptions: PrimerGooglePayButtonOptionsRN? = null
|
|
145
149
|
)
|
|
146
150
|
|
|
147
151
|
@Serializable
|
|
@@ -149,30 +153,38 @@ data class PrimerGoogleShippingAddressParametersRN(
|
|
|
149
153
|
var phoneNumberRequired: Boolean = false
|
|
150
154
|
)
|
|
151
155
|
|
|
156
|
+
@Serializable
|
|
157
|
+
data class PrimerGooglePayButtonOptionsRN(
|
|
158
|
+
@SerialName("buttonTheme")
|
|
159
|
+
var buttonTheme: Int? = null,
|
|
160
|
+
@SerialName("buttonType")
|
|
161
|
+
var buttonType: Int? = null
|
|
162
|
+
)
|
|
163
|
+
|
|
152
164
|
@Serializable
|
|
153
165
|
data class PrimerKlarnaOptionsRN(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
166
|
+
var recurringPaymentDescription: String? = null,
|
|
167
|
+
@Deprecated("This property is deprecated and will be removed in future release.")
|
|
168
|
+
var webViewTitle: String? = null,
|
|
157
169
|
)
|
|
158
170
|
|
|
159
171
|
@Serializable
|
|
160
172
|
data class PrimerStripeOptionsRN(
|
|
161
|
-
|
|
162
|
-
|
|
173
|
+
val mandateData: MandateDataRN? = null,
|
|
174
|
+
val publishableKey: String? = null,
|
|
163
175
|
) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
176
|
+
@Serializable
|
|
177
|
+
data class MandateDataRN(
|
|
178
|
+
@SerialName("fullMandateText") val fullMandateText: String? = null,
|
|
179
|
+
@SerialName("fullMandateStringResourceName") val fullMandateStringResName: String? = null,
|
|
180
|
+
val merchantName: String? = null
|
|
181
|
+
)
|
|
170
182
|
}
|
|
171
183
|
|
|
172
184
|
@Serializable
|
|
173
185
|
@Deprecated("This class is deprecated and will be removed in future release.")
|
|
174
186
|
data class PrimerApayaOptionsRN(
|
|
175
|
-
|
|
187
|
+
var webViewTitle: String? = null,
|
|
176
188
|
)
|
|
177
189
|
|
|
178
190
|
fun PrimerSettingsRN.toPrimerSettings(context: Context) = PrimerSettings(
|
|
@@ -2,7 +2,7 @@ package com.primerioreactnative.datamodels.extensions.ach
|
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.datamodels.NamedComponentValidatableData
|
|
4
4
|
import com.primerioreactnative.datamodels.ach.AchUserDetailsStepRN
|
|
5
|
-
import io.primer.android.
|
|
5
|
+
import io.primer.android.stripe.ach.api.composable.AchUserDetailsCollectableData
|
|
6
6
|
import kotlinx.serialization.Serializable
|
|
7
7
|
import com.primerioreactnative.datamodels.ach.AchUserDetailsCollectableDataRN
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.primerioreactnative.datamodels.extensions.ach
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.datamodels.ach.AchUserDetailsStepRN
|
|
4
|
-
import io.primer.android.
|
|
4
|
+
import io.primer.android.stripe.ach.api.composable.AchUserDetailsStep
|
|
5
5
|
|
|
6
6
|
internal fun AchUserDetailsStep.UserDetailsCollected.toUserDetailsCollectedRN() =
|
|
7
7
|
AchUserDetailsStepRN.UserDetailsCollectedRN()
|
|
@@ -4,21 +4,34 @@ import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
|
|
|
4
4
|
import io.primer.android.data.tokenization.models.PaymentInstrumentData
|
|
5
5
|
|
|
6
6
|
internal fun PaymentInstrumentData.toPaymentInstrumentDataRN() =
|
|
7
|
-
|
|
8
|
-
network,
|
|
9
|
-
cardholderName,
|
|
10
|
-
first6Digits,
|
|
11
|
-
last4Digits,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
externalPayerInfo?.
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
PrimerPaymentInstrumentTokenRN.PaymentInstrumentData(
|
|
8
|
+
network = network,
|
|
9
|
+
cardholderName = cardholderName,
|
|
10
|
+
first6Digits = first6Digits,
|
|
11
|
+
last4Digits = last4Digits,
|
|
12
|
+
accountNumberLast4Digits = accountNumberLast4Digits,
|
|
13
|
+
expirationMonth = expirationMonth,
|
|
14
|
+
expirationYear = expirationYear,
|
|
15
|
+
externalPayerInfo = externalPayerInfo?.let {
|
|
16
|
+
PrimerPaymentInstrumentTokenRN.ExternalPayerInfo(
|
|
17
|
+
email = it.email,
|
|
18
|
+
externalPayerId = it.externalPayerId,
|
|
19
|
+
firstName = it.firstName,
|
|
20
|
+
lastName = it.lastName
|
|
21
|
+
)
|
|
22
|
+
},
|
|
23
|
+
klarnaCustomerToken = klarnaCustomerToken,
|
|
24
|
+
sessionData = sessionData?.let {
|
|
18
25
|
PrimerPaymentInstrumentTokenRN.SessionData(
|
|
19
|
-
it.recurringDescription,
|
|
20
|
-
it.billingAddress?.let {
|
|
26
|
+
recurringDescription = it.recurringDescription,
|
|
27
|
+
billingAddress = it.billingAddress?.let {
|
|
28
|
+
PrimerPaymentInstrumentTokenRN.BillingAddress(email = it.email)
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
},
|
|
32
|
+
paymentMethodType = paymentMethodType,
|
|
33
|
+
binData = binData?.let {
|
|
34
|
+
PrimerPaymentInstrumentTokenRN.BinData(network = it.network)
|
|
21
35
|
},
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
)
|
|
36
|
+
bankName = bankName
|
|
37
|
+
)
|
package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt
CHANGED
|
@@ -4,17 +4,17 @@ import com.primerioreactnative.datamodels.MultibancoCheckoutAdditionalInfoRN
|
|
|
4
4
|
import com.primerioreactnative.datamodels.PromptPayCheckoutAdditionalInfoRN
|
|
5
5
|
import com.primerioreactnative.datamodels.XenditCheckoutVoucherAdditionalInfoRN
|
|
6
6
|
import com.primerioreactnative.datamodels.AchAdditionalInfoDisplayMandateRN
|
|
7
|
-
import io.primer.android.
|
|
8
|
-
import io.primer.android.
|
|
9
|
-
import io.primer.android.
|
|
10
|
-
import io.primer.android.
|
|
11
|
-
import io.primer.android.
|
|
7
|
+
import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
|
|
8
|
+
import io.primer.android.payments.core.additionalInfo.PrimerCheckoutAdditionalInfo
|
|
9
|
+
import io.primer.android.qrcode.QrCodeCheckoutAdditionalInfo
|
|
10
|
+
import io.primer.android.vouchers.retailOutlets.XenditCheckoutVoucherAdditionalInfo
|
|
11
|
+
import io.primer.android.stripe.ach.api.additionalInfo.AchAdditionalInfo
|
|
12
12
|
|
|
13
13
|
internal fun PrimerCheckoutAdditionalInfo.toCheckoutAdditionalInfoRN() = when (this) {
|
|
14
14
|
is MultibancoCheckoutAdditionalInfo ->
|
|
15
15
|
MultibancoCheckoutAdditionalInfoRN(expiresAt, reference, entity)
|
|
16
|
-
is
|
|
17
|
-
|
|
16
|
+
is QrCodeCheckoutAdditionalInfo ->
|
|
17
|
+
PromptPayCheckoutAdditionalInfoRN(expiresAt.orEmpty(), qrCodeUrl, qrCodeBase64)
|
|
18
18
|
is XenditCheckoutVoucherAdditionalInfo ->
|
|
19
19
|
XenditCheckoutVoucherAdditionalInfoRN(expiresAt, couponCode, retailerName)
|
|
20
20
|
is AchAdditionalInfo.DisplayMandate ->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.primerioreactnative.extensions
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.datamodels.PrimerIssuingBankRN
|
|
4
|
-
import io.primer.android.
|
|
4
|
+
import io.primer.android.banks.implementation.rpc.domain.models.IssuingBank
|
|
5
5
|
|
|
6
6
|
internal fun IssuingBank.toPrimerIssuingBankRN() =
|
|
7
7
|
PrimerIssuingBankRN(id, name, disabled, iconUrl)
|
|
@@ -5,6 +5,8 @@ import com.primerioreactnative.datamodels.PrimerShippingRN
|
|
|
5
5
|
import io.primer.android.domain.action.models.PrimerOrder
|
|
6
6
|
import io.primer.android.domain.action.models.PrimerShipping
|
|
7
7
|
|
|
8
|
-
internal fun PrimerOrder.toPrimerOrderRN() =
|
|
8
|
+
internal fun PrimerOrder.toPrimerOrderRN() =
|
|
9
|
+
PrimerOrderRN(countryCode = countryCode, shipping = shipping?.toPrimerShippingRN())
|
|
9
10
|
|
|
10
|
-
internal fun PrimerShipping.toPrimerShippingRN() =
|
|
11
|
+
internal fun PrimerShipping.toPrimerShippingRN() =
|
|
12
|
+
PrimerShippingRN(amount, methodId, methodName, methodDescription)
|
package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt
CHANGED
|
@@ -6,54 +6,67 @@ import io.primer.android.data.settings.PrimerStripeOptions.MandateData.TemplateM
|
|
|
6
6
|
import io.primer.android.data.settings.PrimerStripeOptions.MandateData.FullMandateData
|
|
7
7
|
import io.primer.android.data.settings.PrimerStripeOptions.MandateData.FullMandateStringData
|
|
8
8
|
import android.content.Context
|
|
9
|
+
import com.google.android.gms.wallet.button.ButtonConstants
|
|
10
|
+
import com.primerioreactnative.components.manager.googlePay.PrimerGooglePayButtonOptionsMapping
|
|
9
11
|
|
|
10
12
|
fun PrimerPaymentMethodOptionsRN.toPrimerPaymentMethodOptions(context: Context) =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
PrimerPaymentMethodOptions(
|
|
14
|
+
androidSettingsRN.redirectScheme,
|
|
15
|
+
googlePayOptions.toPrimerGooglePayOptions(),
|
|
16
|
+
klarnaOptions.toPrimerKlarnaOptions(),
|
|
17
|
+
threeDsOptions.toPrimerThreeDsOptions(),
|
|
18
|
+
stripeOptions.toPrimerStripeOptions(context),
|
|
19
|
+
)
|
|
18
20
|
|
|
19
21
|
fun PrimerGooglePayOptionsRN.toPrimerGooglePayOptions() =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
)
|
|
22
|
+
PrimerGooglePayOptions(
|
|
23
|
+
merchantName = merchantName,
|
|
24
|
+
allowedCardNetworks = allowedCardNetworks,
|
|
25
|
+
buttonStyle = buttonStyle,
|
|
26
|
+
captureBillingAddress = captureBillingAddress,
|
|
27
|
+
existingPaymentMethodRequired = existingPaymentMethodRequired,
|
|
28
|
+
shippingAddressParameters = shippingAddressParameters?.toPrimerGoogleShippingAddressParameters(),
|
|
29
|
+
requireShippingMethod = requireShippingMethod,
|
|
30
|
+
emailAddressRequired = emailAddressRequired,
|
|
31
|
+
buttonOptions = buttonOptions?.toPrimerGooglePayButtonOptions() ?: GooglePayButtonOptions()
|
|
32
|
+
)
|
|
30
33
|
|
|
31
34
|
fun PrimerGoogleShippingAddressParametersRN.toPrimerGoogleShippingAddressParameters() =
|
|
32
|
-
|
|
35
|
+
PrimerGoogleShippingAddressParameters(phoneNumberRequired)
|
|
36
|
+
|
|
37
|
+
fun PrimerGooglePayButtonOptionsRN.toPrimerGooglePayButtonOptions() = GooglePayButtonOptions(
|
|
38
|
+
buttonType = buttonType ?: ButtonConstants.ButtonType.PAY,
|
|
39
|
+
buttonTheme = buttonTheme ?: ButtonConstants.ButtonTheme.DARK,
|
|
40
|
+
)
|
|
33
41
|
|
|
34
42
|
fun PrimerKlarnaOptionsRN.toPrimerKlarnaOptions() =
|
|
35
|
-
|
|
43
|
+
PrimerKlarnaOptions(recurringPaymentDescription, webViewTitle)
|
|
36
44
|
|
|
37
45
|
fun PrimerThreeDsOptionsRN.toPrimerThreeDsOptions() =
|
|
38
|
-
|
|
46
|
+
PrimerThreeDsOptions(threeDsOptionsAndroid?.threeDsAppRequestorUrl)
|
|
39
47
|
|
|
40
48
|
fun PrimerStripeOptionsRN.toPrimerStripeOptions(context: Context) =
|
|
41
|
-
|
|
49
|
+
PrimerStripeOptions(
|
|
50
|
+
mandateData = mandateData?.toMandateData(context),
|
|
51
|
+
publishableKey = publishableKey
|
|
52
|
+
)
|
|
42
53
|
|
|
43
54
|
private fun PrimerStripeOptionsRN.MandateDataRN.toMandateData(context: Context) = when {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
merchantName != null -> TemplateMandateData(merchantName)
|
|
56
|
+
fullMandateStringResName != null -> {
|
|
57
|
+
val stringId = context.getResources()
|
|
58
|
+
.getIdentifier(fullMandateStringResName, "string", context.getPackageName())
|
|
59
|
+
if (stringId != 0) {
|
|
60
|
+
FullMandateData(stringId)
|
|
61
|
+
} else {
|
|
62
|
+
if (fullMandateText != null) {
|
|
63
|
+
FullMandateStringData(fullMandateText)
|
|
64
|
+
} else {
|
|
65
|
+
error("Missing mandate data")
|
|
66
|
+
}
|
|
56
67
|
}
|
|
57
|
-
|
|
58
|
-
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
fullMandateText != null -> FullMandateStringData(fullMandateText)
|
|
71
|
+
else -> error("Missing mandate data")
|
|
59
72
|
}
|
|
@@ -2,11 +2,22 @@ package com.primerioreactnative.extensions
|
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.datamodels.PrimerUIOptionsRN
|
|
4
4
|
import io.primer.android.ui.settings.PrimerUIOptions
|
|
5
|
+
import io.primer.android.data.settings.DismissalMechanism
|
|
5
6
|
|
|
7
|
+
@OptIn(kotlin.ExperimentalStdlibApi::class)
|
|
6
8
|
internal fun PrimerUIOptionsRN.toPrimerUIOptions() =
|
|
7
9
|
PrimerUIOptions(
|
|
8
10
|
isInitScreenEnabled,
|
|
9
11
|
isSuccessScreenEnabled,
|
|
10
12
|
isErrorScreenEnabled,
|
|
13
|
+
buildSet {
|
|
14
|
+
for (it in dismissalMechanism.orEmpty()) {
|
|
15
|
+
when (it) {
|
|
16
|
+
"gestures" -> add(DismissalMechanism.GESTURES)
|
|
17
|
+
"closeButton" -> add(DismissalMechanism.CLOSE_BUTTON)
|
|
18
|
+
else -> { /* no-op */ }
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}.toList().takeIf { it.isNotEmpty() } ?: listOf(DismissalMechanism.GESTURES),
|
|
11
22
|
theme.toPrimerTheme()
|
|
12
23
|
)
|
package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.primerioreactnative.extensions.klarna
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCategoryRN
|
|
4
|
-
import io.primer.android.
|
|
4
|
+
import io.primer.android.klarna.implementation.session.domain.models.KlarnaPaymentCategory
|
|
5
5
|
|
|
6
6
|
internal fun KlarnaPaymentCategory.toKlarnaPaymentCategoryRN() =
|
|
7
7
|
KlarnaPaymentCategoryRN(
|
package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.primerioreactnative.extensions.klarna
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCategoryRN
|
|
4
|
-
import io.primer.android.
|
|
4
|
+
import io.primer.android.klarna.implementation.session.domain.models.KlarnaPaymentCategory
|
|
5
5
|
|
|
6
6
|
internal fun KlarnaPaymentCategoryRN.toKlarnaPaymentCategory() =
|
|
7
7
|
KlarnaPaymentCategory(
|
|
@@ -2,8 +2,8 @@ package com.primerioreactnative.extensions.klarna
|
|
|
2
2
|
|
|
3
3
|
import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCollectableDataRN.PaymentOptionsRN
|
|
4
4
|
import com.primerioreactnative.datamodels.klarna.KlarnaPaymentCollectableDataRN.FinalizePaymentRN
|
|
5
|
-
import io.primer.android.
|
|
6
|
-
import io.primer.android.
|
|
5
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentCollectableData.PaymentOptions
|
|
6
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentCollectableData.FinalizePayment
|
|
7
7
|
|
|
8
8
|
internal fun PaymentOptions.toPaymentOptionsRN() =
|
|
9
9
|
PaymentOptionsRN(
|
package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt
CHANGED
|
@@ -5,10 +5,10 @@ import com.primerioreactnative.datamodels.klarna.KlarnaPaymentStepRN.PaymentView
|
|
|
5
5
|
import com.primerioreactnative.datamodels.klarna.KlarnaPaymentStepRN.PaymentSessionAuthorizedRN
|
|
6
6
|
import com.primerioreactnative.datamodels.klarna.KlarnaPaymentStepRN.PaymentSessionFinalizedRN
|
|
7
7
|
import com.primerioreactnative.extensions.klarna.toKlarnaPaymentCategoryRN
|
|
8
|
-
import
|
|
9
|
-
import io.primer.android.
|
|
10
|
-
import io.primer.android.
|
|
11
|
-
import io.primer.android.
|
|
8
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentSessionCreated
|
|
9
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentViewLoaded
|
|
10
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentSessionAuthorized
|
|
11
|
+
import io.primer.android.klarna.api.composable.KlarnaPaymentStep.PaymentSessionFinalized
|
|
12
12
|
|
|
13
13
|
internal fun PaymentSessionCreated.toPaymentSessionCreatedRN() =
|
|
14
14
|
PaymentSessionCreatedRN(paymentCategories = paymentCategories.map { it.toKlarnaPaymentCategoryRN() })
|
|
@@ -43,12 +43,11 @@ extension PrimerSettings {
|
|
|
43
43
|
|
|
44
44
|
var shippingOptions: PrimerApplePayOptions.ShippingOptions? = nil
|
|
45
45
|
if let rnShippingOptions = rnApplePayOptions["shippingOptions"] as? [String: Any] {
|
|
46
|
-
let isCaptureShippingAddressEnabled = rnShippingOptions["isCaptureShippingAddressEnabled"] as? Bool ?? false
|
|
47
46
|
let requireShippingMethod = rnShippingOptions["requireShippingMethod"] as? Bool ?? false
|
|
48
47
|
|
|
49
|
-
var
|
|
50
|
-
if let
|
|
51
|
-
|
|
48
|
+
var shippingContactFields: [PrimerApplePayOptions.RequiredContactField]? = nil
|
|
49
|
+
if let requiredFieldsStrings = rnShippingOptions["shippingContactFields"] as? [String] {
|
|
50
|
+
shippingContactFields = requiredFieldsStrings.compactMap { fieldStr in
|
|
52
51
|
switch fieldStr {
|
|
53
52
|
case "name":
|
|
54
53
|
return .name
|
|
@@ -56,6 +55,8 @@ extension PrimerSettings {
|
|
|
56
55
|
return .emailAddress
|
|
57
56
|
case "phoneNumber":
|
|
58
57
|
return .phoneNumber
|
|
58
|
+
case "postalAddress":
|
|
59
|
+
return .postalAddress
|
|
59
60
|
default:
|
|
60
61
|
return nil // Ignore unknown values or handle accordingly
|
|
61
62
|
}
|
|
@@ -63,19 +64,44 @@ extension PrimerSettings {
|
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
shippingOptions = PrimerApplePayOptions.ShippingOptions(
|
|
66
|
-
|
|
67
|
-
additionalShippingContactFields: additionalShippingContactFields,
|
|
67
|
+
shippingContactFields: shippingContactFields,
|
|
68
68
|
requireShippingMethod: requireShippingMethod
|
|
69
69
|
)
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
var billingOptions: PrimerApplePayOptions.BillingOptions? = nil
|
|
73
|
+
if let rnBillingOptions = rnApplePayOptions["billingOptions"] as? [String: Any] {
|
|
74
|
+
var requiredBillingContactFields: [PrimerApplePayOptions.RequiredContactField]? = nil
|
|
75
|
+
if let requiredFieldsStrings = rnBillingOptions["requiredBillingContactFields"] as? [String] {
|
|
76
|
+
requiredBillingContactFields = requiredFieldsStrings.compactMap { fieldStr in
|
|
77
|
+
switch fieldStr {
|
|
78
|
+
case "name":
|
|
79
|
+
return .name
|
|
80
|
+
case "emailAddress":
|
|
81
|
+
return .emailAddress
|
|
82
|
+
case "phoneNumber":
|
|
83
|
+
return .phoneNumber
|
|
84
|
+
case "postalAddress":
|
|
85
|
+
return .postalAddress
|
|
86
|
+
default:
|
|
87
|
+
return nil // Ignore unknown values or handle accordingly
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
billingOptions = PrimerApplePayOptions.BillingOptions(
|
|
93
|
+
requiredBillingContactFields: requiredBillingContactFields
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
|
|
72
97
|
applePayOptions = PrimerApplePayOptions(
|
|
73
98
|
merchantIdentifier: rnApplePayMerchantIdentifier,
|
|
74
99
|
merchantName: rnApplePayMerchantName,
|
|
75
100
|
isCaptureBillingAddressEnabled: rnApplePayIsCaptureBillingAddressEnabled,
|
|
76
101
|
showApplePayForUnsupportedDevice: rnApplePayShowApplePayForUnsupportedDevice,
|
|
77
102
|
checkProvidedNetworks: rnApplePayCheckProvidedNetworks,
|
|
78
|
-
shippingOptions: shippingOptions
|
|
103
|
+
shippingOptions: shippingOptions,
|
|
104
|
+
billingOptions: billingOptions
|
|
79
105
|
)
|
|
80
106
|
}
|
|
81
107
|
|
|
@@ -99,6 +125,23 @@ extension PrimerSettings {
|
|
|
99
125
|
isInitScreenEnabled: rnUIOptions["isInitScreenEnabled"] as? Bool,
|
|
100
126
|
isSuccessScreenEnabled: rnUIOptions["isSuccessScreenEnabled"] as? Bool,
|
|
101
127
|
isErrorScreenEnabled: rnUIOptions["isErrorScreenEnabled"] as? Bool,
|
|
128
|
+
dismissalMechanism: {
|
|
129
|
+
if let mechanisms = rnUIOptions["dismissalMechanism"] as? [String] {
|
|
130
|
+
var dismissalMechanisms: [DismissalMechanism] = []
|
|
131
|
+
for mechanism in mechanisms {
|
|
132
|
+
switch mechanism {
|
|
133
|
+
case "gestures":
|
|
134
|
+
dismissalMechanisms.append(.gestures)
|
|
135
|
+
case "closeButton":
|
|
136
|
+
dismissalMechanisms.append(.closeButton)
|
|
137
|
+
default:
|
|
138
|
+
break
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return dismissalMechanisms.isEmpty ? nil : dismissalMechanisms
|
|
142
|
+
}
|
|
143
|
+
return nil
|
|
144
|
+
}(),
|
|
102
145
|
theme: theme)
|
|
103
146
|
}
|
|
104
147
|
|
|
@@ -18,7 +18,14 @@ RCT_EXTERN_METHOD(getPaymentMethodAsset:(NSString *)paymentMethodType
|
|
|
18
18
|
resolver:(RCTPromiseResolveBlock)resolver
|
|
19
19
|
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
20
20
|
|
|
21
|
+
RCT_EXTERN_METHOD(getPaymentMethodResource:(NSString *)paymentMethodType
|
|
22
|
+
resolver:(RCTPromiseResolveBlock)resolver
|
|
23
|
+
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
24
|
+
|
|
21
25
|
RCT_EXTERN_METHOD(getPaymentMethodAssets:(RCTPromiseResolveBlock)resolver
|
|
22
26
|
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
23
27
|
|
|
28
|
+
RCT_EXTERN_METHOD(getPaymentMethodResources:(RCTPromiseResolveBlock)resolver
|
|
29
|
+
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
30
|
+
|
|
24
31
|
@end
|