@primer-io/react-native 2.28.0-beta.1 → 2.28.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/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 +83 -1
- 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/raw/PrimerRNHeadlessUniversalCheckoutRawManager.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 +48 -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/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 +33 -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 +15 -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 +17 -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
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
|
|
@@ -120,8 +121,8 @@ data class PrimerCardPaymentOptionsRN(var is3DSOnVaultingEnabled: Boolean = true
|
|
|
120
121
|
|
|
121
122
|
@Serializable
|
|
122
123
|
data class PrimerThreeDsOptionsRN(
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
@SerialName("android")
|
|
125
|
+
val threeDsOptionsAndroid: PrimerThreeDsAndroidOptionsRN? = null
|
|
125
126
|
)
|
|
126
127
|
|
|
127
128
|
@Serializable
|
|
@@ -129,19 +130,21 @@ data class PrimerThreeDsAndroidOptionsRN(val threeDsAppRequestorUrl: String? = n
|
|
|
129
130
|
|
|
130
131
|
@Serializable
|
|
131
132
|
data class PrimerGooglePayOptionsRN(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
133
|
+
var merchantName: String? = null,
|
|
134
|
+
var allowedCardNetworks: List<String> =
|
|
135
|
+
listOf("AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"),
|
|
136
|
+
var buttonStyle: GooglePayButtonStyle = GooglePayButtonStyle.BLACK,
|
|
137
|
+
@SerialName("isCaptureBillingAddressEnabled")
|
|
138
|
+
var captureBillingAddress: Boolean = false,
|
|
139
|
+
@SerialName("isExistingPaymentMethodRequired")
|
|
140
|
+
var existingPaymentMethodRequired: Boolean = false,
|
|
141
|
+
var shippingAddressParameters: PrimerGoogleShippingAddressParametersRN? = null,
|
|
142
|
+
@SerialName("requireShippingMethod")
|
|
143
|
+
var requireShippingMethod: Boolean = false,
|
|
144
|
+
@SerialName("emailAddressRequired")
|
|
145
|
+
var emailAddressRequired: Boolean = false,
|
|
146
|
+
@SerialName("buttonOptions")
|
|
147
|
+
var buttonOptions: PrimerGooglePayButtonOptionsRN? = null
|
|
145
148
|
)
|
|
146
149
|
|
|
147
150
|
@Serializable
|
|
@@ -149,30 +152,38 @@ data class PrimerGoogleShippingAddressParametersRN(
|
|
|
149
152
|
var phoneNumberRequired: Boolean = false
|
|
150
153
|
)
|
|
151
154
|
|
|
155
|
+
@Serializable
|
|
156
|
+
data class PrimerGooglePayButtonOptionsRN(
|
|
157
|
+
@SerialName("buttonTheme")
|
|
158
|
+
var buttonTheme: Int? = null,
|
|
159
|
+
@SerialName("buttonType")
|
|
160
|
+
var buttonType: Int? = null
|
|
161
|
+
)
|
|
162
|
+
|
|
152
163
|
@Serializable
|
|
153
164
|
data class PrimerKlarnaOptionsRN(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
165
|
+
var recurringPaymentDescription: String? = null,
|
|
166
|
+
@Deprecated("This property is deprecated and will be removed in future release.")
|
|
167
|
+
var webViewTitle: String? = null,
|
|
157
168
|
)
|
|
158
169
|
|
|
159
170
|
@Serializable
|
|
160
171
|
data class PrimerStripeOptionsRN(
|
|
161
|
-
|
|
162
|
-
|
|
172
|
+
val mandateData: MandateDataRN? = null,
|
|
173
|
+
val publishableKey: String? = null,
|
|
163
174
|
) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
175
|
+
@Serializable
|
|
176
|
+
data class MandateDataRN(
|
|
177
|
+
@SerialName("fullMandateText") val fullMandateText: String? = null,
|
|
178
|
+
@SerialName("fullMandateStringResourceName") val fullMandateStringResName: String? = null,
|
|
179
|
+
val merchantName: String? = null
|
|
180
|
+
)
|
|
170
181
|
}
|
|
171
182
|
|
|
172
183
|
@Serializable
|
|
173
184
|
@Deprecated("This class is deprecated and will be removed in future release.")
|
|
174
185
|
data class PrimerApayaOptionsRN(
|
|
175
|
-
|
|
186
|
+
var webViewTitle: String? = null,
|
|
176
187
|
)
|
|
177
188
|
|
|
178
189
|
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
|
}
|
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
|
|
|
@@ -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
|