@stripe/stripe-react-native 0.65.0 → 0.66.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 +2 -2
- package/android/detekt/detekt-baseline.xml +1 -76
- package/android/gradle.properties +4 -4
- package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormView.kt +3 -1
- package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormViewManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +56 -58
- package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementEvent.kt +26 -0
- package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementView.kt +139 -0
- package/android/src/main/java/com/reactnativestripesdk/CurrencySelectorElementViewManager.kt +59 -0
- package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +105 -49
- package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +72 -12
- package/android/src/main/java/com/reactnativestripesdk/EventEmitterCompat.kt +4 -0
- package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetManager.kt +8 -4
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +26 -11
- package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/NavigationBarView.kt +14 -5
- package/android/src/main/java/com/reactnativestripesdk/PaymentElementConfig.kt +6 -2
- package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodMessagingElementConfig.kt +6 -2
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodMessagingElementViewManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +8 -4
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +9 -3
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetManager.kt +118 -48
- package/android/src/main/java/com/reactnativestripesdk/StripeAbstractComposeView.kt +1 -0
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +281 -46
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +2 -0
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +3 -1
- package/android/src/main/java/com/reactnativestripesdk/customersheet/CustomerSheetManager.kt +8 -18
- package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerAdapter.kt +3 -1
- package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerSessionProvider.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +2 -1
- package/android/src/main/java/com/reactnativestripesdk/utils/CheckoutAddressUpdate.kt +45 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/CheckoutMappers.kt +127 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/DefaultActivityLifecycleCallbacks.kt +41 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/Errors.kt +4 -2
- package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +5 -1
- package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +29 -13
- package/android/src/main/java/com/reactnativestripesdk/utils/PostalCodeUtilities.kt +2 -1
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerDelegate.java +6 -0
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerInterface.java +2 -0
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeCurrencySelectorElementManagerDelegate.java +35 -0
- package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeCurrencySelectorElementManagerInterface.java +18 -0
- package/android/src/oldarch/java/com/reactnativestripesdk/NativeOnrampSdkModuleSpec.java +17 -3
- package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +13 -1
- package/android/src/onramp/java/com/reactnativestripesdk/OnrampMappers.kt +116 -0
- package/android/src/onramp/java/com/reactnativestripesdk/OnrampSdkModule.kt +109 -1
- package/android/src/test/java/com/reactnativestripesdk/DrawableLoadingTest.kt +6 -2
- package/android/src/test/java/com/reactnativestripesdk/mappers/MappersTest.kt +60 -0
- package/android/src/test/java/com/reactnativestripesdk/mappers/OnrampMappersTest.kt +145 -0
- package/android/src/test/java/com/reactnativestripesdk/mappers/PaymentOptionDisplayDataMapperTest.kt +9 -4
- package/android/src/test/java/com/reactnativestripesdk/utils/CheckoutMappersTest.kt +98 -0
- package/android/src/test/java/com/reactnativestripesdk/utils/CheckoutTestFixtures.java +57 -0
- package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewController.swift +6 -8
- package/ios/CurrencySelectorElementManager.m +16 -0
- package/ios/CurrencySelectorElementView.swift +159 -0
- package/ios/EmbeddedPaymentElementView.swift +1 -1
- package/ios/Mappers+Checkout.swift +337 -0
- package/ios/Mappers.swift +90 -2
- package/ios/NewArch/EmbeddedPaymentElementViewComponentView.mm +16 -2
- package/ios/NewArch/StripeCurrencySelectorElementComponentView.h +10 -0
- package/ios/NewArch/StripeCurrencySelectorElementComponentView.mm +89 -0
- package/ios/OldArch/StripeSdkEventEmitterCompat.h +1 -0
- package/ios/OldArch/StripeSdkEventEmitterCompat.m +6 -0
- package/ios/PaymentOptionDisplayData+ReactNative.swift +1 -1
- package/ios/PaymentSheetAppearance.swift +1 -1
- package/ios/StripeOnrampSdk.mm +19 -0
- package/ios/StripeSdk.mm +136 -0
- package/ios/StripeSdkEmitter.swift +1 -0
- package/ios/StripeSdkImpl+Checkout.swift +360 -0
- package/ios/StripeSdkImpl+CustomerSheet.swift +1 -1
- package/ios/StripeSdkImpl+Embedded.swift +108 -27
- package/ios/StripeSdkImpl+PaymentSheet.swift +18 -2
- package/ios/StripeSdkImpl.swift +89 -7
- package/jest/mock.js +13 -1
- package/lib/commonjs/components/AddToWalletButton.js +1 -1
- package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
- package/lib/commonjs/components/AddressSheet.js +1 -1
- package/lib/commonjs/components/AddressSheet.js.map +1 -1
- package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
- package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
- package/lib/commonjs/components/CardField.js +1 -1
- package/lib/commonjs/components/CardField.js.map +1 -1
- package/lib/commonjs/components/CardForm.js +1 -1
- package/lib/commonjs/components/CardForm.js.map +1 -1
- package/lib/commonjs/components/CurrencySelectorElement.js +2 -0
- package/lib/commonjs/components/CurrencySelectorElement.js.map +1 -0
- package/lib/commonjs/components/PaymentMethodMessagingElement.js +1 -1
- package/lib/commonjs/components/PaymentMethodMessagingElement.js.map +1 -1
- package/lib/commonjs/components/PlatformPayButton.js +1 -1
- package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
- package/lib/commonjs/components/StripeContainer.js +1 -1
- package/lib/commonjs/components/StripeContainer.js.map +1 -1
- package/lib/commonjs/connect/Components.js +1 -1
- package/lib/commonjs/connect/Components.js.map +1 -1
- package/lib/commonjs/connect/ConnectComponentsProvider.js +1 -1
- package/lib/commonjs/connect/ConnectComponentsProvider.js.map +1 -1
- package/lib/commonjs/connect/EmbeddedComponent.js +1 -1
- package/lib/commonjs/connect/EmbeddedComponent.js.map +1 -1
- package/lib/commonjs/connect/ModalCloseButton.js +1 -1
- package/lib/commonjs/connect/ModalCloseButton.js.map +1 -1
- package/lib/commonjs/connect/NavigationBar.js +1 -1
- package/lib/commonjs/connect/NavigationBar.js.map +1 -1
- package/lib/commonjs/events.js.map +1 -1
- package/lib/commonjs/functions.js +1 -1
- package/lib/commonjs/functions.js.map +1 -1
- package/lib/commonjs/helpers.js +1 -1
- package/lib/commonjs/hooks/useCheckout.js +1 -1
- package/lib/commonjs/hooks/useCheckout.js.map +1 -1
- package/lib/commonjs/hooks/useOnramp.js +1 -1
- package/lib/commonjs/hooks/useOnramp.js.map +1 -1
- package/lib/commonjs/specs/NativeAddToWalletButton.js +1 -1
- package/lib/commonjs/specs/NativeAddressSheet.js +1 -1
- package/lib/commonjs/specs/NativeApplePayButton.js +1 -1
- package/lib/commonjs/specs/NativeAuBECSDebitForm.js +1 -1
- package/lib/commonjs/specs/NativeCardField.js +1 -1
- package/lib/commonjs/specs/NativeCardField.js.map +1 -1
- package/lib/commonjs/specs/NativeCardForm.js +1 -1
- package/lib/commonjs/specs/NativeCardForm.js.map +1 -1
- package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js +1 -1
- package/lib/commonjs/specs/NativeCurrencySelectorElement.js +2 -0
- package/lib/commonjs/specs/NativeCurrencySelectorElement.js.map +1 -0
- package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +1 -1
- package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -1
- package/lib/commonjs/specs/NativeGooglePayButton.js +1 -1
- package/lib/commonjs/specs/NativeNavigationBar.js +1 -1
- package/lib/commonjs/specs/NativeOnrampSdkModule.js.map +1 -1
- package/lib/commonjs/specs/NativePaymentMethodMessagingElement.js +1 -1
- package/lib/commonjs/specs/NativeStripeContainer.js +1 -1
- package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -1
- package/lib/commonjs/types/EmbeddedPaymentElement.js +1 -1
- package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -1
- package/lib/module/components/AddToWalletButton.js +1 -1
- package/lib/module/components/AddToWalletButton.js.map +1 -1
- package/lib/module/components/AddressSheet.js +1 -1
- package/lib/module/components/AddressSheet.js.map +1 -1
- package/lib/module/components/AuBECSDebitForm.js +1 -1
- package/lib/module/components/AuBECSDebitForm.js.map +1 -1
- package/lib/module/components/CardField.js +1 -1
- package/lib/module/components/CardField.js.map +1 -1
- package/lib/module/components/CardForm.js +1 -1
- package/lib/module/components/CardForm.js.map +1 -1
- package/lib/module/components/CurrencySelectorElement.js +2 -0
- package/lib/module/components/CurrencySelectorElement.js.map +1 -0
- package/lib/module/components/PaymentMethodMessagingElement.js +1 -1
- package/lib/module/components/PaymentMethodMessagingElement.js.map +1 -1
- package/lib/module/components/PlatformPayButton.js +1 -1
- package/lib/module/components/PlatformPayButton.js.map +1 -1
- package/lib/module/components/StripeContainer.js +1 -1
- package/lib/module/components/StripeContainer.js.map +1 -1
- package/lib/module/connect/Components.js +1 -1
- package/lib/module/connect/Components.js.map +1 -1
- package/lib/module/connect/ConnectComponentsProvider.js +1 -1
- package/lib/module/connect/ConnectComponentsProvider.js.map +1 -1
- package/lib/module/connect/EmbeddedComponent.js +1 -1
- package/lib/module/connect/EmbeddedComponent.js.map +1 -1
- package/lib/module/connect/ModalCloseButton.js +1 -1
- package/lib/module/connect/ModalCloseButton.js.map +1 -1
- package/lib/module/connect/NavigationBar.js +1 -1
- package/lib/module/connect/NavigationBar.js.map +1 -1
- package/lib/module/events.js.map +1 -1
- package/lib/module/functions.js +1 -1
- package/lib/module/functions.js.map +1 -1
- package/lib/module/helpers.js +1 -1
- package/lib/module/hooks/useCheckout.js +1 -1
- package/lib/module/hooks/useCheckout.js.map +1 -1
- package/lib/module/hooks/useOnramp.js +1 -1
- package/lib/module/hooks/useOnramp.js.map +1 -1
- package/lib/module/specs/NativeAddToWalletButton.js +1 -1
- package/lib/module/specs/NativeAddressSheet.js +1 -1
- package/lib/module/specs/NativeApplePayButton.js +1 -1
- package/lib/module/specs/NativeAuBECSDebitForm.js +1 -1
- package/lib/module/specs/NativeCardField.js +1 -1
- package/lib/module/specs/NativeCardField.js.map +1 -1
- package/lib/module/specs/NativeCardForm.js +1 -1
- package/lib/module/specs/NativeCardForm.js.map +1 -1
- package/lib/module/specs/NativeConnectAccountOnboardingView.js +1 -1
- package/lib/module/specs/NativeCurrencySelectorElement.js +2 -0
- package/lib/module/specs/NativeCurrencySelectorElement.js.map +1 -0
- package/lib/module/specs/NativeEmbeddedPaymentElement.js +1 -1
- package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -1
- package/lib/module/specs/NativeGooglePayButton.js +1 -1
- package/lib/module/specs/NativeNavigationBar.js +1 -1
- package/lib/module/specs/NativeOnrampSdkModule.js.map +1 -1
- package/lib/module/specs/NativePaymentMethodMessagingElement.js +1 -1
- package/lib/module/specs/NativeStripeContainer.js +1 -1
- package/lib/module/specs/NativeStripeSdkModule.js.map +1 -1
- package/lib/module/types/EmbeddedPaymentElement.js +1 -1
- package/lib/module/types/EmbeddedPaymentElement.js.map +1 -1
- package/lib/typescript/src/components/CurrencySelectorElement.d.ts +62 -0
- package/lib/typescript/src/components/CurrencySelectorElement.d.ts.map +1 -0
- package/lib/typescript/src/components/PaymentMethodMessagingElement.d.ts +1 -1
- package/lib/typescript/src/components/PaymentMethodMessagingElement.d.ts.map +1 -1
- package/lib/typescript/src/events.d.ts +11 -0
- package/lib/typescript/src/events.d.ts.map +1 -1
- package/lib/typescript/src/functions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useCheckout.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useOnramp.d.ts +22 -0
- package/lib/typescript/src/hooks/useOnramp.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeCurrencySelectorElement.d.ts +25 -0
- package/lib/typescript/src/specs/NativeCurrencySelectorElement.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts +5 -1
- package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts +3 -0
- package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +5 -2
- package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -1
- package/lib/typescript/src/types/Checkout.d.ts +268 -86
- package/lib/typescript/src/types/Checkout.d.ts.map +1 -1
- package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts +36 -1
- package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts.map +1 -1
- package/lib/typescript/src/types/Onramp.d.ts +94 -0
- package/lib/typescript/src/types/Onramp.d.ts.map +1 -1
- package/package.json +16 -4
- package/src/components/CurrencySelectorElement.tsx +95 -0
- package/src/components/PaymentMethodMessagingElement.tsx +54 -52
- package/src/events.ts +11 -0
- package/src/functions.ts +30 -1
- package/src/hooks/useCheckout.tsx +129 -74
- package/src/hooks/useOnramp.tsx +44 -0
- package/src/specs/NativeCurrencySelectorElement.ts +35 -0
- package/src/specs/NativeEmbeddedPaymentElement.ts +12 -2
- package/src/specs/NativeOnrampSdkModule.ts +5 -0
- package/src/specs/NativeStripeSdkModule.ts +16 -2
- package/src/types/Checkout.ts +291 -86
- package/src/types/EmbeddedPaymentElement.tsx +117 -26
- package/src/types/Onramp.ts +109 -0
- package/stripe-react-native.podspec +1 -1
- package/android/.idea/AndroidProjectSystem.xml +0 -6
- package/android/.idea/caches/deviceStreaming.xml +0 -835
- package/android/.idea/compiler.xml +0 -6
- package/android/.idea/gradle.xml +0 -17
- package/android/.idea/migrations.xml +0 -10
- package/android/.idea/misc.xml +0 -10
- package/android/.idea/runConfigurations.xml +0 -17
- package/android/.idea/vcs.xml +0 -6
- package/android/local.properties +0 -8
package/ios/Mappers.swift
CHANGED
|
@@ -3,7 +3,7 @@ import Stripe
|
|
|
3
3
|
@_spi(ConfirmationTokensPublicPreview) import StripePayments
|
|
4
4
|
#if canImport(StripeCryptoOnramp)
|
|
5
5
|
@_spi(CryptoOnrampAlpha) import StripeCryptoOnramp
|
|
6
|
-
@_spi(
|
|
6
|
+
@_spi(CryptoOnrampAlpha) import StripePaymentSheet
|
|
7
7
|
#else
|
|
8
8
|
import StripePaymentSheet
|
|
9
9
|
#endif
|
|
@@ -1262,13 +1262,20 @@ class Mappers {
|
|
|
1262
1262
|
class func mapToKycInfo(_ params: [String: Any]) throws -> KycInfo {
|
|
1263
1263
|
let address = try mapOptionalKycAddress(params["address"])
|
|
1264
1264
|
let dateOfBirth = try mapOptionalDateOfBirth(params["dateOfBirth"])
|
|
1265
|
+
let nationalities = try mapOptionalNormalizedStringArray(
|
|
1266
|
+
params["nationalities"],
|
|
1267
|
+
field: "nationalities"
|
|
1268
|
+
)
|
|
1265
1269
|
|
|
1266
1270
|
return KycInfo(
|
|
1267
1271
|
firstName: normalizedString(params["firstName"]),
|
|
1268
1272
|
lastName: normalizedString(params["lastName"]),
|
|
1269
1273
|
idNumber: normalizedString(params["idNumber"]),
|
|
1270
1274
|
address: address,
|
|
1271
|
-
dateOfBirth: dateOfBirth
|
|
1275
|
+
dateOfBirth: dateOfBirth,
|
|
1276
|
+
birthCountry: normalizedString(params["birthCountry"]),
|
|
1277
|
+
birthCity: normalizedString(params["birthCity"]),
|
|
1278
|
+
nationalities: nationalities
|
|
1272
1279
|
)
|
|
1273
1280
|
}
|
|
1274
1281
|
|
|
@@ -1295,6 +1302,18 @@ class Mappers {
|
|
|
1295
1302
|
result["dateOfBirth"] = mapFromDateOfBirth(dateOfBirth)
|
|
1296
1303
|
}
|
|
1297
1304
|
|
|
1305
|
+
if let birthCountry = kycInfo.birthCountry {
|
|
1306
|
+
result["birthCountry"] = birthCountry
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
if let birthCity = kycInfo.birthCity {
|
|
1310
|
+
result["birthCity"] = birthCity
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
if let nationalities = kycInfo.nationalities {
|
|
1314
|
+
result["nationalities"] = nationalities
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1298
1317
|
return result
|
|
1299
1318
|
}
|
|
1300
1319
|
|
|
@@ -1336,6 +1355,48 @@ class Mappers {
|
|
|
1336
1355
|
]
|
|
1337
1356
|
}
|
|
1338
1357
|
|
|
1358
|
+
class func mapToComplianceIdentifier(_ params: [String: Any]) throws -> ComplianceIdentifier {
|
|
1359
|
+
guard let type = normalizedString(params["type"]) else {
|
|
1360
|
+
throw ComplianceIdentifierError.invalidField("type")
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
guard let value = normalizedString(params["value"]) else {
|
|
1364
|
+
throw ComplianceIdentifierError.invalidField("value")
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
return ComplianceIdentifier(type: ComplianceIdentifierType(rawValue: type), value: value)
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
class func mapFromComplianceIdentifierRequirements(_ requirements: ComplianceIdentifierRequirements) -> [String: Any] {
|
|
1371
|
+
[
|
|
1372
|
+
"identifiers": requirements.identifiers.map(mapFromComplianceIdentifierRequirement),
|
|
1373
|
+
"alternatives": requirements.alternatives.map(mapFromComplianceIdentifierAlternativeGroup),
|
|
1374
|
+
]
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
class func mapFromSubmitIdentifiersResult(_ result: SubmitIdentifiersResult) -> [String: Any] {
|
|
1378
|
+
[
|
|
1379
|
+
"valid": result.valid,
|
|
1380
|
+
"identifiers": result.identifiers.map(mapFromComplianceIdentifierRequirement),
|
|
1381
|
+
"alternatives": result.alternatives.map(mapFromComplianceIdentifierAlternativeGroup),
|
|
1382
|
+
"invalidIdentifiers": result.invalidIdentifiers.map(\.rawValue),
|
|
1383
|
+
]
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
private class func mapFromComplianceIdentifierRequirement(_ requirement: ComplianceIdentifierRequirement) -> [String: String] {
|
|
1387
|
+
[
|
|
1388
|
+
"type": requirement.type.rawValue,
|
|
1389
|
+
"regulation": requirement.regulation.rawValue,
|
|
1390
|
+
]
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
private class func mapFromComplianceIdentifierAlternativeGroup(_ group: ComplianceIdentifierAlternativeGroup) -> [String: [String]] {
|
|
1394
|
+
[
|
|
1395
|
+
"originalMissingIdentifiers": group.originalMissingIdentifiers.map(\.rawValue),
|
|
1396
|
+
"alternativeMissingIdentifiers": group.alternativeMissingIdentifiers.map(\.rawValue),
|
|
1397
|
+
]
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1339
1400
|
private class func mapOptionalKycAddress(_ value: Any?) throws -> Address? {
|
|
1340
1401
|
guard let value else {
|
|
1341
1402
|
return nil
|
|
@@ -1380,6 +1441,29 @@ class Mappers {
|
|
|
1380
1441
|
return nil
|
|
1381
1442
|
}
|
|
1382
1443
|
|
|
1444
|
+
private class func mapOptionalNormalizedStringArray(
|
|
1445
|
+
_ value: Any?,
|
|
1446
|
+
field: String
|
|
1447
|
+
) throws -> [String]? {
|
|
1448
|
+
guard let value else {
|
|
1449
|
+
return nil
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
guard let values = value as? [Any] else {
|
|
1453
|
+
throw KycInfoError.invalidField(field)
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
let normalizedValues = try values.map { value in
|
|
1457
|
+
guard let normalizedValue = normalizedString(value) else {
|
|
1458
|
+
throw KycInfoError.invalidField(field)
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
return normalizedValue
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
return normalizedValues.isEmpty ? nil : normalizedValues
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1383
1467
|
private class func normalizedString(_ value: Any?) -> String? {
|
|
1384
1468
|
guard let stringValue = value as? String else {
|
|
1385
1469
|
return nil
|
|
@@ -1415,5 +1499,9 @@ class Mappers {
|
|
|
1415
1499
|
enum KycInfoError: Swift.Error {
|
|
1416
1500
|
case invalidField(String)
|
|
1417
1501
|
}
|
|
1502
|
+
|
|
1503
|
+
enum ComplianceIdentifierError: Swift.Error {
|
|
1504
|
+
case invalidField(String)
|
|
1505
|
+
}
|
|
1418
1506
|
#endif
|
|
1419
1507
|
}
|
|
@@ -48,14 +48,28 @@ using namespace facebook::react;
|
|
|
48
48
|
RCTEmbeddedPaymentElementViewHandleCommand(self, commandName, args);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
#pragma mark - Shared Codegen Commands
|
|
52
|
+
|
|
53
|
+
// These commands are declared on the shared `NativeEmbeddedPaymentElement`
|
|
54
|
+
// component spec because Android targets its mounted Compose view directly.
|
|
55
|
+
// iOS does not handle EPE actions through this view: the view only hosts
|
|
56
|
+
// `StripeSdkImpl.shared.embeddedInstance.view`, while create/update/confirm/
|
|
57
|
+
// clear are routed through `StripeSdkImpl` module methods. The no-op methods
|
|
58
|
+
// keep the generated Fabric command protocol satisfied on iOS.
|
|
51
59
|
- (void)clearPaymentOption
|
|
52
60
|
{
|
|
53
|
-
// Android only.
|
|
54
61
|
}
|
|
55
62
|
|
|
56
63
|
- (void)confirm
|
|
57
64
|
{
|
|
58
|
-
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
- (void)update:(NSString *)intentConfigurationJson
|
|
68
|
+
{
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
- (void)updateWithCheckout:(NSString *)sessionKey
|
|
72
|
+
{
|
|
59
73
|
}
|
|
60
74
|
|
|
61
75
|
#pragma mark - RCTComponentViewProtocol
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#import "StripeCurrencySelectorElementComponentView.h"
|
|
2
|
+
|
|
3
|
+
#import <react/renderer/components/rnstripe/ComponentDescriptors.h>
|
|
4
|
+
#import <react/renderer/components/rnstripe/EventEmitters.h>
|
|
5
|
+
#import <react/renderer/components/rnstripe/Props.h>
|
|
6
|
+
#import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
|
|
7
|
+
|
|
8
|
+
#import <React/RCTConversions.h>
|
|
9
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
10
|
+
|
|
11
|
+
#import "StripeNewArchConversions.h"
|
|
12
|
+
#import "StripeSwiftInterop.h"
|
|
13
|
+
|
|
14
|
+
using namespace facebook::react;
|
|
15
|
+
|
|
16
|
+
@interface StripeCurrencySelectorElementComponentView () <RCTStripeCurrencySelectorElementViewProtocol>
|
|
17
|
+
@end
|
|
18
|
+
|
|
19
|
+
@implementation StripeCurrencySelectorElementComponentView {
|
|
20
|
+
StripeCurrencySelectorElementContainerView *_view;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Needed because of this: https://github.com/facebook/react-native/pull/37274
|
|
24
|
+
+ (void)load
|
|
25
|
+
{
|
|
26
|
+
[super load];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
30
|
+
{
|
|
31
|
+
if (self = [super initWithFrame:frame]) {
|
|
32
|
+
static const auto defaultProps = std::make_shared<const StripeCurrencySelectorElementProps>();
|
|
33
|
+
_props = defaultProps;
|
|
34
|
+
[self prepareView];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return self;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
- (void)prepareView
|
|
41
|
+
{
|
|
42
|
+
_view = [[StripeCurrencySelectorElementContainerView alloc] initWithFrame:self.frame];
|
|
43
|
+
self.contentView = _view;
|
|
44
|
+
|
|
45
|
+
__weak __typeof(self) weakSelf = self;
|
|
46
|
+
|
|
47
|
+
_view.onHeightChange = ^(NSDictionary *event) {
|
|
48
|
+
__typeof(self) strongSelf = weakSelf;
|
|
49
|
+
if (!strongSelf || !strongSelf->_eventEmitter) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
StripeCurrencySelectorElementEventEmitter::OnHeightChange emitterEvent = {
|
|
53
|
+
.height = [(NSNumber *)event[@"height"] doubleValue],
|
|
54
|
+
};
|
|
55
|
+
std::static_pointer_cast<const StripeCurrencySelectorElementEventEmitter>(strongSelf->_eventEmitter)
|
|
56
|
+
->onHeightChange(std::move(emitterEvent));
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
- (void)updateProps:(const facebook::react::Props::Shared &)props
|
|
61
|
+
oldProps:(const facebook::react::Props::Shared &)oldProps
|
|
62
|
+
{
|
|
63
|
+
const auto &newViewProps = *std::static_pointer_cast<const StripeCurrencySelectorElementProps>(props);
|
|
64
|
+
|
|
65
|
+
_view.sessionKey = RCTNSStringFromStringNilIfEmpty(newViewProps.sessionKey);
|
|
66
|
+
_view.disabled = newViewProps.disabled;
|
|
67
|
+
|
|
68
|
+
[super updateProps:props oldProps:oldProps];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
#pragma mark - RCTComponentViewProtocol
|
|
72
|
+
|
|
73
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
74
|
+
{
|
|
75
|
+
return concreteComponentDescriptorProvider<StripeCurrencySelectorElementComponentDescriptor>();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
- (void)prepareForRecycle
|
|
79
|
+
{
|
|
80
|
+
[super prepareForRecycle];
|
|
81
|
+
[self prepareView];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@end
|
|
85
|
+
|
|
86
|
+
Class<RCTComponentViewProtocol> StripeCurrencySelectorElementCls(void)
|
|
87
|
+
{
|
|
88
|
+
return StripeCurrencySelectorElementComponentView.class;
|
|
89
|
+
}
|
|
@@ -26,5 +26,6 @@
|
|
|
26
26
|
- (void)emitOnCheckoutClientSecretRequested:(NSDictionary *)value;
|
|
27
27
|
- (void)emitPaymentMethodMessagingElementDidUpdateHeight:(NSDictionary *)value;
|
|
28
28
|
- (void)emitPaymentMethodMessagingElementConfigureResult:(NSDictionary *)value;
|
|
29
|
+
- (void)emitCheckoutSessionDidChangeState:(NSDictionary *)value;
|
|
29
30
|
@end
|
|
30
31
|
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
@"onCheckoutClientSecretRequested",
|
|
28
28
|
@"paymentMethodMessagingElementDidUpdateHeight",
|
|
29
29
|
@"paymentMethodMessagingElementConfigureResult",
|
|
30
|
+
@"checkoutSessionDidChangeState",
|
|
30
31
|
];
|
|
31
32
|
}
|
|
32
33
|
|
|
@@ -140,4 +141,9 @@
|
|
|
140
141
|
[self sendEventWithName:@"paymentMethodMessagingElementConfigureResult" body:value];
|
|
141
142
|
}
|
|
142
143
|
|
|
144
|
+
- (void)emitCheckoutSessionDidChangeState:(NSDictionary *)value
|
|
145
|
+
{
|
|
146
|
+
[self sendEventWithName:@"checkoutSessionDidChangeState" body:value];
|
|
147
|
+
}
|
|
148
|
+
|
|
143
149
|
@end
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
|
-
|
|
9
|
+
import StripePaymentSheet
|
|
10
10
|
|
|
11
11
|
extension EmbeddedPaymentElement.PaymentOptionDisplayData {
|
|
12
12
|
/// Convert `PaymentOptionDisplayData` into a dictionary compatible with React Native bridge.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
//
|
|
5
5
|
// Created by Charles Cruzan on 5/11/22.
|
|
6
6
|
//
|
|
7
|
-
|
|
7
|
+
import StripePaymentSheet
|
|
8
8
|
|
|
9
9
|
internal class PaymentSheetAppearance {
|
|
10
10
|
class func buildAppearanceFromParams(userParams: NSDictionary?) throws -> PaymentSheet.Appearance {
|
package/ios/StripeOnrampSdk.mm
CHANGED
|
@@ -65,6 +65,25 @@ RCT_EXPORT_METHOD(attachKycInfo:(nonnull NSDictionary *)info
|
|
|
65
65
|
[StripeSdkImpl.shared attachKycInfo:info resolver:resolve rejecter:reject];
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
RCT_EXPORT_METHOD(retrieveMissingIdentifiers:(nonnull RCTPromiseResolveBlock)resolve
|
|
69
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
70
|
+
{
|
|
71
|
+
[StripeSdkImpl.shared retrieveMissingIdentifiers:resolve rejecter:reject];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
RCT_EXPORT_METHOD(submitIdentifiers:(nonnull NSArray *)identifiers
|
|
75
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
76
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
77
|
+
{
|
|
78
|
+
[StripeSdkImpl.shared submitIdentifiers:identifiers resolver:resolve rejecter:reject];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
RCT_EXPORT_METHOD(presentCRSCARFDeclaration:(nonnull RCTPromiseResolveBlock)resolve
|
|
82
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
83
|
+
{
|
|
84
|
+
[StripeSdkImpl.shared presentCRSCARFDeclaration:resolve rejecter:reject];
|
|
85
|
+
}
|
|
86
|
+
|
|
68
87
|
RCT_EXPORT_METHOD(presentKycInfoVerification:(NSDictionary *)updatedAddress
|
|
69
88
|
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
70
89
|
reject:(nonnull RCTPromiseRejectBlock)reject)
|
package/ios/StripeSdk.mm
CHANGED
|
@@ -263,6 +263,124 @@ RCT_EXPORT_METHOD(handleURLCallback:(nonnull NSString *)url
|
|
|
263
263
|
[StripeSdkImpl.shared handleURLCallback:url resolver:resolve rejecter:reject];
|
|
264
264
|
}
|
|
265
265
|
|
|
266
|
+
RCT_EXPORT_METHOD(initCheckoutSession:(nonnull NSString *)clientSecret
|
|
267
|
+
configuration:(nonnull NSDictionary *)configuration
|
|
268
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
269
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
270
|
+
{
|
|
271
|
+
[StripeSdkImpl.shared initCheckoutSession:clientSecret
|
|
272
|
+
configuration:configuration
|
|
273
|
+
resolver:resolve
|
|
274
|
+
rejecter:reject];
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
RCT_EXPORT_METHOD(checkoutUpdateShippingAddress:(nonnull NSString *)sessionKey
|
|
278
|
+
address:(nonnull NSDictionary *)address
|
|
279
|
+
name:(NSString *_Nullable)name
|
|
280
|
+
phone:(NSString *_Nullable)phone
|
|
281
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
282
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
283
|
+
{
|
|
284
|
+
[StripeSdkImpl.shared checkoutUpdateShippingAddress:sessionKey
|
|
285
|
+
address:address
|
|
286
|
+
name:name
|
|
287
|
+
phone:phone
|
|
288
|
+
resolver:resolve
|
|
289
|
+
rejecter:reject];
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
RCT_EXPORT_METHOD(checkoutUpdateBillingAddress:(nonnull NSString *)sessionKey
|
|
293
|
+
address:(nonnull NSDictionary *)address
|
|
294
|
+
name:(NSString *_Nullable)name
|
|
295
|
+
phone:(NSString *_Nullable)phone
|
|
296
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
297
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
298
|
+
{
|
|
299
|
+
[StripeSdkImpl.shared checkoutUpdateBillingAddress:sessionKey
|
|
300
|
+
address:address
|
|
301
|
+
name:name
|
|
302
|
+
phone:phone
|
|
303
|
+
resolver:resolve
|
|
304
|
+
rejecter:reject];
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
RCT_EXPORT_METHOD(checkoutApplyPromotionCode:(nonnull NSString *)sessionKey
|
|
308
|
+
code:(nonnull NSString *)code
|
|
309
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
310
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
311
|
+
{
|
|
312
|
+
[StripeSdkImpl.shared checkoutApplyPromotionCode:sessionKey
|
|
313
|
+
code:code
|
|
314
|
+
resolver:resolve
|
|
315
|
+
rejecter:reject];
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
RCT_EXPORT_METHOD(checkoutRemovePromotionCode:(nonnull NSString *)sessionKey
|
|
319
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
320
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
321
|
+
{
|
|
322
|
+
[StripeSdkImpl.shared checkoutRemovePromotionCode:sessionKey
|
|
323
|
+
resolver:resolve
|
|
324
|
+
rejecter:reject];
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
RCT_EXPORT_METHOD(checkoutUpdateLineItemQuantity:(nonnull NSString *)sessionKey
|
|
328
|
+
lineItemId:(nonnull NSString *)lineItemId
|
|
329
|
+
quantity:(double)quantity
|
|
330
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
331
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
332
|
+
{
|
|
333
|
+
[StripeSdkImpl.shared checkoutUpdateLineItemQuantity:sessionKey
|
|
334
|
+
lineItemId:lineItemId
|
|
335
|
+
quantity:quantity
|
|
336
|
+
resolver:resolve
|
|
337
|
+
rejecter:reject];
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
RCT_EXPORT_METHOD(checkoutSelectShippingOption:(nonnull NSString *)sessionKey
|
|
341
|
+
id:(nonnull NSString *)identifier
|
|
342
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
343
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
344
|
+
{
|
|
345
|
+
[StripeSdkImpl.shared checkoutSelectShippingOption:sessionKey
|
|
346
|
+
id:identifier
|
|
347
|
+
resolver:resolve
|
|
348
|
+
rejecter:reject];
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
RCT_EXPORT_METHOD(checkoutUpdateTaxId:(nonnull NSString *)sessionKey
|
|
352
|
+
type:(nonnull NSString *)type
|
|
353
|
+
value:(nonnull NSString *)value
|
|
354
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
355
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
356
|
+
{
|
|
357
|
+
[StripeSdkImpl.shared checkoutUpdateTaxId:sessionKey
|
|
358
|
+
type:type
|
|
359
|
+
value:value
|
|
360
|
+
resolver:resolve
|
|
361
|
+
rejecter:reject];
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
RCT_EXPORT_METHOD(checkoutRunServerUpdateStart:(nonnull NSString *)sessionKey
|
|
365
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
366
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
367
|
+
{
|
|
368
|
+
[StripeSdkImpl.shared checkoutRunServerUpdateStart:sessionKey
|
|
369
|
+
resolver:resolve
|
|
370
|
+
rejecter:reject];
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
RCT_EXPORT_METHOD(checkoutRunServerUpdateComplete:(nonnull NSString *)sessionKey
|
|
374
|
+
error:(NSString *)error
|
|
375
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
376
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
377
|
+
{
|
|
378
|
+
[StripeSdkImpl.shared checkoutRunServerUpdateComplete:sessionKey
|
|
379
|
+
error:error
|
|
380
|
+
resolver:resolve
|
|
381
|
+
rejecter:reject];
|
|
382
|
+
}
|
|
383
|
+
|
|
266
384
|
RCT_EXPORT_METHOD(initCustomerSheet:(nonnull NSDictionary *)params
|
|
267
385
|
customerAdapterOverrides:(nonnull NSDictionary *)customerAdapterOverrides
|
|
268
386
|
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
@@ -448,6 +566,17 @@ RCT_EXPORT_METHOD(createEmbeddedPaymentElement:(nonnull NSDictionary *)intentCon
|
|
|
448
566
|
reject:reject];
|
|
449
567
|
}
|
|
450
568
|
|
|
569
|
+
RCT_EXPORT_METHOD(createEmbeddedPaymentElementWithCheckout:(nonnull NSString *)sessionKey
|
|
570
|
+
configuration:(nonnull NSDictionary *)configuration
|
|
571
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
572
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
573
|
+
{
|
|
574
|
+
[StripeSdkImpl.shared createEmbeddedPaymentElementWithCheckout:sessionKey
|
|
575
|
+
configuration:configuration
|
|
576
|
+
resolve:resolve
|
|
577
|
+
reject:reject];
|
|
578
|
+
}
|
|
579
|
+
|
|
451
580
|
RCT_EXPORT_METHOD(confirmEmbeddedPaymentElement:(NSInteger)viewTag
|
|
452
581
|
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
453
582
|
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
@@ -462,6 +591,13 @@ RCT_EXPORT_METHOD(updateEmbeddedPaymentElement:(NSDictionary *)intentConfig
|
|
|
462
591
|
[StripeSdkImpl.shared updateEmbeddedPaymentElement:intentConfig resolve:resolve reject:reject];
|
|
463
592
|
}
|
|
464
593
|
|
|
594
|
+
RCT_EXPORT_METHOD(updateEmbeddedPaymentElementWithCheckout:(nonnull NSString *)sessionKey
|
|
595
|
+
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
596
|
+
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
597
|
+
{
|
|
598
|
+
[StripeSdkImpl.shared updateEmbeddedPaymentElementWithCheckout:sessionKey resolve:resolve reject:reject];
|
|
599
|
+
}
|
|
600
|
+
|
|
465
601
|
RCT_EXPORT_METHOD(clearEmbeddedPaymentOption:(NSInteger)viewTag
|
|
466
602
|
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
|
467
603
|
reject:(nonnull RCTPromiseRejectBlock)reject)
|
|
@@ -22,6 +22,7 @@ import Foundation
|
|
|
22
22
|
func emitOnCustomPaymentMethodConfirmHandlerCallback(_ value: [String: Any])
|
|
23
23
|
func emitPaymentMethodMessagingElementDidUpdateHeight(_ value: [String: Any])
|
|
24
24
|
func emitPaymentMethodMessagingElementConfigureResult(_ value: [String: Any])
|
|
25
|
+
func emitCheckoutSessionDidChangeState(_ value: [String: Any])
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
@objc public protocol StripeOnrampSdkEmitter {
|