@stripe/stripe-react-native 0.20.0 → 0.22.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/CHANGELOG.md +31 -1
- package/android/build.gradle +1 -0
- package/android/gradle.properties +1 -1
- package/android/proguard-rules.txt +7 -0
- package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +4 -0
- package/android/src/main/java/com/reactnativestripesdk/CollectBankAccountLauncherFragment.kt +1 -1
- package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetFragment.kt +4 -1
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +5 -0
- package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +46 -8
- package/android/src/main/java/com/reactnativestripesdk/GooglePayFragment.kt +1 -1
- package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherFragment.kt +132 -0
- package/android/src/main/java/com/reactnativestripesdk/GooglePayRequestHelper.kt +144 -0
- package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherFragment.kt +1 -1
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +10 -9
- package/android/src/main/java/com/reactnativestripesdk/PaymentSheetFragment.kt +8 -3
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +142 -21
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +3 -1
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherFragment.kt +111 -0
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetEvent.kt +28 -0
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +178 -0
- package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetViewManager.kt +67 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +5 -0
- package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +1 -1
- package/android/src/main/res/drawable/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable/googlepay_button_background_shape.xml +11 -0
- package/android/src/main/res/drawable/googlepay_mark_background.xml +12 -0
- package/android/src/main/res/drawable/googlepay_mark_content.xml +27 -0
- package/android/src/main/res/drawable/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ar/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ar/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ar/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ar/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ar/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ar/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable-ar/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-bg/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-bg/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-bg/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-bg/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-bg/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-bg/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-bg/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ca/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ca/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ca/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ca/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ca/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ca/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable-ca/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-cs/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-cs/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-cs/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-cs/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-cs/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-cs/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable-cs/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-da/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-da/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-da/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-da/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-da/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-da/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable-da/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-de/book_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-de/buy_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-de/checkout_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-de/donate_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-de/order_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-de/pay_with_googlepay_button_content.xml +7 -7
- package/android/src/main/res/drawable-de/subscribe_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-el/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-el/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-el/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-el/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-el/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-el/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-el/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-et/book_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-et/buy_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-et/checkout_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-et/donate_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-et/order_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-et/pay_with_googlepay_button_content.xml +8 -8
- package/android/src/main/res/drawable-et/subscribe_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-fi/book_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-fi/buy_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-fi/checkout_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-fi/donate_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-fi/order_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-fi/pay_with_googlepay_button_content.xml +8 -8
- package/android/src/main/res/drawable-fi/subscribe_with_googlepay_button_content.xml +15 -0
- package/android/src/main/res/drawable-fr/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-fr/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-fr/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-fr/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-fr/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-fr/pay_with_googlepay_button_content.xml +5 -5
- package/android/src/main/res/drawable-fr/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-hr/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-hr/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-hr/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-hr/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-hr/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-hr/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-hr/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-id/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-id/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-id/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-id/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-id/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-id/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-id/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-it/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-it/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-it/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-it/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-it/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-it/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable-it/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ja/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ja/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ja/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ja/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ja/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ja/pay_with_googlepay_button_content.xml +5 -5
- package/android/src/main/res/drawable-ja/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ko/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ko/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ko/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ko/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ko/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ko/pay_with_googlepay_button_content.xml +7 -7
- package/android/src/main/res/drawable-ko/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ms/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ms/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ms/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ms/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ms/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ms/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-ms/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-nl/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-nl/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-nl/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-nl/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-nl/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-nl/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-nl/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-no/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-no/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-no/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-no/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-no/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-no/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable-no/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-pl/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-pl/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-pl/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-pl/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-pl/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-pl/pay_with_googlepay_button_content.xml +7 -7
- package/android/src/main/res/drawable-pl/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ru/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ru/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ru/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ru/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ru/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-ru/pay_with_googlepay_button_content.xml +7 -7
- package/android/src/main/res/drawable-ru/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sk/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sk/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sk/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sk/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sk/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sk/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-sk/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sl/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sl/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sl/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sl/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sl/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sl/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-sl/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sr/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sr/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sr/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sr/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sr/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sr/pay_with_googlepay_button_content.xml +7 -7
- package/android/src/main/res/drawable-sr/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sv/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sv/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sv/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sv/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sv/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-sv/pay_with_googlepay_button_content.xml +4 -4
- package/android/src/main/res/drawable-sv/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-th/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-th/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-th/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-th/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-th/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-th/pay_with_googlepay_button_content.xml +6 -6
- package/android/src/main/res/drawable-th/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-tr/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-tr/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-tr/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-tr/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-tr/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-tr/pay_with_googlepay_button_content.xml +7 -7
- package/android/src/main/res/drawable-tr/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-uk/book_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-uk/buy_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-uk/checkout_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-uk/donate_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-uk/order_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/drawable-uk/pay_with_googlepay_button_content.xml +5 -5
- package/android/src/main/res/drawable-uk/subscribe_with_googlepay_button_content.xml +14 -0
- package/android/src/main/res/layout/book_with_googlepay_button.xml +20 -0
- package/android/src/main/res/layout/buy_with_googlepay_button.xml +20 -0
- package/android/src/main/res/layout/checkout_with_googlepay_button.xml +20 -0
- package/android/src/main/res/layout/donate_with_googlepay_button.xml +20 -0
- package/android/src/main/res/layout/googlepay_mark_button.xml +18 -0
- package/android/src/main/res/layout/order_with_googlepay_button.xml +20 -0
- package/android/src/main/res/layout/pay_with_googlepay_button.xml +10 -24
- package/android/src/main/res/layout/plain_googlepay_button.xml +17 -0
- package/android/src/main/res/layout/subscribe_with_googlepay_button.xml +20 -0
- package/android/src/main/res/values/googlepay_strings.xml +3 -2
- package/ios/AddressSheet/AddressSheetUtils.swift +98 -0
- package/ios/AddressSheet/AddressSheetView.swift +131 -0
- package/ios/AddressSheet/AddressSheetViewManager.m +25 -0
- package/ios/AddressSheet/AddressSheetViewManager.swift +19 -0
- package/ios/ApplePayButtonManager.m +5 -0
- package/ios/ApplePayButtonManager.swift +3 -1
- package/ios/ApplePayButtonView.swift +21 -0
- package/ios/ApplePayUtils.swift +187 -0
- package/ios/ApplePayViewController.swift +279 -0
- package/ios/PaymentPassFinder.swift +61 -0
- package/ios/PaymentSheetAppearance.swift +24 -23
- package/ios/{pushprovisioning → PushProvisioning}/AddToWalletButtonManager.m +0 -0
- package/ios/{pushprovisioning → PushProvisioning}/AddToWalletButtonManager.swift +0 -0
- package/ios/{pushprovisioning → PushProvisioning}/AddToWalletButtonView.swift +10 -10
- package/ios/PushProvisioning/PushProvisioningUtils.swift +87 -0
- package/ios/StripeSdk.m +29 -0
- package/ios/StripeSdk.swift +200 -130
- package/ios/Tests/AddressSheetUtilsTests.swift +273 -0
- package/ios/Tests/PushProvisioningTests.swift +14 -11
- package/jest/mock.js +44 -0
- package/lib/commonjs/NativeStripeSdk.js.map +1 -1
- package/lib/commonjs/components/AddressSheet.js +2 -0
- package/lib/commonjs/components/AddressSheet.js.map +1 -0
- package/lib/commonjs/components/PlatformPayButton.js +2 -0
- package/lib/commonjs/components/PlatformPayButton.js.map +1 -0
- package/lib/commonjs/functions.js +1 -1
- package/lib/commonjs/functions.js.map +1 -1
- package/lib/commonjs/hooks/usePlatformPay.js +2 -0
- package/lib/commonjs/hooks/usePlatformPay.js.map +1 -0
- package/lib/commonjs/hooks/useStripe.js +1 -1
- package/lib/commonjs/hooks/useStripe.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types/Errors.js +1 -1
- package/lib/commonjs/types/Errors.js.map +1 -1
- package/lib/commonjs/types/PlatformPay.js +2 -0
- package/lib/commonjs/types/PlatformPay.js.map +1 -0
- package/lib/commonjs/types/PushProvisioning.js +2 -0
- package/lib/commonjs/types/PushProvisioning.js.map +1 -0
- package/lib/commonjs/types/index.js +1 -1
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/module/NativeStripeSdk.js.map +1 -1
- package/lib/module/components/AddressSheet.js +2 -0
- package/lib/module/components/AddressSheet.js.map +1 -0
- package/lib/module/components/PlatformPayButton.js +2 -0
- package/lib/module/components/PlatformPayButton.js.map +1 -0
- package/lib/module/functions.js +1 -1
- package/lib/module/functions.js.map +1 -1
- package/lib/module/hooks/usePlatformPay.js +2 -0
- package/lib/module/hooks/usePlatformPay.js.map +1 -0
- package/lib/module/hooks/useStripe.js +1 -1
- package/lib/module/hooks/useStripe.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/Errors.js +1 -1
- package/lib/module/types/Errors.js.map +1 -1
- package/lib/module/types/PlatformPay.js +2 -0
- package/lib/module/types/PlatformPay.js.map +1 -0
- package/lib/module/types/PushProvisioning.js +2 -0
- package/lib/module/types/PushProvisioning.js.map +1 -0
- package/lib/module/types/index.js +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/typescript/src/NativeStripeSdk.d.ts +8 -1
- package/lib/typescript/src/components/AddressSheet.d.ts +53 -0
- package/lib/typescript/src/components/PlatformPayButton.d.ts +65 -0
- package/lib/typescript/src/functions.d.ts +73 -1
- package/lib/typescript/src/hooks/usePlatformPay.d.ts +70 -0
- package/lib/typescript/src/hooks/useStripe.d.ts +18 -1
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/types/ApplePay.d.ts +9 -0
- package/lib/typescript/src/types/Common.d.ts +12 -0
- package/lib/typescript/src/types/Errors.d.ts +9 -0
- package/lib/typescript/src/types/GooglePay.d.ts +2 -1
- package/lib/typescript/src/types/PaymentSheet.d.ts +7 -1
- package/lib/typescript/src/types/PlatformPay.d.ts +285 -0
- package/lib/typescript/src/types/PushProvisioning.d.ts +66 -0
- package/lib/typescript/src/types/components/ApplePayButtonComponent.d.ts +2 -2
- package/lib/typescript/src/types/index.d.ts +6 -44
- package/package.json +8 -1
- package/src/NativeStripeSdk.tsx +20 -0
- package/src/components/AddressSheet.tsx +82 -0
- package/src/components/PlatformPayButton.tsx +157 -0
- package/src/functions.ts +181 -0
- package/src/hooks/usePlatformPay.tsx +174 -0
- package/src/hooks/useStripe.tsx +77 -0
- package/src/index.tsx +9 -0
- package/src/types/ApplePay.ts +9 -0
- package/src/types/Common.ts +13 -0
- package/src/types/Errors.ts +11 -0
- package/src/types/GooglePay.ts +2 -1
- package/src/types/PaymentSheet.ts +7 -1
- package/src/types/PlatformPay.ts +326 -0
- package/src/types/PushProvisioning.ts +76 -0
- package/src/types/components/ApplePayButtonComponent.ts +3 -2
- package/src/types/index.ts +8 -64
- package/stripe-react-native.podspec +1 -1
- package/android/src/main/res/drawable/googlepay_button_background.xml +0 -6
- package/android/src/main/res/drawable/googlepay_button_content.xml +0 -48
- package/android/src/main/res/drawable/googlepay_button_overlay.xml +0 -12
- package/android/src/main/res/drawable-af/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-am/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-as/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-az/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-be/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-bn/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-bs/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-cy/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-en-rau/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-en-rca/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-en-rgb/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-en-rin/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-es/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-es-res/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-eu/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-fa/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-fil/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-fr-rca/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ga/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-gl/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-gu/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-hdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable-hu/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-hy/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-is/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-iw/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ka/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-kk/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-km/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-kn/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ky/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-lo/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-lt/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-lv/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-mdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable-mk/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ml/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-mn/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-mr/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ne/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-pt-rbr/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-pt-rpt/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ro/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-sq/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-sw/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ta/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-te/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-ur/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-uz/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-v21/googlepay_button_background.xml +0 -7
- package/android/src/main/res/drawable-vi/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/drawable-xhdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable-zh-rcn/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-zh-rhk/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-zh-rtw/pay_with_googlepay_button_content.xml +0 -15
- package/android/src/main/res/drawable-zu/pay_with_googlepay_button_content.xml +0 -14
- package/android/src/main/res/layout/googlepay_button.xml +0 -39
- package/ios/pushprovisioning/PushProvisioningUtils.swift +0 -64
|
@@ -5,16 +5,15 @@ import android.content.Intent
|
|
|
5
5
|
import android.os.Parcelable
|
|
6
6
|
import android.util.Log
|
|
7
7
|
import androidx.appcompat.app.AppCompatActivity
|
|
8
|
-
import androidx.fragment.app.Fragment
|
|
9
8
|
import com.facebook.react.bridge.*
|
|
10
9
|
import com.facebook.react.module.annotations.ReactModule
|
|
10
|
+
import com.reactnativestripesdk.addresssheet.AddressLauncherFragment
|
|
11
11
|
import com.reactnativestripesdk.pushprovisioning.PushProvisioningProxy
|
|
12
12
|
import com.reactnativestripesdk.utils.*
|
|
13
|
-
import com.reactnativestripesdk.utils.createError
|
|
14
|
-
import com.reactnativestripesdk.utils.createMissingActivityError
|
|
15
13
|
import com.stripe.android.*
|
|
16
14
|
import com.stripe.android.core.ApiVersion
|
|
17
15
|
import com.stripe.android.core.AppInfo
|
|
16
|
+
import com.stripe.android.googlepaylauncher.GooglePayLauncher
|
|
18
17
|
import com.stripe.android.model.*
|
|
19
18
|
import com.stripe.android.payments.bankaccount.CollectBankAccountConfiguration
|
|
20
19
|
import com.stripe.android.paymentsheet.PaymentSheet
|
|
@@ -40,32 +39,47 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
40
39
|
|
|
41
40
|
private var confirmPromise: Promise? = null
|
|
42
41
|
private var confirmPaymentClientSecret: String? = null
|
|
42
|
+
private var createPlatformPayPaymentMethodPromise: Promise? = null
|
|
43
43
|
|
|
44
44
|
private var paymentSheetFragment: PaymentSheetFragment? = null
|
|
45
45
|
private var googlePayFragment: GooglePayFragment? = null
|
|
46
46
|
private var paymentLauncherFragment: PaymentLauncherFragment? = null
|
|
47
47
|
private var collectBankAccountLauncherFragment: CollectBankAccountLauncherFragment? = null
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
|
|
49
|
+
// If you create a new Fragment, you must put the tag here, otherwise result callbacks for that
|
|
50
|
+
// Fragment will not work on RN < 0.65
|
|
51
|
+
private val allStripeFragmentTags: List<String>
|
|
50
52
|
get() = listOf(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
PaymentSheetFragment.TAG,
|
|
54
|
+
GooglePayFragment.TAG,
|
|
55
|
+
PaymentLauncherFragment.TAG,
|
|
56
|
+
CollectBankAccountLauncherFragment.TAG,
|
|
57
|
+
FinancialConnectionsSheetFragment.TAG,
|
|
58
|
+
AddressLauncherFragment.TAG,
|
|
59
|
+
GooglePayLauncherFragment.TAG
|
|
56
60
|
)
|
|
57
61
|
|
|
58
62
|
private val mActivityEventListener = object : BaseActivityEventListener() {
|
|
59
63
|
override fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?) {
|
|
60
64
|
if (::stripe.isInitialized) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
when (requestCode) {
|
|
66
|
+
GooglePayRequestHelper.LOAD_PAYMENT_DATA_REQUEST_CODE -> {
|
|
67
|
+
createPlatformPayPaymentMethodPromise?.let {
|
|
68
|
+
GooglePayRequestHelper.handleGooglePaymentMethodResult(resultCode, data, stripe, it)
|
|
69
|
+
createPlatformPayPaymentMethodPromise = null
|
|
70
|
+
} ?: run { Log.d("StripeReactNative", "No promise was found, Google Pay result went unhandled,") }
|
|
71
|
+
}
|
|
72
|
+
else -> {
|
|
73
|
+
dispatchActivityResultsToFragments(requestCode, resultCode, data)
|
|
74
|
+
try {
|
|
75
|
+
val result = AddPaymentMethodActivityStarter.Result.fromIntent(data)
|
|
76
|
+
if (data?.getParcelableExtra<Parcelable>("extra_activity_result") != null) {
|
|
77
|
+
onFpxPaymentMethodResult(result)
|
|
78
|
+
}
|
|
79
|
+
} catch (e: java.lang.Exception) {
|
|
80
|
+
Log.d("StripeReactNative", e.localizedMessage ?: e.toString())
|
|
81
|
+
}
|
|
66
82
|
}
|
|
67
|
-
} catch (e: java.lang.Exception) {
|
|
68
|
-
Log.d("Error", e.localizedMessage ?: e.toString())
|
|
69
83
|
}
|
|
70
84
|
}
|
|
71
85
|
}
|
|
@@ -77,8 +91,12 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
77
91
|
|
|
78
92
|
// Necessary on older versions of React Native (~0.65 and below)
|
|
79
93
|
private fun dispatchActivityResultsToFragments(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
getCurrentActivityOrResolveWithError(null)?.supportFragmentManager?.let { fragmentManager ->
|
|
95
|
+
for (tag in allStripeFragmentTags) {
|
|
96
|
+
fragmentManager.findFragmentByTag(tag)?.let {
|
|
97
|
+
it.activity?.activityResultRegistry?.dispatchResult(requestCode, resultCode, data)
|
|
98
|
+
}
|
|
99
|
+
}
|
|
82
100
|
}
|
|
83
101
|
}
|
|
84
102
|
|
|
@@ -120,6 +138,7 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
120
138
|
}
|
|
121
139
|
|
|
122
140
|
this.publishableKey = publishableKey
|
|
141
|
+
AddressLauncherFragment.publishableKey = publishableKey
|
|
123
142
|
|
|
124
143
|
val name = getValOr(appInfo, "name", "") as String
|
|
125
144
|
val partnerId = getValOr(appInfo, "partnerId", "")
|
|
@@ -489,6 +508,26 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
489
508
|
}
|
|
490
509
|
}
|
|
491
510
|
|
|
511
|
+
@ReactMethod
|
|
512
|
+
fun isPlatformPaySupported(params: ReadableMap?, promise: Promise) {
|
|
513
|
+
val fragment = GooglePayPaymentMethodLauncherFragment(
|
|
514
|
+
reactApplicationContext,
|
|
515
|
+
getBooleanOrFalse(params, "testEnv"),
|
|
516
|
+
getBooleanOrFalse(params, "existingPaymentMethodRequired"),
|
|
517
|
+
promise
|
|
518
|
+
)
|
|
519
|
+
|
|
520
|
+
getCurrentActivityOrResolveWithError(promise)?.let {
|
|
521
|
+
try {
|
|
522
|
+
it.supportFragmentManager.beginTransaction()
|
|
523
|
+
.add(fragment, GooglePayPaymentMethodLauncherFragment.TAG)
|
|
524
|
+
.commit()
|
|
525
|
+
} catch (error: IllegalStateException) {
|
|
526
|
+
promise.resolve(createError(ErrorType.Failed.toString(), error.message))
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
|
|
492
531
|
@ReactMethod
|
|
493
532
|
fun isGooglePaySupported(params: ReadableMap?, promise: Promise) {
|
|
494
533
|
val fragment = GooglePayPaymentMethodLauncherFragment(
|
|
@@ -545,6 +584,62 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
545
584
|
}
|
|
546
585
|
}
|
|
547
586
|
|
|
587
|
+
@ReactMethod
|
|
588
|
+
fun confirmPlatformPay(clientSecret: String, params: ReadableMap, isPaymentIntent: Boolean, promise: Promise) {
|
|
589
|
+
if (!::stripe.isInitialized) {
|
|
590
|
+
promise.resolve(createMissingInitError())
|
|
591
|
+
return
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
val googlePayParams: ReadableMap = params.getMap("googlePay") ?: run {
|
|
595
|
+
promise.resolve(createError(GooglePayErrorType.Failed.toString(), "You must provide the `googlePay` parameter."))
|
|
596
|
+
return
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
GooglePayLauncherFragment().also {
|
|
600
|
+
it.presentGooglePaySheet(
|
|
601
|
+
clientSecret,
|
|
602
|
+
if (isPaymentIntent) GooglePayLauncherFragment.Mode.ForPayment else GooglePayLauncherFragment.Mode.ForSetup,
|
|
603
|
+
googlePayParams,
|
|
604
|
+
reactApplicationContext
|
|
605
|
+
) { launcherResult, errorMap ->
|
|
606
|
+
if (errorMap != null) {
|
|
607
|
+
promise.resolve(errorMap)
|
|
608
|
+
} else if (launcherResult != null) {
|
|
609
|
+
when (launcherResult) {
|
|
610
|
+
GooglePayLauncher.Result.Completed -> {
|
|
611
|
+
if (isPaymentIntent) {
|
|
612
|
+
stripe.retrievePaymentIntent(clientSecret, stripeAccountId, object : ApiResultCallback<PaymentIntent> {
|
|
613
|
+
override fun onError(e: Exception) {
|
|
614
|
+
promise.resolve(createResult("paymentIntent", WritableNativeMap()))
|
|
615
|
+
}
|
|
616
|
+
override fun onSuccess(result: PaymentIntent) {
|
|
617
|
+
promise.resolve(createResult("paymentIntent", mapFromPaymentIntentResult(result)))
|
|
618
|
+
}
|
|
619
|
+
})
|
|
620
|
+
} else {
|
|
621
|
+
stripe.retrieveSetupIntent(clientSecret, stripeAccountId, object : ApiResultCallback<SetupIntent> {
|
|
622
|
+
override fun onError(e: Exception) {
|
|
623
|
+
promise.resolve(createResult("setupIntent", WritableNativeMap()))
|
|
624
|
+
}
|
|
625
|
+
override fun onSuccess(result: SetupIntent) {
|
|
626
|
+
promise.resolve(createResult("setupIntent", mapFromSetupIntentResult(result)))
|
|
627
|
+
}
|
|
628
|
+
})
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
GooglePayLauncher.Result.Canceled -> {
|
|
632
|
+
promise.resolve(createError(GooglePayErrorType.Canceled.toString(), "Google Pay has been canceled"))
|
|
633
|
+
}
|
|
634
|
+
is GooglePayLauncher.Result.Failed -> {
|
|
635
|
+
promise.resolve(createError(GooglePayErrorType.Failed.toString(), launcherResult.error))
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
|
|
548
643
|
@ReactMethod
|
|
549
644
|
fun createGooglePayPaymentMethod(params: ReadableMap, promise: Promise) {
|
|
550
645
|
val currencyCode = getValOr(params, "currencyCode", null) ?: run {
|
|
@@ -558,6 +653,23 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
558
653
|
googlePayFragment?.createPaymentMethod(currencyCode, amount, promise)
|
|
559
654
|
}
|
|
560
655
|
|
|
656
|
+
@ReactMethod
|
|
657
|
+
fun createPlatformPayPaymentMethod(params: ReadableMap, promise: Promise) {
|
|
658
|
+
val googlePayParams: ReadableMap = params.getMap("googlePay") ?: run {
|
|
659
|
+
promise.resolve(createError(GooglePayErrorType.Failed.toString(), "You must provide the `googlePay` parameter."))
|
|
660
|
+
return
|
|
661
|
+
}
|
|
662
|
+
createPlatformPayPaymentMethodPromise = promise
|
|
663
|
+
getCurrentActivityOrResolveWithError(promise)?.let {
|
|
664
|
+
val request = GooglePayRequestHelper.createPaymentRequest(
|
|
665
|
+
it,
|
|
666
|
+
GooglePayJsonFactory(reactApplicationContext),
|
|
667
|
+
googlePayParams
|
|
668
|
+
)
|
|
669
|
+
GooglePayRequestHelper.createPaymentMethod(request, it)
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
|
|
561
673
|
@ReactMethod
|
|
562
674
|
fun canAddCardToWallet(params: ReadableMap, promise: Promise) {
|
|
563
675
|
val last4 = getValOr(params, "cardLastFour", null) ?: run {
|
|
@@ -718,7 +830,7 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
718
830
|
promise.resolve(createMissingInitError())
|
|
719
831
|
return
|
|
720
832
|
}
|
|
721
|
-
|
|
833
|
+
FinancialConnectionsSheetFragment().also {
|
|
722
834
|
it.presentFinancialConnectionsSheet(clientSecret, FinancialConnectionsSheetFragment.Mode.ForToken, publishableKey, stripeAccountId, promise, reactApplicationContext)
|
|
723
835
|
}
|
|
724
836
|
}
|
|
@@ -729,11 +841,20 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
729
841
|
promise.resolve(createMissingInitError())
|
|
730
842
|
return
|
|
731
843
|
}
|
|
732
|
-
|
|
844
|
+
FinancialConnectionsSheetFragment().also {
|
|
733
845
|
it.presentFinancialConnectionsSheet(clientSecret, FinancialConnectionsSheetFragment.Mode.ForSession, publishableKey, stripeAccountId, promise, reactApplicationContext)
|
|
734
846
|
}
|
|
735
847
|
}
|
|
736
848
|
|
|
849
|
+
/**
|
|
850
|
+
* We need the following in order to avoid some annoying console.warns() from our Apple Pay event listeners. Otherwise,
|
|
851
|
+
* we'd have to put our users through some annoying (if Platform.OS...) logic & null-handling logic.
|
|
852
|
+
*/
|
|
853
|
+
@ReactMethod
|
|
854
|
+
fun addListener(eventName: String) {}
|
|
855
|
+
@ReactMethod
|
|
856
|
+
fun removeListeners(count: Int) {}
|
|
857
|
+
|
|
737
858
|
/**
|
|
738
859
|
* Safely get and cast the current activity as an AppCompatActivity. If that fails, the promise
|
|
739
860
|
* provided will be resolved with an error message instructing the user to retry the method.
|
|
@@ -4,6 +4,7 @@ import com.facebook.react.ReactPackage
|
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.uimanager.ViewManager
|
|
7
|
+
import com.reactnativestripesdk.addresssheet.AddressSheetViewManager
|
|
7
8
|
import com.reactnativestripesdk.pushprovisioning.AddToWalletButtonManager
|
|
8
9
|
|
|
9
10
|
class StripeSdkPackage : ReactPackage {
|
|
@@ -18,7 +19,8 @@ class StripeSdkPackage : ReactPackage {
|
|
|
18
19
|
StripeContainerManager(),
|
|
19
20
|
CardFormViewManager(),
|
|
20
21
|
GooglePayButtonManager(),
|
|
21
|
-
AddToWalletButtonManager(reactContext)
|
|
22
|
+
AddToWalletButtonManager(reactContext),
|
|
23
|
+
AddressSheetViewManager()
|
|
22
24
|
)
|
|
23
25
|
}
|
|
24
26
|
}
|
package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherFragment.kt
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
package com.reactnativestripesdk.addresssheet
|
|
2
|
+
|
|
3
|
+
import android.os.Bundle
|
|
4
|
+
import android.view.LayoutInflater
|
|
5
|
+
import android.view.View
|
|
6
|
+
import android.view.ViewGroup
|
|
7
|
+
import android.widget.FrameLayout
|
|
8
|
+
import androidx.appcompat.app.AppCompatActivity
|
|
9
|
+
import androidx.fragment.app.Fragment
|
|
10
|
+
import com.facebook.react.bridge.ReactContext
|
|
11
|
+
import com.facebook.react.bridge.WritableMap
|
|
12
|
+
import com.reactnativestripesdk.utils.ErrorType
|
|
13
|
+
import com.reactnativestripesdk.utils.createError
|
|
14
|
+
import com.stripe.android.paymentsheet.PaymentSheet
|
|
15
|
+
import com.stripe.android.paymentsheet.addresselement.AddressDetails
|
|
16
|
+
import com.stripe.android.paymentsheet.addresselement.AddressLauncher
|
|
17
|
+
import com.stripe.android.paymentsheet.addresselement.AddressLauncherResult
|
|
18
|
+
|
|
19
|
+
class AddressLauncherFragment : Fragment() {
|
|
20
|
+
companion object {
|
|
21
|
+
internal var publishableKey: String? = null
|
|
22
|
+
internal const val TAG = "address_launcher_fragment"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
private lateinit var addressLauncher: AddressLauncher
|
|
26
|
+
private var configuration = AddressLauncher.Configuration()
|
|
27
|
+
private var callback: ((error: WritableMap?, address: AddressDetails?) -> Unit)? = null
|
|
28
|
+
|
|
29
|
+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
|
|
30
|
+
savedInstanceState: Bundle?): View {
|
|
31
|
+
return FrameLayout(requireActivity()).also {
|
|
32
|
+
it.visibility = View.GONE
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
37
|
+
publishableKey?.let { publishableKey ->
|
|
38
|
+
addressLauncher = AddressLauncher(this,
|
|
39
|
+
::onAddressLauncherResult).also {
|
|
40
|
+
it.present(
|
|
41
|
+
publishableKey = publishableKey,
|
|
42
|
+
configuration = configuration
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
} ?: run {
|
|
46
|
+
callback?.invoke(
|
|
47
|
+
createError(ErrorType.Failed.toString(), "No publishable key set. Stripe has not been initialized. Initialize Stripe in your app with the StripeProvider component or the initStripe method."),
|
|
48
|
+
null
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private fun onAddressLauncherResult(result: AddressLauncherResult) {
|
|
54
|
+
when (result) {
|
|
55
|
+
is AddressLauncherResult.Canceled -> {
|
|
56
|
+
callback?.invoke(
|
|
57
|
+
createError(ErrorType.Canceled.toString(), "The flow has been canceled."),
|
|
58
|
+
null
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
is AddressLauncherResult.Succeeded -> {
|
|
62
|
+
callback?.invoke(
|
|
63
|
+
null,
|
|
64
|
+
result.address
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
fun presentAddressSheet(
|
|
71
|
+
context: ReactContext,
|
|
72
|
+
appearance: PaymentSheet.Appearance,
|
|
73
|
+
defaultAddress: AddressDetails?,
|
|
74
|
+
allowedCountries: Set<String>,
|
|
75
|
+
buttonTitle: String?,
|
|
76
|
+
title: String?,
|
|
77
|
+
googlePlacesApiKey: String?,
|
|
78
|
+
autocompleteCountries: Set<String>,
|
|
79
|
+
additionalFields: AddressLauncher.AdditionalFieldsConfiguration?,
|
|
80
|
+
callback: ((error: WritableMap?, address: AddressDetails?) -> Unit)) {
|
|
81
|
+
configuration = AddressLauncher.Configuration(
|
|
82
|
+
appearance = appearance,
|
|
83
|
+
address = defaultAddress,
|
|
84
|
+
allowedCountries = allowedCountries,
|
|
85
|
+
buttonTitle = buttonTitle,
|
|
86
|
+
additionalFields = additionalFields,
|
|
87
|
+
title = title,
|
|
88
|
+
googlePlacesApiKey = googlePlacesApiKey,
|
|
89
|
+
autocompleteCountries = autocompleteCountries,
|
|
90
|
+
)
|
|
91
|
+
this.callback = callback
|
|
92
|
+
(context.currentActivity as? AppCompatActivity)?.let {
|
|
93
|
+
attemptToCleanupPreviousFragment(it)
|
|
94
|
+
commitFragmentAndStartFlow(it)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private fun attemptToCleanupPreviousFragment(currentActivity: AppCompatActivity) {
|
|
99
|
+
currentActivity.supportFragmentManager.beginTransaction()
|
|
100
|
+
.remove(this)
|
|
101
|
+
.commitAllowingStateLoss()
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
private fun commitFragmentAndStartFlow(currentActivity: AppCompatActivity) {
|
|
105
|
+
try {
|
|
106
|
+
currentActivity.supportFragmentManager.beginTransaction()
|
|
107
|
+
.add(this, TAG)
|
|
108
|
+
.commit()
|
|
109
|
+
} catch (_: IllegalStateException) {}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
package com.reactnativestripesdk.addresssheet
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.WritableMap
|
|
4
|
+
import com.facebook.react.uimanager.events.Event
|
|
5
|
+
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
6
|
+
|
|
7
|
+
internal class AddressSheetEvent constructor(viewTag: Int, private val eventType: EventType, private val eventMap: WritableMap?) : Event<AddressSheetEvent>(viewTag) {
|
|
8
|
+
enum class EventType {
|
|
9
|
+
OnSubmit,
|
|
10
|
+
OnError
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
override fun dispatch(rctEventEmitter: RCTEventEmitter) {
|
|
14
|
+
rctEventEmitter.receiveEvent(viewTag, eventName, eventMap)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
companion object {
|
|
18
|
+
const val ON_SUBMIT = "onSubmitAction"
|
|
19
|
+
const val ON_ERROR = "onErrorAction"
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
override fun getEventName(): String {
|
|
23
|
+
return when (eventType) {
|
|
24
|
+
EventType.OnSubmit -> ON_SUBMIT
|
|
25
|
+
EventType.OnError -> ON_ERROR
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
package com.reactnativestripesdk.addresssheet
|
|
2
|
+
|
|
3
|
+
import android.os.Bundle
|
|
4
|
+
import android.util.Log
|
|
5
|
+
import android.widget.FrameLayout
|
|
6
|
+
import com.facebook.react.bridge.Arguments
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap
|
|
8
|
+
import com.facebook.react.bridge.WritableMap
|
|
9
|
+
import com.facebook.react.bridge.WritableNativeMap
|
|
10
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
11
|
+
import com.facebook.react.uimanager.UIManagerModule
|
|
12
|
+
import com.facebook.react.uimanager.events.EventDispatcher
|
|
13
|
+
import com.reactnativestripesdk.buildPaymentSheetAppearance
|
|
14
|
+
import com.reactnativestripesdk.utils.ErrorType
|
|
15
|
+
import com.reactnativestripesdk.utils.PaymentSheetAppearanceException
|
|
16
|
+
import com.reactnativestripesdk.utils.createError
|
|
17
|
+
import com.reactnativestripesdk.utils.toBundleObject
|
|
18
|
+
import com.stripe.android.paymentsheet.PaymentSheet
|
|
19
|
+
import com.stripe.android.paymentsheet.addresselement.AddressDetails
|
|
20
|
+
import com.stripe.android.paymentsheet.addresselement.AddressLauncher
|
|
21
|
+
import com.stripe.android.paymentsheet.addresselement.AddressLauncherResult
|
|
22
|
+
|
|
23
|
+
class AddressSheetView(private val context: ThemedReactContext) : FrameLayout(context) {
|
|
24
|
+
private var eventDispatcher: EventDispatcher? = context.getNativeModule(UIManagerModule::class.java)?.eventDispatcher
|
|
25
|
+
private var isVisible = false
|
|
26
|
+
private var appearanceParams: ReadableMap? = null
|
|
27
|
+
private var defaultAddress: AddressDetails? = null
|
|
28
|
+
private var allowedCountries: Set<String> = emptySet()
|
|
29
|
+
private var buttonTitle: String? = null
|
|
30
|
+
private var sheetTitle: String? = null
|
|
31
|
+
private var googlePlacesApiKey: String? = null
|
|
32
|
+
private var autocompleteCountries: Set<String> = emptySet()
|
|
33
|
+
private var additionalFields: AddressLauncher.AdditionalFieldsConfiguration? = null
|
|
34
|
+
|
|
35
|
+
private fun onSubmit(params: WritableMap) {
|
|
36
|
+
eventDispatcher?.dispatchEvent(
|
|
37
|
+
AddressSheetEvent(id, AddressSheetEvent.EventType.OnSubmit, params)
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
private fun onError(params: WritableMap?) {
|
|
42
|
+
eventDispatcher?.dispatchEvent(
|
|
43
|
+
AddressSheetEvent(id, AddressSheetEvent.EventType.OnError, params)
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
fun setVisible(newVisibility: Boolean) {
|
|
48
|
+
if (newVisibility && !isVisible) {
|
|
49
|
+
launchAddressSheet()
|
|
50
|
+
} else if (!newVisibility && isVisible) {
|
|
51
|
+
Log.w("StripeReactNative", "Programmatically dismissing the Address Sheet is not supported on Android.")
|
|
52
|
+
}
|
|
53
|
+
isVisible = newVisibility
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
private fun launchAddressSheet() {
|
|
57
|
+
val appearance = try {
|
|
58
|
+
buildPaymentSheetAppearance(toBundleObject(appearanceParams), context)
|
|
59
|
+
} catch (error: PaymentSheetAppearanceException) {
|
|
60
|
+
onError(createError(ErrorType.Failed.toString(), error))
|
|
61
|
+
return
|
|
62
|
+
}
|
|
63
|
+
AddressLauncherFragment().presentAddressSheet(
|
|
64
|
+
context,
|
|
65
|
+
appearance,
|
|
66
|
+
defaultAddress,
|
|
67
|
+
allowedCountries,
|
|
68
|
+
buttonTitle,
|
|
69
|
+
sheetTitle,
|
|
70
|
+
googlePlacesApiKey,
|
|
71
|
+
autocompleteCountries,
|
|
72
|
+
additionalFields
|
|
73
|
+
) { error, address ->
|
|
74
|
+
if (address != null) {
|
|
75
|
+
onSubmit(buildResult(address))
|
|
76
|
+
} else {
|
|
77
|
+
onError(error)
|
|
78
|
+
}
|
|
79
|
+
isVisible = false
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
fun setAppearance(appearanceParams: ReadableMap) {
|
|
84
|
+
this.appearanceParams = appearanceParams
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
fun setDefaultValues(defaults: ReadableMap) {
|
|
88
|
+
defaultAddress = buildAddressDetails(defaults)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
fun setAdditionalFields(fields: ReadableMap) {
|
|
92
|
+
additionalFields = buildAdditionalFieldsConfiguration(fields)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
fun setAllowedCountries(countries: List<String>) {
|
|
96
|
+
allowedCountries = countries.toSet()
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
fun setAutocompleteCountries(countries: List<String>) {
|
|
100
|
+
autocompleteCountries = countries.toSet()
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
fun setPrimaryButtonTitle(title: String) {
|
|
104
|
+
buttonTitle = title
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
fun setSheetTitle(title: String) {
|
|
108
|
+
sheetTitle = title
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
fun setGooglePlacesApiKey(key: String) {
|
|
112
|
+
googlePlacesApiKey = key
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
companion object {
|
|
116
|
+
internal fun buildAddressDetails(bundle: Bundle): AddressDetails {
|
|
117
|
+
return AddressDetails(
|
|
118
|
+
name = bundle.getString("name"),
|
|
119
|
+
address = buildAddress(bundle.getBundle("address")),
|
|
120
|
+
phoneNumber = bundle.getString("phone"),
|
|
121
|
+
isCheckboxSelected = bundle.getBoolean("isCheckboxSelected"),
|
|
122
|
+
)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
internal fun buildAddressDetails(map: ReadableMap): AddressDetails {
|
|
126
|
+
return buildAddressDetails(toBundleObject(map))
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
internal fun buildAddress(bundle: Bundle?): PaymentSheet.Address? {
|
|
130
|
+
if (bundle == null) {
|
|
131
|
+
return null
|
|
132
|
+
}
|
|
133
|
+
return PaymentSheet.Address(
|
|
134
|
+
city = bundle.getString("city"),
|
|
135
|
+
country = bundle.getString("country"),
|
|
136
|
+
line1 = bundle.getString("line1"),
|
|
137
|
+
line2 = bundle.getString("line2"),
|
|
138
|
+
state = bundle.getString("state"),
|
|
139
|
+
postalCode = bundle.getString("postalCode")
|
|
140
|
+
)
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
internal fun getFieldConfiguration(key: String?): AddressLauncher.AdditionalFieldsConfiguration.FieldConfiguration {
|
|
144
|
+
return when (key) {
|
|
145
|
+
"hidden" -> AddressLauncher.AdditionalFieldsConfiguration.FieldConfiguration.HIDDEN
|
|
146
|
+
"optional" -> AddressLauncher.AdditionalFieldsConfiguration.FieldConfiguration.OPTIONAL
|
|
147
|
+
"required" -> AddressLauncher.AdditionalFieldsConfiguration.FieldConfiguration.REQUIRED
|
|
148
|
+
else -> AddressLauncher.AdditionalFieldsConfiguration.FieldConfiguration.HIDDEN
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
internal fun buildAdditionalFieldsConfiguration(params: ReadableMap): AddressLauncher.AdditionalFieldsConfiguration {
|
|
153
|
+
val phoneConfiguration = getFieldConfiguration(params.getString("phoneNumber"))
|
|
154
|
+
|
|
155
|
+
return AddressLauncher.AdditionalFieldsConfiguration(
|
|
156
|
+
phone = phoneConfiguration,
|
|
157
|
+
checkboxLabel = params.getString("checkboxLabel")
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
internal fun buildResult(addressDetails: AddressDetails): WritableMap {
|
|
162
|
+
val result = WritableNativeMap()
|
|
163
|
+
result.putString("name", addressDetails.name)
|
|
164
|
+
WritableNativeMap().let {
|
|
165
|
+
it.putString("city", addressDetails.address?.city)
|
|
166
|
+
it.putString("country", addressDetails.address?.country)
|
|
167
|
+
it.putString("line1", addressDetails.address?.line1)
|
|
168
|
+
it.putString("line2", addressDetails.address?.line2)
|
|
169
|
+
it.putString("postalCode", addressDetails.address?.postalCode)
|
|
170
|
+
it.putString("state", addressDetails.address?.state)
|
|
171
|
+
result.putMap("address", it)
|
|
172
|
+
}
|
|
173
|
+
result.putString("phone", addressDetails.phoneNumber)
|
|
174
|
+
result.putBoolean("isCheckboxSelected", addressDetails.isCheckboxSelected ?: false)
|
|
175
|
+
return result
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetViewManager.kt
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
package com.reactnativestripesdk.addresssheet
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableArray
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap
|
|
5
|
+
import com.facebook.react.common.MapBuilder
|
|
6
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
7
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
|
+
import com.facebook.react.uimanager.annotations.ReactProp
|
|
9
|
+
|
|
10
|
+
class AddressSheetViewManager : SimpleViewManager<AddressSheetView>() {
|
|
11
|
+
override fun getName() = "AddressSheetView"
|
|
12
|
+
|
|
13
|
+
override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> {
|
|
14
|
+
return MapBuilder.of(
|
|
15
|
+
AddressSheetEvent.ON_SUBMIT, MapBuilder.of("registrationName", "onSubmitAction"),
|
|
16
|
+
AddressSheetEvent.ON_ERROR, MapBuilder.of("registrationName", "onErrorAction"))
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@ReactProp(name = "visible")
|
|
20
|
+
fun setVisible(view: AddressSheetView, visibility: Boolean) {
|
|
21
|
+
view.setVisible(visibility)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@ReactProp(name = "appearance")
|
|
25
|
+
fun setAppearance(view: AddressSheetView, appearance: ReadableMap) {
|
|
26
|
+
view.setAppearance(appearance)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@ReactProp(name = "defaultValues")
|
|
30
|
+
fun setDefaultValues(view: AddressSheetView, defaults: ReadableMap) {
|
|
31
|
+
view.setDefaultValues(defaults)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@ReactProp(name = "additionalFields")
|
|
35
|
+
fun setAdditionalFields(view: AddressSheetView, fields: ReadableMap) {
|
|
36
|
+
view.setAdditionalFields(fields)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@ReactProp(name = "allowedCountries")
|
|
40
|
+
fun setAllowedCountries(view: AddressSheetView, countries: ReadableArray) {
|
|
41
|
+
view.setAllowedCountries(countries.toArrayList().filterIsInstance<String>())
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@ReactProp(name = "autocompleteCountries")
|
|
45
|
+
fun setAutocompleteCountries(view: AddressSheetView, countries: ReadableArray) {
|
|
46
|
+
view.setAutocompleteCountries(countries.toArrayList().filterIsInstance<String>())
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@ReactProp(name = "primaryButtonTitle")
|
|
50
|
+
fun setPrimaryButtonTitle(view: AddressSheetView, title: String) {
|
|
51
|
+
view.setPrimaryButtonTitle(title)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@ReactProp(name = "sheetTitle")
|
|
55
|
+
fun setSheetTitle(view: AddressSheetView, title: String) {
|
|
56
|
+
view.setSheetTitle(title)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@ReactProp(name = "googlePlacesApiKey")
|
|
60
|
+
fun setGooglePlacesApiKey(view: AddressSheetView, key: String) {
|
|
61
|
+
view.setGooglePlacesApiKey(key)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
override fun createViewInstance(reactContext: ThemedReactContext): AddressSheetView {
|
|
65
|
+
return AddressSheetView(reactContext)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -6,6 +6,7 @@ import android.view.inputmethod.InputMethodManager
|
|
|
6
6
|
import androidx.appcompat.app.AppCompatActivity
|
|
7
7
|
import androidx.fragment.app.Fragment
|
|
8
8
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
9
|
+
import com.facebook.react.bridge.ReadableMap
|
|
9
10
|
|
|
10
11
|
fun View.showSoftKeyboard() {
|
|
11
12
|
post {
|
|
@@ -30,3 +31,7 @@ fun Fragment.removeFragment(context: ReactApplicationContext) {
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
}
|
|
34
|
+
|
|
35
|
+
fun ReadableMap.getBooleanOr(key: String, default: Boolean): Boolean {
|
|
36
|
+
return if (this.hasKey(key)) this.getBoolean(key) else default
|
|
37
|
+
}
|
|
@@ -487,7 +487,7 @@ internal fun mapNextAction(type: NextActionType?, data: NextActionData?): Writab
|
|
|
487
487
|
NextActionType.AlipayRedirect -> { // TODO: Can't access, private
|
|
488
488
|
return null
|
|
489
489
|
}
|
|
490
|
-
NextActionType.BlikAuthorize, NextActionType.UseStripeSdk, null -> {
|
|
490
|
+
NextActionType.BlikAuthorize, NextActionType.UseStripeSdk, NextActionType.UpiAwaitNotification, null -> {
|
|
491
491
|
return null
|
|
492
492
|
}
|
|
493
493
|
}
|