@stripe/stripe-react-native 0.21.0 → 0.22.1
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 +27 -1
- package/android/build.gradle +1 -0
- package/android/proguard-rules.txt +7 -0
- package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +4 -2
- package/android/src/main/java/com/reactnativestripesdk/CardFormView.kt +2 -3
- 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/GooglePayLauncherFragment.kt +132 -0
- package/android/src/main/java/com/reactnativestripesdk/GooglePayRequestHelper.kt +144 -0
- package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +123 -8
- package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +5 -0
- 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/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/Mappers.swift +26 -7
- package/ios/PaymentPassFinder.swift +61 -0
- package/ios/PushProvisioning/AddToWalletButtonView.swift +10 -10
- package/ios/PushProvisioning/PushProvisioningUtils.swift +39 -16
- package/ios/StripeSdk.m +29 -0
- package/ios/StripeSdk.swift +193 -129
- package/ios/Tests/AddressSheetUtilsTests.swift +1 -7
- 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/AddToWalletButton.js.map +1 -1
- package/lib/commonjs/components/AddressSheet.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/ApplePayButtonNative.js +2 -0
- package/lib/commonjs/components/ApplePayButtonNative.js.map +1 -0
- package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
- package/lib/commonjs/components/CardField.js.map +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/GooglePayButtonNative.js +2 -0
- package/lib/commonjs/components/GooglePayButtonNative.js.map +1 -0
- package/lib/commonjs/components/PlatformPayButton.js +2 -0
- package/lib/commonjs/components/PlatformPayButton.js.map +1 -0
- package/lib/commonjs/components/StripeContainer.js.map +1 -1
- package/lib/commonjs/components/StripeProvider.js.map +1 -1
- package/lib/commonjs/functions.js +1 -1
- package/lib/commonjs/functions.js.map +1 -1
- package/lib/commonjs/helpers.js.map +1 -1
- package/lib/commonjs/hooks/useApplePay.js.map +1 -1
- package/lib/commonjs/hooks/useConfirmPayment.js.map +1 -1
- package/lib/commonjs/hooks/useConfirmSetupIntent.js.map +1 -1
- package/lib/commonjs/hooks/useFinancialConnectionsSheet.js.map +1 -1
- package/lib/commonjs/hooks/useGooglePay.js.map +1 -1
- package/lib/commonjs/hooks/usePaymentSheet.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/plugin/withStripe.js.map +1 -1
- package/lib/commonjs/types/ApplePay.js.map +1 -1
- package/lib/commonjs/types/Common.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/FinancialConnections.js.map +1 -1
- package/lib/commonjs/types/GooglePay.js.map +1 -1
- package/lib/commonjs/types/NextAction.js.map +1 -1
- package/lib/commonjs/types/PaymentIntent.js.map +1 -1
- package/lib/commonjs/types/PaymentMethod.js.map +1 -1
- package/lib/commonjs/types/PaymentSheet.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/SetupIntent.js.map +1 -1
- package/lib/commonjs/types/ThreeDSecure.js.map +1 -1
- package/lib/commonjs/types/Token.js.map +1 -1
- package/lib/commonjs/types/components/ApplePayButtonComponent.js.map +1 -1
- package/lib/commonjs/types/components/AuBECSDebitFormComponent.js.map +1 -1
- package/lib/commonjs/types/components/CardFieldInput.js.map +1 -1
- package/lib/commonjs/types/components/CardFormView.js.map +1 -1
- package/lib/commonjs/types/components/GooglePayButtonComponent.js +2 -0
- package/lib/commonjs/types/components/GooglePayButtonComponent.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/AddToWalletButton.js.map +1 -1
- package/lib/module/components/AddressSheet.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/ApplePayButtonNative.js +2 -0
- package/lib/module/components/ApplePayButtonNative.js.map +1 -0
- package/lib/module/components/AuBECSDebitForm.js.map +1 -1
- package/lib/module/components/CardField.js.map +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/GooglePayButtonNative.js +2 -0
- package/lib/module/components/GooglePayButtonNative.js.map +1 -0
- package/lib/module/components/PlatformPayButton.js +2 -0
- package/lib/module/components/PlatformPayButton.js.map +1 -0
- package/lib/module/components/StripeContainer.js.map +1 -1
- package/lib/module/components/StripeProvider.js.map +1 -1
- package/lib/module/functions.js +1 -1
- package/lib/module/functions.js.map +1 -1
- package/lib/module/helpers.js.map +1 -1
- package/lib/module/hooks/useApplePay.js.map +1 -1
- package/lib/module/hooks/useConfirmPayment.js.map +1 -1
- package/lib/module/hooks/useConfirmSetupIntent.js.map +1 -1
- package/lib/module/hooks/useFinancialConnectionsSheet.js.map +1 -1
- package/lib/module/hooks/useGooglePay.js.map +1 -1
- package/lib/module/hooks/usePaymentSheet.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/plugin/withStripe.js.map +1 -1
- package/lib/module/types/ApplePay.js.map +1 -1
- package/lib/module/types/Common.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/FinancialConnections.js.map +1 -1
- package/lib/module/types/GooglePay.js.map +1 -1
- package/lib/module/types/NextAction.js.map +1 -1
- package/lib/module/types/PaymentIntent.js.map +1 -1
- package/lib/module/types/PaymentMethod.js.map +1 -1
- package/lib/module/types/PaymentSheet.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/SetupIntent.js.map +1 -1
- package/lib/module/types/ThreeDSecure.js.map +1 -1
- package/lib/module/types/Token.js.map +1 -1
- package/lib/module/types/components/ApplePayButtonComponent.js.map +1 -1
- package/lib/module/types/components/AuBECSDebitFormComponent.js.map +1 -1
- package/lib/module/types/components/CardFieldInput.js.map +1 -1
- package/lib/module/types/components/CardFormView.js.map +1 -1
- package/lib/module/types/components/GooglePayButtonComponent.js +2 -0
- package/lib/module/types/components/GooglePayButtonComponent.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/ApplePayButton.d.ts +1 -1
- package/lib/typescript/src/components/ApplePayButtonNative.d.ts +3 -0
- package/lib/typescript/src/components/GooglePayButtonNative.d.ts +3 -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 +2 -0
- package/lib/typescript/src/types/ApplePay.d.ts +9 -0
- package/lib/typescript/src/types/Errors.d.ts +6 -1
- package/lib/typescript/src/types/GooglePay.d.ts +2 -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/Token.d.ts +1 -0
- package/lib/typescript/src/types/components/ApplePayButtonComponent.d.ts +14 -3
- package/lib/typescript/src/types/components/GooglePayButtonComponent.d.ts +6 -0
- package/lib/typescript/src/types/index.d.ts +4 -38
- package/package.json +10 -3
- package/src/NativeStripeSdk.tsx +20 -0
- package/src/components/ApplePayButton.tsx +3 -10
- package/src/components/ApplePayButtonNative.tsx +5 -0
- package/src/components/GooglePayButton.tsx +1 -3
- package/src/components/GooglePayButtonNative.tsx +7 -0
- package/src/components/PlatformPayButton.tsx +155 -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 +6 -0
- package/src/types/ApplePay.ts +9 -0
- package/src/types/Errors.ts +7 -1
- package/src/types/GooglePay.ts +2 -1
- package/src/types/PlatformPay.ts +326 -0
- package/src/types/PushProvisioning.ts +76 -0
- package/src/types/Token.ts +1 -0
- package/src/types/components/ApplePayButtonComponent.ts +21 -4
- package/src/types/components/GooglePayButtonComponent.ts +6 -0
- package/src/types/index.ts +5 -54
- 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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.22.1 - 2022-12-07
|
|
6
|
+
|
|
7
|
+
## Fixes
|
|
8
|
+
|
|
9
|
+
- Fixed the `ShippingMethod` type to contain the `isPending` field instead of a `type` field (which previously was never correct). This reflects the inputs accepted. [#1227](https://github.com/stripe/stripe-react-native/pull/1227)
|
|
10
|
+
- Fixed the `ShippingMethod` type to contain the `startDate` and `endDate` keys, if applicable. [#1227](https://github.com/stripe/stripe-react-native/pull/1227)
|
|
11
|
+
- Fixed instances of the "duplicate registered views" error. [#1233](https://github.com/stripe/stripe-react-native/pull/1233)
|
|
12
|
+
- Fixed extra margin that was being added to `<CardForm />` on Android. [#1234](https://github.com/stripe/stripe-react-native/pull/1234)
|
|
13
|
+
|
|
14
|
+
## 0.22.0 - 2022-12-02
|
|
15
|
+
|
|
16
|
+
### Breaking changes
|
|
17
|
+
|
|
18
|
+
### New features
|
|
19
|
+
|
|
20
|
+
- Added the `hasPairedAppleWatch` option to `canAddCardToWallet`. [#1219](https://github.com/stripe/stripe-react-native/pull/1219)
|
|
21
|
+
- Added new functions and a new component to streamline integrating with Apple and Google Pay and add more feature support. See the [Migrating to Platform Pay guide](https://github.com/stripe/stripe-react-native/blob/master/docs/Platform-Pay-Migration.md) for more details. The old Apple and Google Pay APIs are marked as `deprecated` and will be removed in a future release, but are still supported in this version.
|
|
22
|
+
|
|
23
|
+
## Fixes
|
|
24
|
+
|
|
25
|
+
- Fixed an issue where builds would error with the message `'const' enums are not supported.` [see commit](https://github.com/stripe/stripe-react-native/commit/f882bfa588aa6d23a980b4b43d2cca660ca1dd2a)
|
|
26
|
+
- Fixed an issue where the `canAddCardToWallet` method would sometimes wrongly return `false` with a `details.status` of `MISSING_CONFIGURATION` in production builds. [#1215](https://github.com/stripe/stripe-react-native/pull/1215)
|
|
27
|
+
- Fixed an issue on Android where, for certain countries, the postal code would not be enabled but would still be required. [#1213](https://github.com/stripe/stripe-react-native/pull/1213)
|
|
28
|
+
- Fixed an issue on iOS where `canAddCardToWallet` would return `false` if the card had already been provisioned on a paired device like an Apple Watch, but had not yet been provisioned on the current device, and would also return `false` if the card had been provisioned on the current device, but not on a paired Apple Watch. [#1219](https://github.com/stripe/stripe-react-native/pull/1219)
|
|
29
|
+
|
|
5
30
|
## 0.21.0 - 2022-11-15
|
|
6
31
|
|
|
7
32
|
### Breaking changes
|
|
@@ -9,6 +34,7 @@
|
|
|
9
34
|
### New features
|
|
10
35
|
|
|
11
36
|
- Added the `<AddressSheet />` component, which enables you to collect local and international shipping or billing addresses from your customers _with_ address autocomplete. [#1169](https://github.com/stripe/stripe-react-native/pull/1169)
|
|
37
|
+
- [Find the docs here](https://stripe.com/docs/elements/address-element?platform=react-native)
|
|
12
38
|
- Added the `defaultShippingDetails` field to the `params` argument in `initPaymentSheet(params)`. This will allow you to collect shipping details (either in your own UI or using the new `<AddressSheet />` component) for payments in the Payment Sheet. [#1169](https://github.com/stripe/stripe-react-native/pull/1169)
|
|
13
39
|
|
|
14
40
|
## Fixes
|
|
@@ -38,7 +64,7 @@
|
|
|
38
64
|
- Fixed an issue with Financial Connections on iOS where the app wouldn't properly redirect back after authentication. [#1178](https://github.com/stripe/stripe-react-native/pull/1178)
|
|
39
65
|
- Fixed `borderWidth` and `borderRadius` for `<CardField />` and `CardForm />` was inconsistent across iOS and Android. [#1182](https://github.com/stripe/stripe-react-native/pull/1182)
|
|
40
66
|
|
|
41
|
-
## 0.19.0 - 2022-09-16
|
|
67
|
+
## 0.19.0 - 2022-09-16 (📌 Expo SDK 47)
|
|
42
68
|
|
|
43
69
|
### Breaking changes
|
|
44
70
|
|
package/android/build.gradle
CHANGED
|
@@ -2,7 +2,6 @@ package com.reactnativestripesdk
|
|
|
2
2
|
|
|
3
3
|
import android.content.res.ColorStateList
|
|
4
4
|
import android.graphics.Color
|
|
5
|
-
import android.graphics.Typeface
|
|
6
5
|
import android.os.Build
|
|
7
6
|
import android.text.Editable
|
|
8
7
|
import android.text.InputFilter
|
|
@@ -143,7 +142,6 @@ class CardFieldView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
143
142
|
}
|
|
144
143
|
}
|
|
145
144
|
|
|
146
|
-
mCardWidget.setPadding(40, 0, 40, 0)
|
|
147
145
|
mCardWidget.background = MaterialShapeDrawable(
|
|
148
146
|
ShapeAppearanceModel()
|
|
149
147
|
.toBuilder()
|
|
@@ -204,6 +202,10 @@ class CardFieldView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
204
202
|
|
|
205
203
|
fun setPostalCodeEnabled(isEnabled: Boolean) {
|
|
206
204
|
mCardWidget.postalCodeEnabled = isEnabled
|
|
205
|
+
|
|
206
|
+
if (isEnabled === false) {
|
|
207
|
+
mCardWidget.postalCodeRequired = false
|
|
208
|
+
}
|
|
207
209
|
}
|
|
208
210
|
|
|
209
211
|
/**
|
|
@@ -2,12 +2,12 @@ package com.reactnativestripesdk
|
|
|
2
2
|
|
|
3
3
|
import android.content.res.ColorStateList
|
|
4
4
|
import android.graphics.Color
|
|
5
|
-
import android.graphics.Typeface
|
|
6
5
|
import android.os.Build
|
|
7
6
|
import android.text.InputFilter
|
|
8
7
|
import android.view.View
|
|
9
8
|
import android.view.View.OnFocusChangeListener
|
|
10
9
|
import android.widget.FrameLayout
|
|
10
|
+
import androidx.core.view.setMargins
|
|
11
11
|
import com.facebook.react.bridge.ReadableMap
|
|
12
12
|
import com.facebook.react.uimanager.PixelUtil
|
|
13
13
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
@@ -40,7 +40,7 @@ class CardFormView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
40
40
|
init {
|
|
41
41
|
cardFormViewBinding.cardMultilineWidgetContainer.isFocusable = true
|
|
42
42
|
cardFormViewBinding.cardMultilineWidgetContainer.isFocusableInTouchMode = true
|
|
43
|
-
|
|
43
|
+
(cardFormViewBinding.cardMultilineWidgetContainer.layoutParams as MarginLayoutParams).setMargins(0)
|
|
44
44
|
addView(cardForm)
|
|
45
45
|
setListeners()
|
|
46
46
|
|
|
@@ -191,7 +191,6 @@ class CardFormView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
cardFormViewBinding.cardMultilineWidgetContainer.setPadding(40, 0, 40, 0)
|
|
195
194
|
cardFormViewBinding.cardMultilineWidgetContainer.background = MaterialShapeDrawable(
|
|
196
195
|
ShapeAppearanceModel()
|
|
197
196
|
.toBuilder()
|
|
@@ -17,6 +17,11 @@ class GooglePayButtonManager : SimpleViewManager<GooglePayButtonView?>() {
|
|
|
17
17
|
|
|
18
18
|
@ReactProp(name = "buttonType")
|
|
19
19
|
fun buttonType(view: GooglePayButtonView, buttonType: String) {
|
|
20
|
+
view.setButtonType(buttonType)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@ReactProp(name = "type")
|
|
24
|
+
fun type(view: GooglePayButtonView, buttonType: Int) {
|
|
20
25
|
view.setType(buttonType)
|
|
21
26
|
}
|
|
22
27
|
|
|
@@ -1,28 +1,66 @@
|
|
|
1
1
|
package com.reactnativestripesdk
|
|
2
2
|
|
|
3
3
|
import android.view.LayoutInflater
|
|
4
|
+
import android.view.View
|
|
4
5
|
import android.widget.FrameLayout
|
|
5
6
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
6
7
|
|
|
7
8
|
class GooglePayButtonView(private val context: ThemedReactContext) : FrameLayout(context) {
|
|
9
|
+
private var button: View? = null
|
|
10
|
+
// Used in legacy GooglePayButton implementations
|
|
8
11
|
private var buttonType: String? = null
|
|
9
12
|
|
|
13
|
+
// Used in the new PlatformPayButton implementations
|
|
14
|
+
private var type: Int? = null
|
|
15
|
+
|
|
10
16
|
fun initialize() {
|
|
11
|
-
val
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
val resAsset: Int =
|
|
18
|
+
if (type != null) {
|
|
19
|
+
when (type) {
|
|
20
|
+
0 -> R.layout.plain_googlepay_button
|
|
21
|
+
1 -> R.layout.buy_with_googlepay_button
|
|
22
|
+
6 -> R.layout.book_with_googlepay_button
|
|
23
|
+
5 -> R.layout.checkout_with_googlepay_button
|
|
24
|
+
4 -> R.layout.donate_with_googlepay_button
|
|
25
|
+
11 -> R.layout.order_with_googlepay_button
|
|
26
|
+
1000 -> R.layout.pay_with_googlepay_button
|
|
27
|
+
7 -> R.layout.subscribe_with_googlepay_button
|
|
28
|
+
1001 -> R.layout.googlepay_mark_button
|
|
29
|
+
else -> R.layout.plain_googlepay_button
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
when (buttonType) {
|
|
33
|
+
"pay" -> R.layout.pay_with_googlepay_button
|
|
34
|
+
"standard" -> R.layout.plain_googlepay_button
|
|
35
|
+
else -> R.layout.plain_googlepay_button
|
|
36
|
+
}
|
|
16
37
|
}
|
|
17
38
|
|
|
18
|
-
|
|
19
|
-
|
|
39
|
+
button = LayoutInflater.from(context).inflate(
|
|
40
|
+
resAsset, null
|
|
20
41
|
)
|
|
21
42
|
|
|
22
43
|
addView(button)
|
|
44
|
+
viewTreeObserver.addOnGlobalLayoutListener { requestLayout() }
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
override fun requestLayout() {
|
|
48
|
+
super.requestLayout()
|
|
49
|
+
post(mLayoutRunnable)
|
|
23
50
|
}
|
|
24
51
|
|
|
25
|
-
|
|
52
|
+
private val mLayoutRunnable = Runnable {
|
|
53
|
+
measure(
|
|
54
|
+
MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
|
|
55
|
+
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY))
|
|
56
|
+
button?.layout(left, top, right, bottom)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
fun setButtonType(type: String) {
|
|
26
60
|
buttonType = type
|
|
27
61
|
}
|
|
62
|
+
|
|
63
|
+
fun setType(type: Int) {
|
|
64
|
+
this.type = type
|
|
65
|
+
}
|
|
28
66
|
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
package com.reactnativestripesdk
|
|
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.*
|
|
11
|
+
import com.reactnativestripesdk.utils.*
|
|
12
|
+
import com.reactnativestripesdk.utils.createError
|
|
13
|
+
import com.reactnativestripesdk.utils.createMissingActivityError
|
|
14
|
+
import com.stripe.android.googlepaylauncher.GooglePayEnvironment
|
|
15
|
+
import com.stripe.android.googlepaylauncher.GooglePayLauncher
|
|
16
|
+
|
|
17
|
+
class GooglePayLauncherFragment : Fragment() {
|
|
18
|
+
enum class Mode {
|
|
19
|
+
ForSetup, ForPayment
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private lateinit var launcher: GooglePayLauncher
|
|
23
|
+
private lateinit var clientSecret: String
|
|
24
|
+
private lateinit var mode: Mode
|
|
25
|
+
private lateinit var configuration: GooglePayLauncher.Config
|
|
26
|
+
private lateinit var currencyCode: String
|
|
27
|
+
private lateinit var callback: (result: GooglePayLauncher.Result?, error: WritableMap?) -> Unit
|
|
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
|
+
launcher = GooglePayLauncher(
|
|
38
|
+
fragment = this,
|
|
39
|
+
config = configuration,
|
|
40
|
+
readyCallback = ::onGooglePayReady,
|
|
41
|
+
resultCallback = ::onGooglePayResult
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
fun presentGooglePaySheet(clientSecret: String, mode: Mode, googlePayParams: ReadableMap, context: ReactApplicationContext, callback: (GooglePayLauncher.Result?, error: WritableMap?) -> Unit) {
|
|
46
|
+
this.clientSecret = clientSecret
|
|
47
|
+
this.mode = mode
|
|
48
|
+
this.callback = callback
|
|
49
|
+
this.currencyCode = googlePayParams.getString("currencyCode") ?: "USD"
|
|
50
|
+
this.configuration = GooglePayLauncher.Config(
|
|
51
|
+
environment = if (googlePayParams.getBoolean("testEnv")) GooglePayEnvironment.Test else GooglePayEnvironment.Production,
|
|
52
|
+
merchantCountryCode = googlePayParams.getString("merchantCountryCode").orEmpty(),
|
|
53
|
+
merchantName = googlePayParams.getString("merchantName").orEmpty(),
|
|
54
|
+
isEmailRequired = googlePayParams.getBooleanOr("isEmailRequired", false),
|
|
55
|
+
billingAddressConfig = buildBillingAddressParameters(googlePayParams.getMap("billingAddressConfig")),
|
|
56
|
+
existingPaymentMethodRequired = googlePayParams.getBooleanOr("existingPaymentMethodRequired", false),
|
|
57
|
+
allowCreditCards = googlePayParams.getBooleanOr("allowCreditCards", true),
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
(context.currentActivity as? AppCompatActivity)?.let {
|
|
61
|
+
attemptToCleanupPreviousFragment(it)
|
|
62
|
+
commitFragmentAndStartFlow(it)
|
|
63
|
+
} ?: run {
|
|
64
|
+
callback(null, createMissingActivityError())
|
|
65
|
+
return
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private fun attemptToCleanupPreviousFragment(currentActivity: AppCompatActivity) {
|
|
70
|
+
currentActivity.supportFragmentManager.beginTransaction()
|
|
71
|
+
.remove(this)
|
|
72
|
+
.commitAllowingStateLoss()
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private fun commitFragmentAndStartFlow(currentActivity: AppCompatActivity) {
|
|
76
|
+
try {
|
|
77
|
+
currentActivity.supportFragmentManager.beginTransaction()
|
|
78
|
+
.add(this, TAG)
|
|
79
|
+
.commit()
|
|
80
|
+
} catch (error: IllegalStateException) {
|
|
81
|
+
callback(
|
|
82
|
+
null,
|
|
83
|
+
createError(ErrorType.Failed.toString(), error.message)
|
|
84
|
+
)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
private fun onGooglePayReady(isReady: Boolean) {
|
|
89
|
+
if (isReady) {
|
|
90
|
+
when (mode) {
|
|
91
|
+
Mode.ForSetup -> {
|
|
92
|
+
launcher.presentForSetupIntent(clientSecret, currencyCode)
|
|
93
|
+
}
|
|
94
|
+
Mode.ForPayment -> {
|
|
95
|
+
launcher.presentForPaymentIntent(clientSecret)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
callback(
|
|
100
|
+
null,
|
|
101
|
+
createError(
|
|
102
|
+
GooglePayErrorType.Failed.toString(),
|
|
103
|
+
"Google Pay is not available on this device. You can use isPlatformPaySupported to preemptively check for Google Pay support."
|
|
104
|
+
)
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
private fun onGooglePayResult(result: GooglePayLauncher.Result) {
|
|
110
|
+
callback(result, null)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
companion object {
|
|
114
|
+
const val TAG = "google_pay_launcher_fragment"
|
|
115
|
+
|
|
116
|
+
private fun buildBillingAddressParameters(params: ReadableMap?): GooglePayLauncher.BillingAddressConfig {
|
|
117
|
+
val isRequired = params?.getBooleanOr("isRequired", false)
|
|
118
|
+
val isPhoneNumberRequired = params?.getBooleanOr("isPhoneNumberRequired", false)
|
|
119
|
+
val format = when (params?.getString("format").orEmpty()) {
|
|
120
|
+
"FULL" -> GooglePayLauncher.BillingAddressConfig.Format.Full
|
|
121
|
+
"MIN" -> GooglePayLauncher.BillingAddressConfig.Format.Min
|
|
122
|
+
else -> GooglePayLauncher.BillingAddressConfig.Format.Min
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return GooglePayLauncher.BillingAddressConfig(
|
|
126
|
+
isRequired = isRequired ?: false,
|
|
127
|
+
format = format,
|
|
128
|
+
isPhoneNumberRequired = isPhoneNumberRequired ?: false
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
package com.reactnativestripesdk
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.content.Intent
|
|
5
|
+
import androidx.appcompat.app.AppCompatActivity
|
|
6
|
+
import com.facebook.react.bridge.Promise
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap
|
|
8
|
+
import com.facebook.react.bridge.WritableNativeMap
|
|
9
|
+
import com.google.android.gms.tasks.Task
|
|
10
|
+
import com.google.android.gms.wallet.*
|
|
11
|
+
import com.reactnativestripesdk.utils.*
|
|
12
|
+
import com.reactnativestripesdk.utils.createError
|
|
13
|
+
import com.reactnativestripesdk.utils.mapFromPaymentMethod
|
|
14
|
+
import com.reactnativestripesdk.utils.mapFromToken
|
|
15
|
+
import com.stripe.android.ApiResultCallback
|
|
16
|
+
import com.stripe.android.GooglePayJsonFactory
|
|
17
|
+
import com.stripe.android.Stripe
|
|
18
|
+
import com.stripe.android.model.GooglePayResult
|
|
19
|
+
import com.stripe.android.model.PaymentMethod
|
|
20
|
+
import com.stripe.android.model.PaymentMethodCreateParams
|
|
21
|
+
import org.json.JSONObject
|
|
22
|
+
import java.util.*
|
|
23
|
+
|
|
24
|
+
class GooglePayRequestHelper {
|
|
25
|
+
companion object {
|
|
26
|
+
internal const val LOAD_PAYMENT_DATA_REQUEST_CODE = 414243
|
|
27
|
+
|
|
28
|
+
internal fun createPaymentRequest(activity: AppCompatActivity, factory: GooglePayJsonFactory, googlePayParams: ReadableMap): Task<PaymentData> {
|
|
29
|
+
val transactionInfo = buildTransactionInfo(googlePayParams)
|
|
30
|
+
val merchantInfo = GooglePayJsonFactory.MerchantInfo(googlePayParams.getString("merchantName").orEmpty())
|
|
31
|
+
val billingAddressParameters = buildBillingAddressParameters(googlePayParams.getMap("billingAddressConfig"))
|
|
32
|
+
val shippingAddressParameters = buildShippingAddressParameters(googlePayParams.getMap("shippingAddressConfig"))
|
|
33
|
+
|
|
34
|
+
val request = factory.createPaymentDataRequest(
|
|
35
|
+
transactionInfo = transactionInfo,
|
|
36
|
+
merchantInfo = merchantInfo,
|
|
37
|
+
billingAddressParameters = billingAddressParameters,
|
|
38
|
+
shippingAddressParameters = shippingAddressParameters,
|
|
39
|
+
isEmailRequired = googlePayParams.getBooleanOr("isEmailRequired", false),
|
|
40
|
+
allowCreditCards = googlePayParams.getBooleanOr("allowCreditCards", true)
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
val walletOptions = Wallet.WalletOptions.Builder()
|
|
44
|
+
.setEnvironment(if (googlePayParams.getBoolean("testEnv")) WalletConstants.ENVIRONMENT_TEST else WalletConstants.ENVIRONMENT_PRODUCTION)
|
|
45
|
+
.build()
|
|
46
|
+
return Wallet.getPaymentsClient(activity, walletOptions).loadPaymentData(PaymentDataRequest.fromJson(request.toString()))
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@Suppress("UNCHECKED_CAST")
|
|
50
|
+
private fun buildShippingAddressParameters(params: ReadableMap?): GooglePayJsonFactory.ShippingAddressParameters {
|
|
51
|
+
val isPhoneNumberRequired = params?.getBooleanOr("isPhoneNumberRequired", false)
|
|
52
|
+
val isRequired = params?.getBooleanOr("isRequired", false)
|
|
53
|
+
val allowedCountryCodes = if (params?.hasKey("allowedCountryCodes") == true)
|
|
54
|
+
params.getArray("allowedCountryCodes") as Array<String> else Locale.getISOCountries()
|
|
55
|
+
|
|
56
|
+
return GooglePayJsonFactory.ShippingAddressParameters(
|
|
57
|
+
isRequired = isRequired ?: false,
|
|
58
|
+
allowedCountryCodes = allowedCountryCodes.toSet(),
|
|
59
|
+
phoneNumberRequired = isPhoneNumberRequired ?: false
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private fun buildBillingAddressParameters(params: ReadableMap?): GooglePayJsonFactory.BillingAddressParameters {
|
|
64
|
+
val isRequired = params?.getBooleanOr("isRequired", false)
|
|
65
|
+
val isPhoneNumberRequired = params?.getBooleanOr("isPhoneNumberRequired", false)
|
|
66
|
+
val format = when (params?.getString("format").orEmpty()) {
|
|
67
|
+
"FULL" -> GooglePayJsonFactory.BillingAddressParameters.Format.Full
|
|
68
|
+
"MIN" -> GooglePayJsonFactory.BillingAddressParameters.Format.Min
|
|
69
|
+
else -> GooglePayJsonFactory.BillingAddressParameters.Format.Min
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return GooglePayJsonFactory.BillingAddressParameters(
|
|
73
|
+
isRequired = isRequired ?: false,
|
|
74
|
+
format = format,
|
|
75
|
+
isPhoneNumberRequired = isPhoneNumberRequired ?: false
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
private fun buildTransactionInfo(params: ReadableMap): GooglePayJsonFactory.TransactionInfo {
|
|
80
|
+
val countryCode = params.getString("merchantCountryCode").orEmpty()
|
|
81
|
+
val currencyCode = params.getString("currencyCode") ?: "USD"
|
|
82
|
+
val amount = params.getInt("amount")
|
|
83
|
+
|
|
84
|
+
return GooglePayJsonFactory.TransactionInfo(
|
|
85
|
+
currencyCode = currencyCode,
|
|
86
|
+
totalPriceStatus = GooglePayJsonFactory.TransactionInfo.TotalPriceStatus.Estimated,
|
|
87
|
+
countryCode = countryCode,
|
|
88
|
+
totalPrice = amount,
|
|
89
|
+
checkoutOption = GooglePayJsonFactory.TransactionInfo.CheckoutOption.Default
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
internal fun createPaymentMethod(request: Task<PaymentData>, activity: AppCompatActivity) {
|
|
94
|
+
AutoResolveHelper.resolveTask(
|
|
95
|
+
request,
|
|
96
|
+
activity,
|
|
97
|
+
LOAD_PAYMENT_DATA_REQUEST_CODE
|
|
98
|
+
)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
internal fun handleGooglePaymentMethodResult(resultCode: Int, data: Intent?, stripe: Stripe, promise: Promise) {
|
|
102
|
+
when (resultCode) {
|
|
103
|
+
Activity.RESULT_OK -> {
|
|
104
|
+
data?.let { intent ->
|
|
105
|
+
PaymentData.getFromIntent(intent)?.let {
|
|
106
|
+
resolveWithPaymentMethodAndToken(it, stripe, promise)
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
Activity.RESULT_CANCELED -> {
|
|
111
|
+
promise.resolve(createError(ErrorType.Canceled.toString(), "The payment has been canceled"))
|
|
112
|
+
}
|
|
113
|
+
AutoResolveHelper.RESULT_ERROR -> {
|
|
114
|
+
AutoResolveHelper.getStatusFromIntent(data)?.let {
|
|
115
|
+
promise.resolve(createError(ErrorType.Failed.toString(), it.statusMessage))
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private fun resolveWithPaymentMethodAndToken(paymentData: PaymentData, stripe: Stripe, promise: Promise) {
|
|
122
|
+
val paymentInformation = JSONObject(paymentData.toJson())
|
|
123
|
+
val googlePayResult = GooglePayResult.fromJson(paymentInformation)
|
|
124
|
+
val promiseResult = WritableNativeMap()
|
|
125
|
+
googlePayResult.token?.let {
|
|
126
|
+
promiseResult.putMap("token", mapFromToken(it))
|
|
127
|
+
}
|
|
128
|
+
stripe.createPaymentMethod(
|
|
129
|
+
PaymentMethodCreateParams.createFromGooglePay(paymentInformation),
|
|
130
|
+
callback = object : ApiResultCallback<PaymentMethod> {
|
|
131
|
+
override fun onError(e: Exception) {
|
|
132
|
+
promise.resolve(createError("Failed", e))
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
override fun onSuccess(result: PaymentMethod) {
|
|
136
|
+
promiseResult.putMap("paymentMethod", mapFromPaymentMethod(result))
|
|
137
|
+
promise.resolve(promiseResult)
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
)
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
@@ -13,6 +13,7 @@ import com.reactnativestripesdk.utils.*
|
|
|
13
13
|
import com.stripe.android.*
|
|
14
14
|
import com.stripe.android.core.ApiVersion
|
|
15
15
|
import com.stripe.android.core.AppInfo
|
|
16
|
+
import com.stripe.android.googlepaylauncher.GooglePayLauncher
|
|
16
17
|
import com.stripe.android.model.*
|
|
17
18
|
import com.stripe.android.payments.bankaccount.CollectBankAccountConfiguration
|
|
18
19
|
import com.stripe.android.paymentsheet.PaymentSheet
|
|
@@ -38,6 +39,7 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
38
39
|
|
|
39
40
|
private var confirmPromise: Promise? = null
|
|
40
41
|
private var confirmPaymentClientSecret: String? = null
|
|
42
|
+
private var createPlatformPayPaymentMethodPromise: Promise? = null
|
|
41
43
|
|
|
42
44
|
private var paymentSheetFragment: PaymentSheetFragment? = null
|
|
43
45
|
private var googlePayFragment: GooglePayFragment? = null
|
|
@@ -53,20 +55,31 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
53
55
|
PaymentLauncherFragment.TAG,
|
|
54
56
|
CollectBankAccountLauncherFragment.TAG,
|
|
55
57
|
FinancialConnectionsSheetFragment.TAG,
|
|
56
|
-
AddressLauncherFragment.TAG
|
|
58
|
+
AddressLauncherFragment.TAG,
|
|
59
|
+
GooglePayLauncherFragment.TAG
|
|
57
60
|
)
|
|
58
61
|
|
|
59
62
|
private val mActivityEventListener = object : BaseActivityEventListener() {
|
|
60
63
|
override fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?) {
|
|
61
64
|
if (::stripe.isInitialized) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
+
}
|
|
67
82
|
}
|
|
68
|
-
} catch (e: java.lang.Exception) {
|
|
69
|
-
Log.d("Error", e.localizedMessage ?: e.toString())
|
|
70
83
|
}
|
|
71
84
|
}
|
|
72
85
|
}
|
|
@@ -495,6 +508,26 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
495
508
|
}
|
|
496
509
|
}
|
|
497
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
|
+
|
|
498
531
|
@ReactMethod
|
|
499
532
|
fun isGooglePaySupported(params: ReadableMap?, promise: Promise) {
|
|
500
533
|
val fragment = GooglePayPaymentMethodLauncherFragment(
|
|
@@ -551,6 +584,62 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
551
584
|
}
|
|
552
585
|
}
|
|
553
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
|
+
|
|
554
643
|
@ReactMethod
|
|
555
644
|
fun createGooglePayPaymentMethod(params: ReadableMap, promise: Promise) {
|
|
556
645
|
val currencyCode = getValOr(params, "currencyCode", null) ?: run {
|
|
@@ -564,6 +653,23 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
564
653
|
googlePayFragment?.createPaymentMethod(currencyCode, amount, promise)
|
|
565
654
|
}
|
|
566
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
|
+
|
|
567
673
|
@ReactMethod
|
|
568
674
|
fun canAddCardToWallet(params: ReadableMap, promise: Promise) {
|
|
569
675
|
val last4 = getValOr(params, "cardLastFour", null) ?: run {
|
|
@@ -740,6 +846,15 @@ class StripeSdkModule(reactContext: ReactApplicationContext) : ReactContextBaseJ
|
|
|
740
846
|
}
|
|
741
847
|
}
|
|
742
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
|
+
|
|
743
858
|
/**
|
|
744
859
|
* Safely get and cast the current activity as an AppCompatActivity. If that fails, the promise
|
|
745
860
|
* provided will be resolved with an error message instructing the user to retry the method.
|