@stripe/stripe-react-native 0.13.1 → 0.16.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/.editorconfig +15 -0
- package/CHANGELOG.md +68 -11
- package/android/.gradle/7.1/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.1/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.1/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.idea/gradle.xml +13 -0
- package/android/.idea/misc.xml +9 -0
- package/android/.idea/modules/android.iml +18 -0
- package/android/.idea/modules.xml +8 -0
- package/android/.idea/vcs.xml +6 -0
- package/android/build.gradle +6 -0
- package/android/local.properties +8 -0
- package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormView.kt +2 -0
- package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +28 -6
- package/android/src/main/java/com/reactnativestripesdk/CardFormView.kt +34 -3
- package/android/src/main/java/com/reactnativestripesdk/CollectBankAccountLauncherFragment.kt +5 -0
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +17 -7
- package/android/src/main/java/com/reactnativestripesdk/GooglePayFragment.kt +4 -0
- package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherFragment.kt +3 -0
- package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +213 -367
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +1 -0
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetFragment.kt +48 -28
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +69 -23
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonView.kt +1 -2
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/PushProvisioningProxy.kt +19 -7
- package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/TapAndPayProxy.kt +46 -39
- package/android/src/main/java/com/reactnativestripesdk/{Errors.kt → utils/Errors.kt} +1 -1
- package/android/src/main/java/com/reactnativestripesdk/{Extensions.kt → utils/Extensions.kt} +1 -1
- package/android/src/main/java/com/reactnativestripesdk/{Mappers.kt → utils/Mappers.kt} +19 -1
- package/android/src/main/java/com/reactnativestripesdk/utils/PostalCodeUtilities.kt +18 -0
- package/android/src/main/res/{drawable-night/googlepay_button_background.xml → drawable/googlepay_button_background_dark.xml} +1 -1
- package/android/src/main/res/{drawable-night/googlepay_button_content.xml → drawable/googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-night/googlepay_button_overlay.xml → drawable/googlepay_button_overlay_dark.xml} +0 -0
- package/android/src/main/res/{drawable-night/pay_with_googlepay_button_content.xml → drawable/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-ar-night/pay_with_googlepay_button_content.xml → drawable-ar/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-bg-night/pay_with_googlepay_button_content.xml → drawable-bg/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-ca-night/pay_with_googlepay_button_content.xml → drawable-ca/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-cs-night/pay_with_googlepay_button_content.xml → drawable-cs/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-da-night/pay_with_googlepay_button_content.xml → drawable-da/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-de-night/pay_with_googlepay_button_content.xml → drawable-de/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-el-night/pay_with_googlepay_button_content.xml → drawable-el/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-es-night/pay_with_googlepay_button_content.xml → drawable-es/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-et-night/pay_with_googlepay_button_content.xml → drawable-et/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-fi-night/pay_with_googlepay_button_content.xml → drawable-fi/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-fr-night/pay_with_googlepay_button_content.xml → drawable-fr/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-night-hdpi/googlepay_button_background_image.9.png → drawable-hdpi/googlepay_button_background_image_dark.9.png} +0 -0
- package/android/src/main/res/{drawable-hr-night/pay_with_googlepay_button_content.xml → drawable-hr/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-id-night/pay_with_googlepay_button_content.xml → drawable-id/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-it-night/pay_with_googlepay_button_content.xml → drawable-it/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-ja-night/pay_with_googlepay_button_content.xml → drawable-ja/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-ko-night/pay_with_googlepay_button_content.xml → drawable-ko/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-night-mdpi/googlepay_button_background_image.9.png → drawable-mdpi/googlepay_button_background_image_dark.9.png} +0 -0
- package/android/src/main/res/{drawable-ms-night/pay_with_googlepay_button_content.xml → drawable-ms/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-nl-night/pay_with_googlepay_button_content.xml → drawable-nl/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-no-night/pay_with_googlepay_button_content.xml → drawable-no/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-pl-night/pay_with_googlepay_button_content.xml → drawable-pl/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-pt-night/pay_with_googlepay_button_content.xml → drawable-pt/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-ru-night/pay_with_googlepay_button_content.xml → drawable-ru/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-sk-night/pay_with_googlepay_button_content.xml → drawable-sk/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-sl-night/pay_with_googlepay_button_content.xml → drawable-sl/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-sr-night/pay_with_googlepay_button_content.xml → drawable-sr/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-sv-night/pay_with_googlepay_button_content.xml → drawable-sv/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-th-night/pay_with_googlepay_button_content.xml → drawable-th/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-tr-night/pay_with_googlepay_button_content.xml → drawable-tr/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-uk-night/pay_with_googlepay_button_content.xml → drawable-uk/pay_with_googlepay_button_content_dark.xml} +0 -0
- package/android/src/main/res/{drawable-night-v21/googlepay_button_background.xml → drawable-v21/googlepay_button_background_dark.xml} +1 -1
- package/android/src/main/res/{drawable-night-xhdpi/googlepay_button_background_image.9.png → drawable-xhdpi/googlepay_button_background_image_dark.9.png} +0 -0
- package/android/src/main/res/{drawable-night-xxhdpi/googlepay_button_background_image.9.png → drawable-xxhdpi/googlepay_button_background_image_dark.9.png} +0 -0
- package/android/src/main/res/{drawable-night-xxxhdpi/googlepay_button_background_image.9.png → drawable-xxxhdpi/googlepay_button_background_image_dark.9.png} +0 -0
- package/android/src/main/res/{layout-night/googlepay_button.xml → layout/googlepay_button_dark.xml} +4 -4
- package/android/src/main/res/{layout-night/pay_with_googlepay_button.xml → layout/pay_with_googlepay_button_dark.xml} +4 -4
- package/ios/ApplePayUtils.swift +159 -0
- package/ios/CardFieldView.swift +11 -8
- package/ios/CardFormView.swift +20 -0
- package/ios/Mappers.swift +8 -13
- package/ios/PaymentMethodFactory.swift +9 -0
- package/ios/StripeSdk.m +5 -0
- package/ios/StripeSdk.swift +60 -53
- package/ios/StripeSdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/StripeSdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/StripeSdk.xcodeproj/project.xcworkspace/xcuserdata/charliecruzan.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/StripeSdk.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme +52 -0
- package/ios/StripeSdk.xcodeproj/xcuserdata/charliecruzan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +22 -0
- package/ios/StripeSdk.xcodeproj/xcuserdata/charliecruzan.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
- package/ios/Tests/ApplePayUtilsTests.swift +214 -0
- package/ios/Tests/PushProvisioningTests.swift +49 -0
- package/ios/pushprovisioning/AddToWalletButtonView.swift +1 -5
- package/ios/pushprovisioning/PushProvisioningUtils.swift +64 -0
- package/lib/commonjs/NativeStripeSdk.js.map +1 -1
- package/lib/commonjs/components/AddToWalletButton.js +1 -1
- package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
- package/lib/commonjs/components/ApplePayButton.js +1 -1
- package/lib/commonjs/components/ApplePayButton.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/GooglePayButton.js +1 -1
- package/lib/commonjs/components/GooglePayButton.js.map +1 -1
- package/lib/commonjs/components/StripeContainer.js +1 -1
- package/lib/commonjs/components/StripeContainer.js.map +1 -1
- package/lib/commonjs/functions.js +1 -1
- package/lib/commonjs/functions.js.map +1 -1
- package/lib/commonjs/hooks/useStripe.js +1 -1
- package/lib/commonjs/hooks/useStripe.js.map +1 -1
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/module/NativeStripeSdk.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/ApplePayButton.js +1 -1
- package/lib/module/components/ApplePayButton.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/GooglePayButton.js +1 -1
- package/lib/module/components/GooglePayButton.js.map +1 -1
- package/lib/module/components/StripeContainer.js +1 -1
- package/lib/module/components/StripeContainer.js.map +1 -1
- package/lib/module/functions.js +1 -1
- package/lib/module/functions.js.map +1 -1
- package/lib/module/hooks/useStripe.js +1 -1
- package/lib/module/hooks/useStripe.js.map +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/typescript/src/NativeStripeSdk.d.ts +2 -1
- package/lib/typescript/src/components/AddToWalletButton.d.ts +1 -1
- package/lib/typescript/src/components/CardForm.d.ts +1 -1
- package/lib/typescript/src/components/GooglePayButton.d.ts +2 -2
- package/lib/typescript/src/functions.d.ts +2 -1
- package/lib/typescript/src/hooks/useStripe.d.ts +2 -1
- package/lib/typescript/src/types/ApplePay.d.ts +31 -5
- package/lib/typescript/src/types/PaymentMethod.d.ts +9 -1
- package/lib/typescript/src/types/PaymentSheet.d.ts +19 -16
- package/lib/typescript/src/types/index.d.ts +20 -0
- package/package.json +7 -15
- package/src/NativeStripeSdk.tsx +5 -0
- package/src/components/AddToWalletButton.tsx +1 -1
- package/src/components/CardForm.tsx +2 -2
- package/src/components/GooglePayButton.tsx +8 -2
- package/src/functions.ts +25 -0
- package/src/hooks/useStripe.tsx +13 -0
- package/src/types/ApplePay.ts +39 -6
- package/src/types/PaymentMethod.ts +11 -1
- package/src/types/PaymentSheet.ts +34 -35
- package/src/types/index.ts +27 -0
- package/stripe-react-native.podspec +6 -1
- package/android/src/main/res/drawable-night/googlepay_button_no_shadow_background.xml +0 -6
- package/android/src/main/res/drawable-night-hdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/drawable-night-mdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/drawable-night-v21/googlepay_button_no_shadow_background.xml +0 -7
- package/android/src/main/res/drawable-night-xhdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/drawable-night-xxhdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/drawable-night-xxxhdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/values-night/googlepay_strings.xml +0 -12
- package/lib/typescript/e2e/buyNowPayLater.test.d.ts +0 -1
- package/lib/typescript/e2e/helpers.d.ts +0 -5
- package/lib/typescript/e2e/payments.test.d.ts +0 -1
- package/lib/typescript/e2e/paymentsWithRedirects.test.d.ts +0 -1
- package/lib/typescript/e2e/screenObject/BasicPaymentScreen.d.ts +0 -17
- package/lib/typescript/e2e/screenObject/HomeScreen.d.ts +0 -6
- package/lib/typescript/e2e/screenObject/components/BECSForm.d.ts +0 -8
- package/lib/typescript/e2e/screenObject/components/CardField.d.ts +0 -10
- package/lib/typescript/example/server/index.d.ts +0 -1
- package/lib/typescript/example/server/utils.d.ts +0 -11
- package/lib/typescript/example/src/App.d.ts +0 -45
- package/lib/typescript/example/src/Config.d.ts +0 -2
- package/lib/typescript/example/src/colors.d.ts +0 -8
- package/lib/typescript/example/src/components/Button.d.ts +0 -11
- package/lib/typescript/example/src/components/Collapse.d.ts +0 -6
- package/lib/typescript/example/src/components/PaymentScreen.d.ts +0 -7
- package/lib/typescript/example/src/helpers.d.ts +0 -1
- package/lib/typescript/example/src/screens/ACHPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/ACHSetupScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/AfterpayClearpayPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/AlipayPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/ApplePayScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/AuBECSDebitPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/AuBECSDebitSetupPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/BancontactPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/BancontactSetupFuturePaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/CVCReCollectionScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/CreateTokenScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/EPSPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/FPXPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/GiropayPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/GooglePayScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/GrabPayPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/HomeScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/IdealPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/IdealSetupFuturePaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/KlarnaPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/MultilineWebhookPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/NoWebhookPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/OxxoPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/P24PaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/PayPalScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/PaymentResultScreen.d.ts +0 -8
- package/lib/typescript/example/src/screens/PaymentSheetAppearance.d.ts +0 -3
- package/lib/typescript/example/src/screens/PaymentsUICompleteScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/PaymentsUICustomScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/SepaPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/SepaSetupFuturePaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/SetupFuturePaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/SofortPaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/SofortSetupFuturePaymentScreen.d.ts +0 -1
- package/lib/typescript/example/src/screens/WebhookPaymentScreen.d.ts +0 -1
- package/lib/typescript/src/plugin/__tests__/withStripe-test.d.ts +0 -1
- package/src/plugin/__tests__/fixtures/sample-AndroidManifest.xml +0 -24
- package/src/plugin/__tests__/withStripe-test.ts +0 -111
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
package com.reactnativestripesdk
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
import com.reactnativestripesdk.utils.*
|
|
5
|
+
import com.reactnativestripesdk.utils.mapToBillingDetails
|
|
6
|
+
import com.reactnativestripesdk.utils.mapToUSBankAccountHolderType
|
|
7
|
+
import com.reactnativestripesdk.utils.mapToUSBankAccountType
|
|
4
8
|
import com.stripe.android.model.*
|
|
5
9
|
|
|
6
10
|
class PaymentMethodCreateParamsFactory(
|
|
7
|
-
private val clientSecret: String,
|
|
8
11
|
private val paymentMethodData: ReadableMap?,
|
|
9
12
|
private val options: ReadableMap,
|
|
10
13
|
private val cardFieldView: CardFieldView?,
|
|
@@ -13,26 +16,27 @@ class PaymentMethodCreateParamsFactory(
|
|
|
13
16
|
private val billingDetailsParams = mapToBillingDetails(getMapOrNull(paymentMethodData, "billingDetails"), cardFieldView?.cardAddress ?: cardFormView?.cardAddress)
|
|
14
17
|
|
|
15
18
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
16
|
-
fun
|
|
19
|
+
fun createPaymentMethodParams(paymentMethodType: PaymentMethod.Type): PaymentMethodCreateParams {
|
|
17
20
|
try {
|
|
18
21
|
return when (paymentMethodType) {
|
|
19
|
-
PaymentMethod.Type.Card ->
|
|
20
|
-
PaymentMethod.Type.Ideal ->
|
|
21
|
-
PaymentMethod.Type.Alipay ->
|
|
22
|
-
PaymentMethod.Type.Sofort ->
|
|
23
|
-
PaymentMethod.Type.Bancontact ->
|
|
24
|
-
PaymentMethod.Type.SepaDebit ->
|
|
25
|
-
PaymentMethod.Type.Oxxo ->
|
|
26
|
-
PaymentMethod.Type.Giropay ->
|
|
27
|
-
PaymentMethod.Type.Eps ->
|
|
28
|
-
PaymentMethod.Type.GrabPay ->
|
|
29
|
-
PaymentMethod.Type.P24 ->
|
|
30
|
-
PaymentMethod.Type.Fpx ->
|
|
31
|
-
PaymentMethod.Type.AfterpayClearpay ->
|
|
32
|
-
PaymentMethod.Type.AuBecsDebit ->
|
|
33
|
-
PaymentMethod.Type.Klarna ->
|
|
34
|
-
PaymentMethod.Type.USBankAccount ->
|
|
35
|
-
PaymentMethod.Type.PayPal ->
|
|
22
|
+
PaymentMethod.Type.Card -> createCardPaymentMethodParams()
|
|
23
|
+
PaymentMethod.Type.Ideal -> createIDEALParams()
|
|
24
|
+
PaymentMethod.Type.Alipay -> createAlipayParams()
|
|
25
|
+
PaymentMethod.Type.Sofort -> createSofortParams()
|
|
26
|
+
PaymentMethod.Type.Bancontact -> createBancontactParams()
|
|
27
|
+
PaymentMethod.Type.SepaDebit -> createSepaParams()
|
|
28
|
+
PaymentMethod.Type.Oxxo -> createOXXOParams()
|
|
29
|
+
PaymentMethod.Type.Giropay -> createGiropayParams()
|
|
30
|
+
PaymentMethod.Type.Eps -> createEPSParams()
|
|
31
|
+
PaymentMethod.Type.GrabPay -> createGrabPayParams()
|
|
32
|
+
PaymentMethod.Type.P24 -> createP24Params()
|
|
33
|
+
PaymentMethod.Type.Fpx -> createFpxParams()
|
|
34
|
+
PaymentMethod.Type.AfterpayClearpay -> createAfterpayClearpayParams()
|
|
35
|
+
PaymentMethod.Type.AuBecsDebit -> createAuBecsDebitParams()
|
|
36
|
+
PaymentMethod.Type.Klarna -> createKlarnaParams()
|
|
37
|
+
PaymentMethod.Type.USBankAccount -> createUSBankAccountParams(paymentMethodData)
|
|
38
|
+
PaymentMethod.Type.PayPal -> createPayPalParams()
|
|
39
|
+
PaymentMethod.Type.Affirm -> createAffirmParams()
|
|
36
40
|
else -> {
|
|
37
41
|
throw Exception("This paymentMethodType is not supported yet")
|
|
38
42
|
}
|
|
@@ -43,351 +47,116 @@ class PaymentMethodCreateParamsFactory(
|
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
46
|
-
fun
|
|
47
|
-
try {
|
|
48
|
-
return when (paymentMethodType) {
|
|
49
|
-
PaymentMethod.Type.Card -> createCardPaymentSetupParams()
|
|
50
|
-
PaymentMethod.Type.Ideal -> createIDEALPaymentSetupParams()
|
|
51
|
-
PaymentMethod.Type.Sofort -> createSofortPaymentSetupParams()
|
|
52
|
-
PaymentMethod.Type.Bancontact -> createBancontactPaymentSetupParams()
|
|
53
|
-
PaymentMethod.Type.SepaDebit -> createSepaPaymentSetupParams()
|
|
54
|
-
PaymentMethod.Type.AuBecsDebit -> createAuBecsDebitPaymentSetupParams()
|
|
55
|
-
PaymentMethod.Type.USBankAccount -> createUSBankAccountPaymentSetupParams()
|
|
56
|
-
PaymentMethod.Type.PayPal -> createPayPalPaymentSetupParams()
|
|
57
|
-
else -> {
|
|
58
|
-
throw Exception("This paymentMethodType is not supported yet")
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
} catch (error: PaymentMethodCreateParamsException) {
|
|
62
|
-
throw error
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
67
|
-
private fun createIDEALPaymentConfirmParams(): ConfirmPaymentIntentParams {
|
|
50
|
+
private fun createIDEALParams(): PaymentMethodCreateParams {
|
|
68
51
|
val bankName = getValOr(paymentMethodData, "bankName", null)
|
|
69
52
|
|
|
70
53
|
val idealParams = PaymentMethodCreateParams.Ideal(bankName)
|
|
71
|
-
|
|
72
|
-
PaymentMethodCreateParams.create(ideal = idealParams, billingDetails = billingDetailsParams)
|
|
73
|
-
|
|
74
|
-
return ConfirmPaymentIntentParams
|
|
75
|
-
.createWithPaymentMethodCreateParams(
|
|
76
|
-
paymentMethodCreateParams = createParams,
|
|
77
|
-
clientSecret = clientSecret,
|
|
78
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage")),
|
|
79
|
-
)
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
83
|
-
private fun createP24PaymentConfirmParams(): ConfirmPaymentIntentParams {
|
|
84
|
-
billingDetailsParams?.let {
|
|
85
|
-
val params = PaymentMethodCreateParams.createP24(it)
|
|
86
|
-
|
|
87
|
-
return ConfirmPaymentIntentParams
|
|
88
|
-
.createWithPaymentMethodCreateParams(
|
|
89
|
-
paymentMethodCreateParams = params,
|
|
90
|
-
clientSecret = clientSecret,
|
|
91
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage")),
|
|
92
|
-
)
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
99
|
-
private fun createCardPaymentConfirmParams(): ConfirmPaymentIntentParams {
|
|
100
|
-
val paymentMethodId = getValOr(paymentMethodData, "paymentMethodId", null)
|
|
101
|
-
val token = getValOr(paymentMethodData, "token", null)
|
|
102
|
-
|
|
103
|
-
val cardParams = cardFieldView?.cardParams ?: cardFormView?.cardParams
|
|
104
|
-
|
|
105
|
-
if (cardParams == null && paymentMethodId == null && token == null) {
|
|
106
|
-
throw PaymentMethodCreateParamsException("Card details not complete")
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
val setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
110
|
-
|
|
111
|
-
if (paymentMethodId != null) {
|
|
112
|
-
val cvc = getValOr(paymentMethodData, "cvc", null)
|
|
113
|
-
val paymentMethodOptionParams =
|
|
114
|
-
if (cvc != null) PaymentMethodOptionsParams.Card(cvc) else null
|
|
115
|
-
|
|
116
|
-
return ConfirmPaymentIntentParams.createWithPaymentMethodId(
|
|
117
|
-
paymentMethodId = paymentMethodId,
|
|
118
|
-
paymentMethodOptions = paymentMethodOptionParams,
|
|
119
|
-
clientSecret = clientSecret,
|
|
120
|
-
setupFutureUsage = setupFutureUsage,
|
|
121
|
-
)
|
|
122
|
-
} else {
|
|
123
|
-
var card = cardParams
|
|
124
|
-
if (token != null) {
|
|
125
|
-
card = PaymentMethodCreateParams.Card.create(token)
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
val paymentMethodCreateParams = PaymentMethodCreateParams.create(card!!, billingDetailsParams)
|
|
129
|
-
return ConfirmPaymentIntentParams
|
|
130
|
-
.createWithPaymentMethodCreateParams(
|
|
131
|
-
paymentMethodCreateParams = paymentMethodCreateParams,
|
|
132
|
-
clientSecret = clientSecret,
|
|
133
|
-
setupFutureUsage = setupFutureUsage,
|
|
134
|
-
)
|
|
135
|
-
}
|
|
54
|
+
return PaymentMethodCreateParams.create(ideal = idealParams, billingDetails = billingDetailsParams)
|
|
136
55
|
}
|
|
137
56
|
|
|
138
57
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
139
|
-
private fun
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
val idealParams = PaymentMethodCreateParams.Ideal(bankName)
|
|
143
|
-
val createParams =
|
|
144
|
-
PaymentMethodCreateParams.create(ideal = idealParams, billingDetails = billingDetailsParams)
|
|
145
|
-
|
|
146
|
-
return ConfirmSetupIntentParams.create(
|
|
147
|
-
paymentMethodCreateParams = createParams,
|
|
148
|
-
clientSecret = clientSecret,
|
|
149
|
-
)
|
|
58
|
+
private fun createAlipayParams(): PaymentMethodCreateParams {
|
|
59
|
+
return PaymentMethodCreateParams.createAlipay()
|
|
150
60
|
}
|
|
151
61
|
|
|
152
62
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
153
|
-
private fun
|
|
154
|
-
billingDetailsParams?.let {
|
|
155
|
-
val iban = getValOr(paymentMethodData, "iban", null) ?: run {
|
|
156
|
-
throw PaymentMethodCreateParamsException("You must provide IBAN")
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
val sepaParams = PaymentMethodCreateParams.SepaDebit(iban)
|
|
160
|
-
val createParams =
|
|
161
|
-
PaymentMethodCreateParams.create(
|
|
162
|
-
sepaDebit = sepaParams,
|
|
163
|
-
billingDetails = it
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
return ConfirmSetupIntentParams.create(
|
|
167
|
-
paymentMethodCreateParams = createParams,
|
|
168
|
-
clientSecret = clientSecret
|
|
169
|
-
)
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
176
|
-
private fun createCardPaymentSetupParams(): ConfirmSetupIntentParams {
|
|
177
|
-
val paymentMethodId = getValOr(paymentMethodData, "paymentMethodId", null)
|
|
178
|
-
val token = getValOr(paymentMethodData, "token", null)
|
|
179
|
-
val cardParams = cardFieldView?.cardParams ?: cardFormView?.cardParams
|
|
180
|
-
|
|
181
|
-
if (paymentMethodId != null) {
|
|
182
|
-
return ConfirmSetupIntentParams.create(
|
|
183
|
-
paymentMethodId,
|
|
184
|
-
clientSecret
|
|
185
|
-
)
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
val paymentMethodCreateParams =
|
|
189
|
-
if (token != null)
|
|
190
|
-
PaymentMethodCreateParams.create(PaymentMethodCreateParams.Card.create(token), billingDetailsParams)
|
|
191
|
-
else if (cardParams != null)
|
|
192
|
-
PaymentMethodCreateParams.create(cardParams, billingDetailsParams)
|
|
193
|
-
else
|
|
194
|
-
null
|
|
195
|
-
|
|
196
|
-
if (paymentMethodCreateParams != null) {
|
|
197
|
-
return ConfirmSetupIntentParams
|
|
198
|
-
.create(paymentMethodCreateParams, clientSecret)
|
|
199
|
-
} else {
|
|
200
|
-
throw PaymentMethodCreateParamsException("Card details not complete")
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
205
|
-
private fun createAlipayPaymentConfirmParams(): ConfirmPaymentIntentParams {
|
|
206
|
-
return ConfirmPaymentIntentParams.createAlipay(clientSecret)
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
210
|
-
private fun createSofortPaymentConfirmParams(): ConfirmPaymentIntentParams {
|
|
63
|
+
private fun createSofortParams(): PaymentMethodCreateParams {
|
|
211
64
|
val country = getValOr(paymentMethodData, "country", null) ?: run {
|
|
212
65
|
throw PaymentMethodCreateParamsException("You must provide bank account country")
|
|
213
66
|
}
|
|
214
67
|
|
|
215
|
-
|
|
68
|
+
return PaymentMethodCreateParams.create(
|
|
216
69
|
PaymentMethodCreateParams.Sofort(country = country),
|
|
217
70
|
billingDetailsParams
|
|
218
71
|
)
|
|
219
|
-
|
|
220
|
-
return ConfirmPaymentIntentParams
|
|
221
|
-
.createWithPaymentMethodCreateParams(
|
|
222
|
-
paymentMethodCreateParams = params,
|
|
223
|
-
clientSecret = clientSecret,
|
|
224
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage")),
|
|
225
|
-
)
|
|
226
72
|
}
|
|
227
73
|
|
|
228
74
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
229
|
-
private fun
|
|
230
|
-
val country = getValOr(paymentMethodData, "country", null)
|
|
231
|
-
?: throw PaymentMethodCreateParamsException("You must provide country")
|
|
232
|
-
|
|
233
|
-
val params = PaymentMethodCreateParams.create(
|
|
234
|
-
PaymentMethodCreateParams.Sofort(country = country),
|
|
235
|
-
billingDetailsParams
|
|
236
|
-
)
|
|
237
|
-
|
|
238
|
-
return ConfirmSetupIntentParams.create(
|
|
239
|
-
paymentMethodCreateParams = params,
|
|
240
|
-
clientSecret = clientSecret,
|
|
241
|
-
)
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
245
|
-
private fun createGrabPayPaymentConfirmParams(): ConfirmPaymentIntentParams {
|
|
246
|
-
val billingDetails = billingDetailsParams ?: PaymentMethod.BillingDetails()
|
|
247
|
-
val params = PaymentMethodCreateParams.createGrabPay(billingDetails)
|
|
248
|
-
|
|
249
|
-
return ConfirmPaymentIntentParams
|
|
250
|
-
.createWithPaymentMethodCreateParams(
|
|
251
|
-
paymentMethodCreateParams = params,
|
|
252
|
-
clientSecret = clientSecret,
|
|
253
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage")),
|
|
254
|
-
)
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
@Throws(PaymentMethodCreateParamsException::class)
|
|
258
|
-
private fun createBancontactPaymentConfirmParams(): ConfirmPaymentIntentParams {
|
|
75
|
+
private fun createBancontactParams(): PaymentMethodCreateParams {
|
|
259
76
|
billingDetailsParams?.let {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return ConfirmPaymentIntentParams
|
|
263
|
-
.createWithPaymentMethodCreateParams(
|
|
264
|
-
paymentMethodCreateParams = params,
|
|
265
|
-
clientSecret = clientSecret,
|
|
266
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage")),
|
|
267
|
-
)
|
|
77
|
+
return PaymentMethodCreateParams.createBancontact(it)
|
|
268
78
|
}
|
|
269
79
|
|
|
270
80
|
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
271
81
|
}
|
|
272
82
|
|
|
273
|
-
|
|
83
|
+
@Throws(PaymentMethodCreateParamsException::class)
|
|
84
|
+
private fun createSepaParams(): PaymentMethodCreateParams {
|
|
274
85
|
billingDetailsParams?.let {
|
|
275
|
-
val
|
|
86
|
+
val iban = getValOr(paymentMethodData, "iban", null) ?: run {
|
|
87
|
+
throw PaymentMethodCreateParamsException("You must provide IBAN")
|
|
88
|
+
}
|
|
276
89
|
|
|
277
|
-
return
|
|
278
|
-
.
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
)
|
|
90
|
+
return PaymentMethodCreateParams.create(
|
|
91
|
+
sepaDebit = PaymentMethodCreateParams.SepaDebit(iban),
|
|
92
|
+
billingDetails = it
|
|
93
|
+
)
|
|
282
94
|
}
|
|
283
95
|
|
|
284
96
|
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
285
97
|
}
|
|
286
98
|
|
|
287
99
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
288
|
-
private fun
|
|
100
|
+
private fun createOXXOParams(): PaymentMethodCreateParams {
|
|
289
101
|
billingDetailsParams?.let {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
return ConfirmPaymentIntentParams
|
|
293
|
-
.createWithPaymentMethodCreateParams(
|
|
294
|
-
paymentMethodCreateParams = params,
|
|
295
|
-
clientSecret = clientSecret,
|
|
296
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
297
|
-
)
|
|
102
|
+
return PaymentMethodCreateParams.createOxxo(it)
|
|
298
103
|
}
|
|
299
104
|
|
|
300
105
|
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
301
106
|
}
|
|
302
107
|
|
|
303
108
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
304
|
-
private fun
|
|
109
|
+
private fun createGiropayParams(): PaymentMethodCreateParams {
|
|
305
110
|
billingDetailsParams?.let {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
return ConfirmPaymentIntentParams
|
|
309
|
-
.createWithPaymentMethodCreateParams(
|
|
310
|
-
paymentMethodCreateParams = params,
|
|
311
|
-
clientSecret = clientSecret,
|
|
312
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
313
|
-
)
|
|
111
|
+
return PaymentMethodCreateParams.createGiropay(it)
|
|
314
112
|
}
|
|
315
113
|
|
|
316
114
|
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
317
115
|
}
|
|
318
116
|
|
|
319
117
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
320
|
-
private fun
|
|
118
|
+
private fun createEPSParams(): PaymentMethodCreateParams {
|
|
321
119
|
billingDetailsParams?.let {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
return ConfirmPaymentIntentParams
|
|
325
|
-
.createWithPaymentMethodCreateParams(
|
|
326
|
-
paymentMethodCreateParams = params,
|
|
327
|
-
clientSecret = clientSecret,
|
|
328
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
329
|
-
)
|
|
120
|
+
return PaymentMethodCreateParams.createEps(it)
|
|
330
121
|
}
|
|
331
122
|
|
|
332
123
|
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
333
124
|
}
|
|
334
125
|
|
|
335
126
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
336
|
-
private fun
|
|
337
|
-
billingDetailsParams
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
val params = PaymentMethodCreateParams.create(
|
|
343
|
-
sepaDebit = PaymentMethodCreateParams.SepaDebit(iban),
|
|
344
|
-
billingDetails = it
|
|
345
|
-
)
|
|
127
|
+
private fun createGrabPayParams(): PaymentMethodCreateParams {
|
|
128
|
+
val billingDetails = billingDetailsParams ?: PaymentMethod.BillingDetails()
|
|
129
|
+
return PaymentMethodCreateParams.createGrabPay(billingDetails)
|
|
130
|
+
}
|
|
346
131
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
352
|
-
)
|
|
132
|
+
@Throws(PaymentMethodCreateParamsException::class)
|
|
133
|
+
private fun createP24Params(): PaymentMethodCreateParams {
|
|
134
|
+
billingDetailsParams?.let {
|
|
135
|
+
return PaymentMethodCreateParams.createP24(it)
|
|
353
136
|
}
|
|
354
137
|
|
|
355
138
|
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
356
139
|
}
|
|
357
140
|
|
|
358
141
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
359
|
-
private fun
|
|
142
|
+
private fun createFpxParams(): PaymentMethodCreateParams {
|
|
360
143
|
val bank = getBooleanOrFalse(paymentMethodData, "testOfflineBank").let { "test_offline_bank" }
|
|
361
|
-
|
|
144
|
+
return PaymentMethodCreateParams.create(
|
|
362
145
|
PaymentMethodCreateParams.Fpx(bank)
|
|
363
146
|
)
|
|
364
|
-
|
|
365
|
-
return ConfirmPaymentIntentParams
|
|
366
|
-
.createWithPaymentMethodCreateParams(
|
|
367
|
-
paymentMethodCreateParams = params,
|
|
368
|
-
clientSecret = clientSecret,
|
|
369
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
370
|
-
)
|
|
371
147
|
}
|
|
372
148
|
|
|
373
149
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
374
|
-
private fun
|
|
150
|
+
private fun createAfterpayClearpayParams(): PaymentMethodCreateParams {
|
|
375
151
|
billingDetailsParams?.let {
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
return ConfirmPaymentIntentParams
|
|
379
|
-
.createWithPaymentMethodCreateParams(
|
|
380
|
-
paymentMethodCreateParams = params,
|
|
381
|
-
clientSecret = clientSecret,
|
|
382
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
383
|
-
)
|
|
152
|
+
return PaymentMethodCreateParams.createAfterpayClearpay(it)
|
|
384
153
|
}
|
|
385
154
|
|
|
386
155
|
throw PaymentMethodCreateParamsException("You must provide billing details")
|
|
387
156
|
}
|
|
388
157
|
|
|
389
158
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
390
|
-
private fun
|
|
159
|
+
private fun createAuBecsDebitParams(): PaymentMethodCreateParams {
|
|
391
160
|
val formDetails = getMapOrNull(paymentMethodData, "formDetails") ?: run {
|
|
392
161
|
throw PaymentMethodCreateParamsException("You must provide form details")
|
|
393
162
|
}
|
|
@@ -402,129 +171,206 @@ class PaymentMethodCreateParamsFactory(
|
|
|
402
171
|
.setEmail(email)
|
|
403
172
|
.build()
|
|
404
173
|
|
|
405
|
-
|
|
174
|
+
return PaymentMethodCreateParams.create(
|
|
406
175
|
auBecsDebit = PaymentMethodCreateParams.AuBecsDebit(
|
|
407
176
|
bsbNumber = bsbNumber,
|
|
408
177
|
accountNumber = accountNumber
|
|
409
178
|
),
|
|
410
179
|
billingDetails = billingDetails
|
|
411
180
|
)
|
|
412
|
-
|
|
413
|
-
return ConfirmPaymentIntentParams
|
|
414
|
-
.createWithPaymentMethodCreateParams(
|
|
415
|
-
paymentMethodCreateParams = params,
|
|
416
|
-
clientSecret = clientSecret,
|
|
417
|
-
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
418
|
-
)
|
|
419
181
|
}
|
|
420
182
|
|
|
421
183
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
422
|
-
private fun
|
|
423
|
-
|
|
424
|
-
|
|
184
|
+
private fun createKlarnaParams(): PaymentMethodCreateParams {
|
|
185
|
+
if (billingDetailsParams == null ||
|
|
186
|
+
billingDetailsParams.address?.country.isNullOrBlank() ||
|
|
187
|
+
billingDetailsParams.email.isNullOrBlank()
|
|
188
|
+
) {
|
|
189
|
+
throw PaymentMethodCreateParamsException("Klarna requires that you provide the following billing details: email, country")
|
|
425
190
|
}
|
|
426
191
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
val name = getValOr(formDetails, "name") as String
|
|
430
|
-
val email = getValOr(formDetails, "email") as String
|
|
431
|
-
|
|
432
|
-
val billingDetails = PaymentMethod.BillingDetails.Builder()
|
|
433
|
-
.setName(name)
|
|
434
|
-
.setEmail(email)
|
|
435
|
-
.build()
|
|
192
|
+
return PaymentMethodCreateParams.createKlarna(billingDetailsParams)
|
|
193
|
+
}
|
|
436
194
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
),
|
|
442
|
-
billingDetails = billingDetails
|
|
443
|
-
)
|
|
195
|
+
@Throws(PaymentMethodCreateParamsException::class)
|
|
196
|
+
private fun createPayPalParams(): PaymentMethodCreateParams {
|
|
197
|
+
return PaymentMethodCreateParams.createPayPal(null)
|
|
198
|
+
}
|
|
444
199
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
clientSecret = clientSecret,
|
|
449
|
-
)
|
|
200
|
+
@Throws(PaymentMethodCreateParamsException::class)
|
|
201
|
+
private fun createAffirmParams(): PaymentMethodCreateParams {
|
|
202
|
+
return PaymentMethodCreateParams.createAffirm(billingDetailsParams)
|
|
450
203
|
}
|
|
451
204
|
|
|
452
205
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
206
|
+
fun createParams(clientSecret: String, paymentMethodType: PaymentMethod.Type, isPaymentIntent: Boolean): ConfirmStripeIntentParams {
|
|
207
|
+
try {
|
|
208
|
+
return when (paymentMethodType) {
|
|
209
|
+
PaymentMethod.Type.Card -> createCardStripeIntentParams(clientSecret, isPaymentIntent)
|
|
210
|
+
PaymentMethod.Type.USBankAccount -> createUSBankAccountStripeIntentParams(clientSecret, isPaymentIntent)
|
|
211
|
+
PaymentMethod.Type.PayPal -> createPayPalStripeIntentParams(clientSecret, isPaymentIntent)
|
|
212
|
+
PaymentMethod.Type.Affirm -> createAffirmStripeIntentParams(clientSecret, isPaymentIntent)
|
|
213
|
+
|
|
214
|
+
PaymentMethod.Type.Ideal,
|
|
215
|
+
PaymentMethod.Type.Alipay,
|
|
216
|
+
PaymentMethod.Type.Sofort,
|
|
217
|
+
PaymentMethod.Type.Bancontact,
|
|
218
|
+
PaymentMethod.Type.SepaDebit,
|
|
219
|
+
PaymentMethod.Type.Oxxo,
|
|
220
|
+
PaymentMethod.Type.Giropay,
|
|
221
|
+
PaymentMethod.Type.Eps,
|
|
222
|
+
PaymentMethod.Type.GrabPay,
|
|
223
|
+
PaymentMethod.Type.P24,
|
|
224
|
+
PaymentMethod.Type.Fpx,
|
|
225
|
+
PaymentMethod.Type.AfterpayClearpay,
|
|
226
|
+
PaymentMethod.Type.AuBecsDebit,
|
|
227
|
+
PaymentMethod.Type.Klarna -> {
|
|
228
|
+
val params = createPaymentMethodParams(paymentMethodType)
|
|
229
|
+
|
|
230
|
+
return if (isPaymentIntent) {
|
|
231
|
+
ConfirmPaymentIntentParams
|
|
232
|
+
.createWithPaymentMethodCreateParams(
|
|
233
|
+
paymentMethodCreateParams = params,
|
|
234
|
+
clientSecret = clientSecret,
|
|
235
|
+
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage")),
|
|
236
|
+
)
|
|
237
|
+
} else {
|
|
238
|
+
ConfirmSetupIntentParams.create(
|
|
239
|
+
paymentMethodCreateParams = params,
|
|
240
|
+
clientSecret = clientSecret,
|
|
241
|
+
)
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else -> {
|
|
245
|
+
throw Exception("This paymentMethodType is not supported yet")
|
|
246
|
+
}
|
|
458
247
|
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
clientSecret = clientSecret,
|
|
462
|
-
)
|
|
463
|
-
} ?: run {
|
|
464
|
-
// Payment method is assumed to be already attached through via collectBankAccount
|
|
465
|
-
return ConfirmSetupIntentParams.create(
|
|
466
|
-
clientSecret = clientSecret,
|
|
467
|
-
paymentMethodType = PaymentMethod.Type.USBankAccount
|
|
468
|
-
)
|
|
248
|
+
} catch (error: PaymentMethodCreateParamsException) {
|
|
249
|
+
throw error
|
|
469
250
|
}
|
|
470
251
|
}
|
|
471
252
|
|
|
472
253
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
473
|
-
private fun
|
|
474
|
-
|
|
254
|
+
private fun createCardPaymentMethodParams(): PaymentMethodCreateParams {
|
|
255
|
+
val token = getValOr(paymentMethodData, "token", null)
|
|
256
|
+
var cardParams = cardFieldView?.cardParams ?: cardFormView?.cardParams
|
|
257
|
+
|
|
258
|
+
if (token != null) {
|
|
259
|
+
cardParams = PaymentMethodCreateParams.Card.create(token)
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (cardParams == null) {
|
|
263
|
+
throw PaymentMethodCreateParamsException("Card details not complete")
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return PaymentMethodCreateParams.create(cardParams, billingDetailsParams)
|
|
475
267
|
}
|
|
476
268
|
|
|
477
269
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
478
|
-
private fun
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
billingDetailsParams.email.isNullOrBlank()
|
|
482
|
-
) {
|
|
483
|
-
throw PaymentMethodCreateParamsException("Klarna requires that you provide the following billing details: email, country")
|
|
484
|
-
}
|
|
270
|
+
private fun createCardStripeIntentParams(clientSecret: String, isPaymentIntent: Boolean): ConfirmStripeIntentParams {
|
|
271
|
+
val paymentMethodId = getValOr(paymentMethodData, "paymentMethodId", null)
|
|
272
|
+
val setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
485
273
|
|
|
486
|
-
|
|
274
|
+
if (paymentMethodId != null) {
|
|
275
|
+
val cvc = getValOr(paymentMethodData, "cvc", null)
|
|
276
|
+
val paymentMethodOptionParams =
|
|
277
|
+
if (cvc != null) PaymentMethodOptionsParams.Card(cvc) else null
|
|
487
278
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
279
|
+
return (
|
|
280
|
+
if (isPaymentIntent)
|
|
281
|
+
ConfirmPaymentIntentParams.createWithPaymentMethodId(
|
|
282
|
+
paymentMethodId,
|
|
283
|
+
paymentMethodOptions = paymentMethodOptionParams,
|
|
284
|
+
clientSecret = clientSecret,
|
|
285
|
+
setupFutureUsage = setupFutureUsage)
|
|
286
|
+
else
|
|
287
|
+
ConfirmSetupIntentParams.create(
|
|
288
|
+
paymentMethodId,
|
|
289
|
+
clientSecret)
|
|
290
|
+
)
|
|
291
|
+
} else {
|
|
292
|
+
val paymentMethodCreateParams = createCardPaymentMethodParams()
|
|
293
|
+
return (
|
|
294
|
+
if (isPaymentIntent)
|
|
295
|
+
ConfirmPaymentIntentParams
|
|
296
|
+
.createWithPaymentMethodCreateParams(
|
|
297
|
+
paymentMethodCreateParams,
|
|
298
|
+
clientSecret,
|
|
299
|
+
setupFutureUsage = setupFutureUsage)
|
|
300
|
+
else
|
|
301
|
+
ConfirmSetupIntentParams
|
|
302
|
+
.create(paymentMethodCreateParams, clientSecret)
|
|
303
|
+
)
|
|
304
|
+
}
|
|
494
305
|
}
|
|
495
306
|
|
|
496
307
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
497
|
-
private fun
|
|
308
|
+
private fun createUSBankAccountStripeIntentParams(clientSecret: String, isPaymentIntent: Boolean): ConfirmStripeIntentParams {
|
|
498
309
|
// If payment method data is supplied, assume they are passing in the bank details manually
|
|
499
310
|
paymentMethodData?.let {
|
|
500
311
|
if (billingDetailsParams?.name.isNullOrBlank()) {
|
|
501
312
|
throw PaymentMethodCreateParamsException("When creating a US bank account payment method, you must provide the following billing details: name")
|
|
502
313
|
}
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
314
|
+
return if (isPaymentIntent) {
|
|
315
|
+
ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams(
|
|
316
|
+
paymentMethodCreateParams = createUSBankAccountParams(paymentMethodData),
|
|
317
|
+
clientSecret,
|
|
318
|
+
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage"))
|
|
319
|
+
)
|
|
320
|
+
} else {
|
|
321
|
+
ConfirmSetupIntentParams.create(
|
|
322
|
+
paymentMethodCreateParams = createUSBankAccountParams(paymentMethodData),
|
|
323
|
+
clientSecret = clientSecret,
|
|
324
|
+
)
|
|
325
|
+
}
|
|
509
326
|
} ?: run {
|
|
510
327
|
// Payment method is assumed to be already attached through via collectBankAccount
|
|
511
|
-
return
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
328
|
+
return if (isPaymentIntent) {
|
|
329
|
+
ConfirmPaymentIntentParams.create(
|
|
330
|
+
clientSecret = clientSecret,
|
|
331
|
+
paymentMethodType = PaymentMethod.Type.USBankAccount
|
|
332
|
+
)
|
|
333
|
+
} else {
|
|
334
|
+
ConfirmSetupIntentParams.create(
|
|
335
|
+
clientSecret = clientSecret,
|
|
336
|
+
paymentMethodType = PaymentMethod.Type.USBankAccount
|
|
337
|
+
)
|
|
338
|
+
}
|
|
515
339
|
}
|
|
516
340
|
}
|
|
517
341
|
|
|
518
342
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
519
|
-
private fun
|
|
343
|
+
private fun createPayPalStripeIntentParams(clientSecret: String, isPaymentIntent: Boolean): ConfirmStripeIntentParams {
|
|
344
|
+
if (!isPaymentIntent) {
|
|
345
|
+
throw PaymentMethodCreateParamsException("PayPal is not yet supported through SetupIntents.")
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
val params = createPayPalParams()
|
|
349
|
+
|
|
520
350
|
return ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams(
|
|
521
|
-
paymentMethodCreateParams =
|
|
351
|
+
paymentMethodCreateParams = params,
|
|
522
352
|
clientSecret = clientSecret,
|
|
523
353
|
)
|
|
524
354
|
}
|
|
525
355
|
|
|
526
356
|
@Throws(PaymentMethodCreateParamsException::class)
|
|
527
|
-
private fun
|
|
357
|
+
private fun createAffirmStripeIntentParams(clientSecret: String, isPaymentIntent: Boolean): ConfirmStripeIntentParams {
|
|
358
|
+
if (!isPaymentIntent) {
|
|
359
|
+
throw PaymentMethodCreateParamsException("Affirm is not yet supported through SetupIntents.")
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
val params = createAffirmParams()
|
|
363
|
+
|
|
364
|
+
return ConfirmPaymentIntentParams
|
|
365
|
+
.createWithPaymentMethodCreateParams(
|
|
366
|
+
paymentMethodCreateParams = params,
|
|
367
|
+
clientSecret = clientSecret,
|
|
368
|
+
setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(options, "setupFutureUsage")),
|
|
369
|
+
)
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
@Throws(PaymentMethodCreateParamsException::class)
|
|
373
|
+
private fun createUSBankAccountParams(params: ReadableMap?): PaymentMethodCreateParams {
|
|
528
374
|
val accountNumber = getValOr(params, "accountNumber", null)
|
|
529
375
|
val routingNumber = getValOr(params, "routingNumber", null)
|
|
530
376
|
|