@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
AccessibilityProps,
|
|
4
|
+
requireNativeComponent,
|
|
5
|
+
NativeSyntheticEvent,
|
|
6
|
+
} from 'react-native';
|
|
7
|
+
import type {
|
|
8
|
+
PaymentSheet,
|
|
9
|
+
AddressDetails,
|
|
10
|
+
StripeError,
|
|
11
|
+
AddressSheetError,
|
|
12
|
+
} from '../types';
|
|
13
|
+
|
|
14
|
+
const AddressSheetNative = requireNativeComponent<any>('AddressSheetView');
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Props
|
|
18
|
+
*/
|
|
19
|
+
export interface Props extends AccessibilityProps {
|
|
20
|
+
/** Whether the sheet is visible. Defaults to false. */
|
|
21
|
+
visible: boolean;
|
|
22
|
+
/** Controls how the modal is presented (after animation). iOS only. Defaults to `popover`. */
|
|
23
|
+
presentationStyle?: 'fullscreen' | 'popover';
|
|
24
|
+
/** Controls how the modal animates. iOS only. */
|
|
25
|
+
animationStyle?: 'flip' | 'curl' | 'slide' | 'dissolve';
|
|
26
|
+
/** Configuration for the look and feel of the UI. */
|
|
27
|
+
appearance?: PaymentSheet.AppearanceParams;
|
|
28
|
+
/** The values to prepopulate the sheet's fields with. */
|
|
29
|
+
defaultValues?: AddressDetails;
|
|
30
|
+
/** Configuration for additional fields besides the physical address */
|
|
31
|
+
additionalFields?: {
|
|
32
|
+
/** Determines whether the phone number is hidden, required, or optional. Defaults to hidden. */
|
|
33
|
+
phoneNumber?: 'hidden' | 'optional' | 'required';
|
|
34
|
+
/** The label of a checkbox displayed below other fields. If null or undefined, the checkbox is not displayed. */
|
|
35
|
+
checkboxLabel?: string;
|
|
36
|
+
};
|
|
37
|
+
/** A list of two-letter country codes representing countries the customers can select. If the list is empty (the default), we display all countries. */
|
|
38
|
+
allowedCountries?: Array<string>;
|
|
39
|
+
/** A list of two-letter country codes representing countries that support address autocomplete. Defaults to a list of countries that Stripe has audited to ensure a good autocomplete experience. */
|
|
40
|
+
autocompleteCountries?: Array<string>;
|
|
41
|
+
/** The title of the primary button displayed at the bottom of the screen. Defaults to "Save Address". */
|
|
42
|
+
primaryButtonTitle?: string;
|
|
43
|
+
/** Title displayed at the top of the sheet. Defaults to "Address". */
|
|
44
|
+
sheetTitle?: string;
|
|
45
|
+
/** Android only. Google Places api key used to provide autocomplete suggestions. When null, autocomplete is disabled on Android. */
|
|
46
|
+
googlePlacesApiKey?: string;
|
|
47
|
+
/** Called when the user submits their information */
|
|
48
|
+
onSubmit: (result: CollectAddressResult) => void;
|
|
49
|
+
/** Called when the user taps the button to close the sheet before submitting their information, or when an error occurs. */
|
|
50
|
+
onError: (error: StripeError<AddressSheetError>) => void;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export type CollectAddressResult = Required<AddressDetails>;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* <AddressSheet
|
|
61
|
+
*
|
|
62
|
+
* />
|
|
63
|
+
* ```
|
|
64
|
+
* @param __namedParameters Props
|
|
65
|
+
* @returns JSX.Element
|
|
66
|
+
* @category ReactComponents
|
|
67
|
+
*/
|
|
68
|
+
export function AddressSheet({ onSubmit, onError, ...props }: Props) {
|
|
69
|
+
return (
|
|
70
|
+
<AddressSheetNative
|
|
71
|
+
{...props}
|
|
72
|
+
onSubmitAction={(value: NativeSyntheticEvent<CollectAddressResult>) =>
|
|
73
|
+
onSubmit(value.nativeEvent)
|
|
74
|
+
}
|
|
75
|
+
onErrorAction={(
|
|
76
|
+
value: NativeSyntheticEvent<{
|
|
77
|
+
error: StripeError<AddressSheetError>;
|
|
78
|
+
}>
|
|
79
|
+
) => onError(value.nativeEvent.error)}
|
|
80
|
+
/>
|
|
81
|
+
);
|
|
82
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
AccessibilityProps,
|
|
4
|
+
StyleProp,
|
|
5
|
+
ViewStyle,
|
|
6
|
+
requireNativeComponent,
|
|
7
|
+
TouchableOpacity,
|
|
8
|
+
StyleSheet,
|
|
9
|
+
Platform,
|
|
10
|
+
NativeSyntheticEvent,
|
|
11
|
+
} from 'react-native';
|
|
12
|
+
import {
|
|
13
|
+
ButtonType,
|
|
14
|
+
ButtonStyle,
|
|
15
|
+
ShippingMethod,
|
|
16
|
+
ShippingContact,
|
|
17
|
+
} from '../types/PlatformPay';
|
|
18
|
+
|
|
19
|
+
const GooglePayButtonNative = requireNativeComponent<any>('GooglePayButton');
|
|
20
|
+
const ApplePayButtonNative = requireNativeComponent<any>('ApplePayButton');
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* PlatformPayButton Component Props
|
|
24
|
+
*/
|
|
25
|
+
export interface Props extends AccessibilityProps {
|
|
26
|
+
/** Sets the text displayed by the button. */
|
|
27
|
+
type?: ButtonType;
|
|
28
|
+
/** iOS only. Sets the coloring of the button. */
|
|
29
|
+
appearance?: ButtonStyle;
|
|
30
|
+
/** iOS only. Sets the border radius of the button. */
|
|
31
|
+
borderRadius?: number;
|
|
32
|
+
/** Function called whenever the button is pressed. */
|
|
33
|
+
onPress(): void;
|
|
34
|
+
/** Set to `true` to disable the button from being pressed & apply a slight opacity to indicate that it is unpressable. Defaults to false. */
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* This callback is triggered whenever the user selects a shipping method in the Apple Pay sheet.
|
|
38
|
+
* It receives one parameter: an `event` object with a `shippingMethod` field. You MUST
|
|
39
|
+
* update the Apple Pay sheet in your callback using the updatePlatformPaySheet function, otherwise the
|
|
40
|
+
* Apple Pay sheet will hang and the payment flow will automatically cancel.
|
|
41
|
+
*/
|
|
42
|
+
onShippingMethodSelected?: (event: {
|
|
43
|
+
shippingMethod: ShippingMethod;
|
|
44
|
+
}) => void;
|
|
45
|
+
/**
|
|
46
|
+
* This callback is triggered whenever the user selects a shipping contact in the Apple Pay sheet.
|
|
47
|
+
* It receives one parameter: an `event` object with a `shippingContact` field. You MUST
|
|
48
|
+
* update the Apple Pay sheet in your callback using the updatePlatformPaySheet function, otherwise the
|
|
49
|
+
* Apple Pay sheet will hang and the payment flow will automatically cancel.
|
|
50
|
+
*/
|
|
51
|
+
onShippingContactSelected?: (event: {
|
|
52
|
+
shippingContact: ShippingContact;
|
|
53
|
+
}) => void;
|
|
54
|
+
/**
|
|
55
|
+
* This callback is triggered whenever the user inputs a coupon code in the Apple Pay sheet.
|
|
56
|
+
* It receives one parameter: an `event` object with a `couponCode` field. You MUST
|
|
57
|
+
* update the Apple Pay sheet in your callback using the updatePlatformPaySheet function, otherwise the
|
|
58
|
+
* Apple Pay sheet will hang and the payment flow will automatically cancel.
|
|
59
|
+
*/
|
|
60
|
+
onCouponCodeEntered?: (event: { couponCode: string }) => void;
|
|
61
|
+
testID?: string;
|
|
62
|
+
style?: StyleProp<ViewStyle>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* PlatformPayButton Component. Display the platform-specific native wallet pay button: Apple Pay on iOS, and Google Pay on Android.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* <PlatformPayButton
|
|
71
|
+
* onPress={pay}
|
|
72
|
+
* type={PlatformPay.ButtonType.Subscribe}
|
|
73
|
+
* appearance={PlatformPay.ButtonStyle.WhiteOutline}
|
|
74
|
+
* borderRadius={4}
|
|
75
|
+
* disabled={!isApplePaySupported}
|
|
76
|
+
* style={styles.payButton}
|
|
77
|
+
* />
|
|
78
|
+
* ```
|
|
79
|
+
* @param __namedParameters Props
|
|
80
|
+
* @returns JSX.Element
|
|
81
|
+
* @category ReactComponents
|
|
82
|
+
*/
|
|
83
|
+
export function PlatformPayButton({
|
|
84
|
+
type = ButtonType.Default,
|
|
85
|
+
appearance = ButtonStyle.Automatic,
|
|
86
|
+
onPress,
|
|
87
|
+
disabled,
|
|
88
|
+
borderRadius,
|
|
89
|
+
onShippingMethodSelected,
|
|
90
|
+
onShippingContactSelected,
|
|
91
|
+
onCouponCodeEntered,
|
|
92
|
+
...props
|
|
93
|
+
}: Props) {
|
|
94
|
+
const shippingMethodCallback = onShippingMethodSelected
|
|
95
|
+
? (
|
|
96
|
+
value: NativeSyntheticEvent<{
|
|
97
|
+
shippingMethod: ShippingMethod;
|
|
98
|
+
}>
|
|
99
|
+
) => {
|
|
100
|
+
onShippingMethodSelected && onShippingMethodSelected(value.nativeEvent);
|
|
101
|
+
}
|
|
102
|
+
: undefined;
|
|
103
|
+
|
|
104
|
+
const shippingContactCallback = onShippingContactSelected
|
|
105
|
+
? (
|
|
106
|
+
value: NativeSyntheticEvent<{
|
|
107
|
+
shippingContact: ShippingContact;
|
|
108
|
+
}>
|
|
109
|
+
) => {
|
|
110
|
+
onShippingContactSelected(value.nativeEvent);
|
|
111
|
+
}
|
|
112
|
+
: undefined;
|
|
113
|
+
|
|
114
|
+
const couponCodeCallback = onCouponCodeEntered
|
|
115
|
+
? (
|
|
116
|
+
value: NativeSyntheticEvent<{
|
|
117
|
+
couponCode: string;
|
|
118
|
+
}>
|
|
119
|
+
) => {
|
|
120
|
+
onCouponCodeEntered && onCouponCodeEntered(value.nativeEvent);
|
|
121
|
+
}
|
|
122
|
+
: undefined;
|
|
123
|
+
|
|
124
|
+
return (
|
|
125
|
+
<TouchableOpacity
|
|
126
|
+
disabled={disabled}
|
|
127
|
+
activeOpacity={disabled ? 0.3 : 1}
|
|
128
|
+
onPress={onPress}
|
|
129
|
+
style={disabled ? styles.disabled : styles.notDisabled}
|
|
130
|
+
>
|
|
131
|
+
{Platform.OS === 'ios' ? (
|
|
132
|
+
<ApplePayButtonNative
|
|
133
|
+
type={type}
|
|
134
|
+
buttonStyle={appearance}
|
|
135
|
+
borderRadius={borderRadius}
|
|
136
|
+
disabled={disabled}
|
|
137
|
+
onShippingMethodSelectedAction={shippingMethodCallback}
|
|
138
|
+
onShippingContactSelectedAction={shippingContactCallback}
|
|
139
|
+
onCouponCodeEnteredAction={couponCodeCallback}
|
|
140
|
+
{...props}
|
|
141
|
+
/>
|
|
142
|
+
) : (
|
|
143
|
+
<GooglePayButtonNative type={type} {...props} />
|
|
144
|
+
)}
|
|
145
|
+
</TouchableOpacity>
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const styles = StyleSheet.create({
|
|
150
|
+
disabled: {
|
|
151
|
+
flex: 0,
|
|
152
|
+
opacity: 0.3,
|
|
153
|
+
},
|
|
154
|
+
notDisabled: {
|
|
155
|
+
flex: 0,
|
|
156
|
+
},
|
|
157
|
+
});
|
package/src/functions.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
ApplePay,
|
|
6
6
|
ApplePayError,
|
|
7
7
|
ApplePayResult,
|
|
8
|
+
PlatformPayError,
|
|
8
9
|
ConfirmPaymentResult,
|
|
9
10
|
ConfirmPaymentSheetPaymentResult,
|
|
10
11
|
SetupIntent,
|
|
@@ -36,6 +37,7 @@ import {
|
|
|
36
37
|
CanAddCardToWalletParams,
|
|
37
38
|
CanAddCardToWalletResult,
|
|
38
39
|
FinancialConnections,
|
|
40
|
+
PlatformPay,
|
|
39
41
|
} from './types';
|
|
40
42
|
import { Platform } from 'react-native';
|
|
41
43
|
|
|
@@ -174,10 +176,12 @@ export const confirmPayment = async (
|
|
|
174
176
|
}
|
|
175
177
|
};
|
|
176
178
|
|
|
179
|
+
/** @deprecated Use `isPlatformPaySupported` instead. */
|
|
177
180
|
export const isApplePaySupported = async (): Promise<boolean> => {
|
|
178
181
|
return isiOS && (await NativeStripeSdk.isApplePaySupported());
|
|
179
182
|
};
|
|
180
183
|
|
|
184
|
+
/** @deprecated Use `confirmPlatformPaySetupIntent`, `confirmPlatformPayPayment`, or `createPlatformPayPaymentMethod` instead. */
|
|
181
185
|
export const presentApplePay = async (
|
|
182
186
|
params: ApplePay.PresentParams
|
|
183
187
|
): Promise<ApplePayResult> => {
|
|
@@ -207,6 +211,7 @@ export const presentApplePay = async (
|
|
|
207
211
|
}
|
|
208
212
|
};
|
|
209
213
|
|
|
214
|
+
/** @deprecated Use `updatePlatformPaySheet` instead. */
|
|
210
215
|
export const updateApplePaySummaryItems = async (
|
|
211
216
|
summaryItems: ApplePay.CartSummaryItem[],
|
|
212
217
|
errorAddressFields: Array<{
|
|
@@ -237,6 +242,7 @@ export const updateApplePaySummaryItems = async (
|
|
|
237
242
|
}
|
|
238
243
|
};
|
|
239
244
|
|
|
245
|
+
/** @deprecated Use `confirmPlatformPaySetupIntent` or `confirmPlatformPayPayment` instead. */
|
|
240
246
|
export const confirmApplePayPayment = async (
|
|
241
247
|
clientSecret: string
|
|
242
248
|
): Promise<{ error?: StripeError<ApplePayError> }> => {
|
|
@@ -464,6 +470,7 @@ export const resetPaymentSheetCustomer = async (): Promise<null> => {
|
|
|
464
470
|
return await NativeStripeSdk.resetPaymentSheetCustomer();
|
|
465
471
|
};
|
|
466
472
|
|
|
473
|
+
/** @deprecated Use `isPlatformPaySupported` instead. */
|
|
467
474
|
export const isGooglePaySupported = async (
|
|
468
475
|
params?: GooglePay.IsSupportedParams
|
|
469
476
|
): Promise<boolean> => {
|
|
@@ -472,6 +479,7 @@ export const isGooglePaySupported = async (
|
|
|
472
479
|
);
|
|
473
480
|
};
|
|
474
481
|
|
|
482
|
+
/** @deprecated Use `confirmPlatformPaySetupIntent`, `confirmPlatformPayPayment`, or `createPlatformPayPaymentMethod` instead. */
|
|
475
483
|
export const initGooglePay = async (
|
|
476
484
|
params: GooglePay.InitParams
|
|
477
485
|
): Promise<GooglePayInitResult> => {
|
|
@@ -490,6 +498,7 @@ export const initGooglePay = async (
|
|
|
490
498
|
}
|
|
491
499
|
};
|
|
492
500
|
|
|
501
|
+
/** @deprecated Use `confirmPlatformPaySetupIntent`, `confirmPlatformPayPayment`, or `createPlatformPayPaymentMethod` instead. */
|
|
493
502
|
export const presentGooglePay = async (
|
|
494
503
|
params: GooglePay.PresentParams
|
|
495
504
|
): Promise<PayWithGooglePayResult> => {
|
|
@@ -508,6 +517,7 @@ export const presentGooglePay = async (
|
|
|
508
517
|
}
|
|
509
518
|
};
|
|
510
519
|
|
|
520
|
+
/** @deprecated Use `createPlatformPayPaymentMethod` instead. */
|
|
511
521
|
export const createGooglePayPaymentMethod = async (
|
|
512
522
|
params: GooglePay.CreatePaymentMethodParams
|
|
513
523
|
): Promise<CreateGooglePayPaymentMethodResult> => {
|
|
@@ -529,6 +539,7 @@ export const createGooglePayPaymentMethod = async (
|
|
|
529
539
|
}
|
|
530
540
|
};
|
|
531
541
|
|
|
542
|
+
/** @deprecated Use `openNativePaySetup` instead. */
|
|
532
543
|
export const openApplePaySetup = async (): Promise<OpenApplePaySetupResult> => {
|
|
533
544
|
try {
|
|
534
545
|
const { error } = await NativeStripeSdk.openApplePaySetup();
|
|
@@ -654,6 +665,12 @@ export const collectFinancialConnectionsAccounts = async (
|
|
|
654
665
|
}
|
|
655
666
|
};
|
|
656
667
|
|
|
668
|
+
/**
|
|
669
|
+
* Check if the app & device support adding this card to the native wallet.
|
|
670
|
+
* @param params An object containing fields for `primaryAccountIdentifier`, `cardLastFour`, and `testEnv`.
|
|
671
|
+
*
|
|
672
|
+
* @returns A promise resolving to an object of type CanAddCardToWalletResult. Check the `canAddCard` field, if it's true, you should show the `<AddToWalletButton />`
|
|
673
|
+
*/
|
|
657
674
|
export const canAddCardToWallet = async (
|
|
658
675
|
params: CanAddCardToWalletParams
|
|
659
676
|
): Promise<CanAddCardToWalletResult> => {
|
|
@@ -677,6 +694,7 @@ export const canAddCardToWallet = async (
|
|
|
677
694
|
}
|
|
678
695
|
};
|
|
679
696
|
|
|
697
|
+
/** @deprecated Please use `canAddCardToWallet` instead. */
|
|
680
698
|
export const isCardInWallet = async (params: {
|
|
681
699
|
cardLastFour: string;
|
|
682
700
|
}): Promise<IsCardInWalletResult> => {
|
|
@@ -702,3 +720,166 @@ export const isCardInWallet = async (params: {
|
|
|
702
720
|
};
|
|
703
721
|
|
|
704
722
|
export const Constants = NativeStripeSdk.getConstants();
|
|
723
|
+
|
|
724
|
+
/**
|
|
725
|
+
* Check if the relevant native wallet (Apple Pay on iOS, Google Pay on Android) is supported.
|
|
726
|
+
* @returns A boolean indicating whether or not the native wallet is supported.
|
|
727
|
+
*/
|
|
728
|
+
export const isPlatformPaySupported = async (params?: {
|
|
729
|
+
googlePay?: PlatformPay.IsGooglePaySupportedParams;
|
|
730
|
+
}): Promise<boolean> => {
|
|
731
|
+
return await NativeStripeSdk.isPlatformPaySupported(params ?? {});
|
|
732
|
+
};
|
|
733
|
+
|
|
734
|
+
/**
|
|
735
|
+
* Launches the relevant native wallet sheet (Apple Pay on iOS, Google Pay on Android) in order to confirm a Stripe [SetupIntent](https://stripe.com/docs/api/setup_intents).
|
|
736
|
+
* @param clientSecret The client secret of the SetupIntent.
|
|
737
|
+
* @param params an object describing the Apple Pay and Google Pay configurations.
|
|
738
|
+
* @returns An object with an error field if something went wrong or the flow was cancelled, otherwise an object with both `setupIntent` and `paymentMethod` fields.
|
|
739
|
+
*/
|
|
740
|
+
export const confirmPlatformPaySetupIntent = async (
|
|
741
|
+
clientSecret: string,
|
|
742
|
+
params: PlatformPay.ConfirmParams
|
|
743
|
+
): Promise<PlatformPay.ConfirmSetupIntentResult> => {
|
|
744
|
+
try {
|
|
745
|
+
const { error, setupIntent } = (await NativeStripeSdk.confirmPlatformPay(
|
|
746
|
+
clientSecret,
|
|
747
|
+
params,
|
|
748
|
+
false
|
|
749
|
+
)) as PlatformPay.ConfirmSetupIntentResult;
|
|
750
|
+
if (error) {
|
|
751
|
+
return {
|
|
752
|
+
error,
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
return {
|
|
756
|
+
setupIntent: setupIntent!,
|
|
757
|
+
};
|
|
758
|
+
} catch (error: any) {
|
|
759
|
+
return {
|
|
760
|
+
error,
|
|
761
|
+
};
|
|
762
|
+
}
|
|
763
|
+
};
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Launches the relevant native wallet sheet (Apple Pay on iOS, Google Pay on Android) in order to confirm a Stripe [PaymentIntent](https://stripe.com/docs/api/payment_intents).
|
|
767
|
+
* @param clientSecret The client secret of the PaymentIntent.
|
|
768
|
+
* @param params an object describing the Apple Pay and Google Pay configurations.
|
|
769
|
+
* @returns An object with an error field if something went wrong or the flow was cancelled, otherwise an object with both `paymentIntent` and `paymentMethod` fields.
|
|
770
|
+
*/
|
|
771
|
+
export const confirmPlatformPayPayment = async (
|
|
772
|
+
clientSecret: string,
|
|
773
|
+
params: PlatformPay.ConfirmParams
|
|
774
|
+
): Promise<PlatformPay.ConfirmPaymentResult> => {
|
|
775
|
+
try {
|
|
776
|
+
const { error, paymentIntent } = (await NativeStripeSdk.confirmPlatformPay(
|
|
777
|
+
clientSecret,
|
|
778
|
+
params,
|
|
779
|
+
true
|
|
780
|
+
)) as PlatformPay.ConfirmPaymentResult;
|
|
781
|
+
if (error) {
|
|
782
|
+
return {
|
|
783
|
+
error,
|
|
784
|
+
};
|
|
785
|
+
}
|
|
786
|
+
return {
|
|
787
|
+
paymentIntent: paymentIntent!,
|
|
788
|
+
};
|
|
789
|
+
} catch (error: any) {
|
|
790
|
+
return {
|
|
791
|
+
error,
|
|
792
|
+
};
|
|
793
|
+
}
|
|
794
|
+
};
|
|
795
|
+
|
|
796
|
+
/**
|
|
797
|
+
* iOS only, this will always return false on Android. Dismisses the Apple Pay sheet if it is open.
|
|
798
|
+
* @returns A boolean indicating whether or not the sheet was successfully closed. Will return false if the Apple Pay sheet was not open.
|
|
799
|
+
*/
|
|
800
|
+
export const dismissPlatformPay = async (): Promise<boolean> => {
|
|
801
|
+
if (Platform.OS !== 'ios') {
|
|
802
|
+
return false;
|
|
803
|
+
}
|
|
804
|
+
try {
|
|
805
|
+
const didDismiss = await NativeStripeSdk.dismissPlatformPay();
|
|
806
|
+
return didDismiss;
|
|
807
|
+
} catch (error: any) {
|
|
808
|
+
return false;
|
|
809
|
+
}
|
|
810
|
+
};
|
|
811
|
+
|
|
812
|
+
/**
|
|
813
|
+
* Launches the relevant native wallet sheet (Apple Pay on iOS, Google Pay on Android) in order to create a Stripe [PaymentMethod](https://stripe.com/docs/api/payment_methods) and [token](https://stripe.com/docs/api/tokens).
|
|
814
|
+
* @param params an object describing the Apple Pay and Google Pay configurations.
|
|
815
|
+
* @returns An object with an error field if something went wrong or the flow was cancelled, otherwise an object with both `paymentMethod` and `token` fields.
|
|
816
|
+
*/
|
|
817
|
+
export const createPlatformPayPaymentMethod = async (
|
|
818
|
+
params: PlatformPay.PaymentMethodParams
|
|
819
|
+
): Promise<PlatformPay.PaymentMethodResult> => {
|
|
820
|
+
try {
|
|
821
|
+
const { error, paymentMethod, token } =
|
|
822
|
+
await NativeStripeSdk.createPlatformPayPaymentMethod(params);
|
|
823
|
+
if (error) {
|
|
824
|
+
return {
|
|
825
|
+
error,
|
|
826
|
+
};
|
|
827
|
+
}
|
|
828
|
+
return {
|
|
829
|
+
paymentMethod: paymentMethod!,
|
|
830
|
+
token: token!,
|
|
831
|
+
};
|
|
832
|
+
} catch (error: any) {
|
|
833
|
+
return {
|
|
834
|
+
error,
|
|
835
|
+
};
|
|
836
|
+
}
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
/**
|
|
840
|
+
* iOS only. Update different items on the Apple Pay sheet, including the summary items, the shipping methods, and any errors shown. iOS only, this is a no-op on Android.
|
|
841
|
+
* @param params an object describing the Apple Pay configuration, with the following fields:
|
|
842
|
+
* - cartItems An array of payment summary items to display in the Apple Pay sheet.
|
|
843
|
+
* - shippingMethods An array of shipping methods to display in the Apple Pay sheet.
|
|
844
|
+
* - errors An array of errors associated with the user's input that must be corrected to proceed with payment. These errors will be shown in the Apple Pay sheet.
|
|
845
|
+
*
|
|
846
|
+
* @returns An object with an optional 'error' field, which is only populated if something went wrong.
|
|
847
|
+
*/
|
|
848
|
+
export const updatePlatformPaySheet = async (params: {
|
|
849
|
+
applePay: {
|
|
850
|
+
cartItems: Array<PlatformPay.CartSummaryItem>;
|
|
851
|
+
shippingMethods: Array<PlatformPay.ShippingMethod>;
|
|
852
|
+
errors: Array<PlatformPay.ApplePaySheetError>;
|
|
853
|
+
};
|
|
854
|
+
}): Promise<{
|
|
855
|
+
error?: StripeError<PlatformPayError>;
|
|
856
|
+
}> => {
|
|
857
|
+
if (Platform.OS !== 'ios') {
|
|
858
|
+
return {};
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
try {
|
|
862
|
+
await NativeStripeSdk.updatePlatformPaySheet(
|
|
863
|
+
params.applePay.cartItems,
|
|
864
|
+
params.applePay.shippingMethods,
|
|
865
|
+
params.applePay.errors
|
|
866
|
+
);
|
|
867
|
+
|
|
868
|
+
return {};
|
|
869
|
+
} catch (error: any) {
|
|
870
|
+
return {
|
|
871
|
+
error,
|
|
872
|
+
};
|
|
873
|
+
}
|
|
874
|
+
};
|
|
875
|
+
|
|
876
|
+
/**
|
|
877
|
+
* iOS only, this is a no-op on Android. Use this method to move users to the interface for adding credit cards.
|
|
878
|
+
* This method transfers control to the Wallet app on iPhone or to the Settings
|
|
879
|
+
* app on iPad. For devices that don’t support Apple Pay, this method does nothing.
|
|
880
|
+
*/
|
|
881
|
+
export const openPlatformPaySetup = async (): Promise<void> => {
|
|
882
|
+
if (Platform.OS === 'ios') {
|
|
883
|
+
await NativeStripeSdk.openApplePaySetup();
|
|
884
|
+
}
|
|
885
|
+
};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
|
+
import type {
|
|
3
|
+
PlatformPay,
|
|
4
|
+
CanAddCardToWalletParams,
|
|
5
|
+
CanAddCardToWalletResult,
|
|
6
|
+
} from '../types';
|
|
7
|
+
import { useStripe } from './useStripe';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* usePlatformPay hook. Access all Apple and Google Pay functionality with this hook.
|
|
11
|
+
*/
|
|
12
|
+
export function usePlatformPay() {
|
|
13
|
+
const {
|
|
14
|
+
isPlatformPaySupported,
|
|
15
|
+
confirmPlatformPaySetupIntent,
|
|
16
|
+
confirmPlatformPayPayment,
|
|
17
|
+
createPlatformPayPaymentMethod,
|
|
18
|
+
dismissPlatformPay,
|
|
19
|
+
updatePlatformPaySheet,
|
|
20
|
+
canAddCardToWallet,
|
|
21
|
+
openPlatformPaySetup,
|
|
22
|
+
} = useStripe();
|
|
23
|
+
const [loading, setLoading] = useState(false);
|
|
24
|
+
|
|
25
|
+
const _isPlatformPaySupported = useCallback(
|
|
26
|
+
async (params?: { googlePay?: PlatformPay.IsGooglePaySupportedParams }) => {
|
|
27
|
+
setLoading(true);
|
|
28
|
+
|
|
29
|
+
const result = await isPlatformPaySupported(params);
|
|
30
|
+
setLoading(false);
|
|
31
|
+
|
|
32
|
+
return result;
|
|
33
|
+
},
|
|
34
|
+
[isPlatformPaySupported]
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const _confirmPlatformPaySetupIntent = useCallback(
|
|
38
|
+
async (clientSecret: string, params: PlatformPay.ConfirmParams) => {
|
|
39
|
+
setLoading(true);
|
|
40
|
+
|
|
41
|
+
const result = await confirmPlatformPaySetupIntent(clientSecret, params);
|
|
42
|
+
setLoading(false);
|
|
43
|
+
|
|
44
|
+
return result;
|
|
45
|
+
},
|
|
46
|
+
[confirmPlatformPaySetupIntent]
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const _confirmPlatformPayPayment = useCallback(
|
|
50
|
+
async (clientSecret: string, params: PlatformPay.ConfirmParams) => {
|
|
51
|
+
setLoading(true);
|
|
52
|
+
|
|
53
|
+
const result = await confirmPlatformPayPayment(clientSecret, params);
|
|
54
|
+
setLoading(false);
|
|
55
|
+
|
|
56
|
+
return result;
|
|
57
|
+
},
|
|
58
|
+
[confirmPlatformPayPayment]
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
const _createPlatformPayPaymentMethod = useCallback(
|
|
62
|
+
async (params: PlatformPay.PaymentMethodParams) => {
|
|
63
|
+
setLoading(true);
|
|
64
|
+
|
|
65
|
+
const result = await createPlatformPayPaymentMethod(params);
|
|
66
|
+
setLoading(false);
|
|
67
|
+
|
|
68
|
+
return result;
|
|
69
|
+
},
|
|
70
|
+
[createPlatformPayPaymentMethod]
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
const _dismissPlatformPay = useCallback(async () => {
|
|
74
|
+
setLoading(true);
|
|
75
|
+
|
|
76
|
+
const result = await dismissPlatformPay();
|
|
77
|
+
setLoading(false);
|
|
78
|
+
|
|
79
|
+
return result;
|
|
80
|
+
}, [dismissPlatformPay]);
|
|
81
|
+
|
|
82
|
+
const _updatePlatformPaySheet = useCallback(
|
|
83
|
+
async (params: {
|
|
84
|
+
applePay: {
|
|
85
|
+
cartItems: Array<PlatformPay.CartSummaryItem>;
|
|
86
|
+
shippingMethods: Array<PlatformPay.ShippingMethod>;
|
|
87
|
+
errors: Array<PlatformPay.ApplePaySheetError>;
|
|
88
|
+
};
|
|
89
|
+
}) => {
|
|
90
|
+
setLoading(true);
|
|
91
|
+
|
|
92
|
+
const result = await updatePlatformPaySheet(params);
|
|
93
|
+
setLoading(false);
|
|
94
|
+
|
|
95
|
+
return result;
|
|
96
|
+
},
|
|
97
|
+
[updatePlatformPaySheet]
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
const _canAddCardToWallet = useCallback(
|
|
101
|
+
async (
|
|
102
|
+
params: CanAddCardToWalletParams
|
|
103
|
+
): Promise<CanAddCardToWalletResult> => {
|
|
104
|
+
setLoading(true);
|
|
105
|
+
|
|
106
|
+
const result = await canAddCardToWallet(params);
|
|
107
|
+
setLoading(false);
|
|
108
|
+
|
|
109
|
+
return result;
|
|
110
|
+
},
|
|
111
|
+
[canAddCardToWallet]
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
const _openPlatformPaySetup = useCallback(async (): Promise<void> => {
|
|
115
|
+
return openPlatformPaySetup();
|
|
116
|
+
}, [openPlatformPaySetup]);
|
|
117
|
+
|
|
118
|
+
return {
|
|
119
|
+
/** Use this boolean to present a spinner or other similar loading screen. `true` if the SDK is currently processing, `false` if it is not. */
|
|
120
|
+
loading,
|
|
121
|
+
/**
|
|
122
|
+
* Check if the relevant native wallet (Apple Pay on iOS, Google Pay on Android) is supported.
|
|
123
|
+
* @returns A boolean indicating whether or not the native wallet is supported.
|
|
124
|
+
*/
|
|
125
|
+
isPlatformPaySupported: _isPlatformPaySupported,
|
|
126
|
+
/**
|
|
127
|
+
* Launches the relevant native wallet sheet (Apple Pay on iOS, Google Pay on Android) in order to confirm a Stripe [SetupIntent](https://stripe.com/docs/api/setup_intents).
|
|
128
|
+
* @param clientSecret The client secret of the SetupIntent.
|
|
129
|
+
* @param params an object describing the Apple Pay and Google Pay configurations.
|
|
130
|
+
* @returns An object with an error field if something went wrong or the flow was cancelled, otherwise an object with both `setupIntent` and `paymentMethod` fields.
|
|
131
|
+
*/
|
|
132
|
+
confirmPlatformPaySetupIntent: _confirmPlatformPaySetupIntent,
|
|
133
|
+
/**
|
|
134
|
+
* Launches the relevant native wallet sheet (Apple Pay on iOS, Google Pay on Android) in order to confirm a Stripe [PaymentIntent](https://stripe.com/docs/api/payment_intents).
|
|
135
|
+
* @param clientSecret The client secret of the PaymentIntent.
|
|
136
|
+
* @param params an object describing the Apple Pay and Google Pay configurations.
|
|
137
|
+
* @returns An object with an error field if something went wrong or the flow was cancelled, otherwise an object with both `paymentIntent` and `paymentMethod` fields.
|
|
138
|
+
*/
|
|
139
|
+
confirmPlatformPayPayment: _confirmPlatformPayPayment,
|
|
140
|
+
/**
|
|
141
|
+
* Launches the relevant native wallet sheet (Apple Pay on iOS, Google Pay on Android) in order to create a Stripe [PaymentMethod](https://stripe.com/docs/api/payment_methods) and [token](https://stripe.com/docs/api/tokens).
|
|
142
|
+
* @param params an object describing the Apple Pay and Google Pay configurations.
|
|
143
|
+
* @returns An object with an error field if something went wrong or the flow was cancelled, otherwise an object with both `paymentMethod` and `token` fields.
|
|
144
|
+
*/
|
|
145
|
+
createPlatformPayPaymentMethod: _createPlatformPayPaymentMethod,
|
|
146
|
+
/**
|
|
147
|
+
* Dismiss the Apple Pay sheet if it is open. iOS only, this is a no-op on Android.
|
|
148
|
+
* @returns A boolean indicating whether or not the sheet was successfully closed. Will return false if the Apple Pay sheet was not open.
|
|
149
|
+
*/
|
|
150
|
+
dismissPlatformPay: _dismissPlatformPay,
|
|
151
|
+
/**
|
|
152
|
+
* Update different items on the Apple Pay sheet, including the summary items, the shipping methods, and any errors shown. iOS only, this is a no-op on Android.
|
|
153
|
+
* @param cartItems An array of payment summary items to display in the Apple Pay sheet.
|
|
154
|
+
* @param shippingMethods An array of shipping methods to display in the Apple Pay sheet.
|
|
155
|
+
* @param errors An array of errors associated with the user's input that must be corrected to proceed with payment. These errors will be shown in the Apple Pay sheet.
|
|
156
|
+
*
|
|
157
|
+
* @returns An object with an optional 'error' field, which is only populated if something went wrong.
|
|
158
|
+
*/
|
|
159
|
+
updatePlatformPaySheet: _updatePlatformPaySheet,
|
|
160
|
+
/**
|
|
161
|
+
* Check if the app & device support adding this card to the native wallet.
|
|
162
|
+
* @param params An object containing fields for `primaryAccountIdentifier`, `cardLastFour`, and `testEnv`.
|
|
163
|
+
*
|
|
164
|
+
* @returns A promise resolving to an object of type CanAddCardToWalletResult. Check the `canAddCard` field, if it's true, you should show the `<AddToWalletButton />`
|
|
165
|
+
*/
|
|
166
|
+
canAddCardToWallet: _canAddCardToWallet,
|
|
167
|
+
/**
|
|
168
|
+
* iOS only, this is a no-op on Android. Use this method to move users to the interface for adding credit cards.
|
|
169
|
+
* This method transfers control to the Wallet app on iPhone or to the Settings
|
|
170
|
+
* app on iPad. For devices that don’t support Apple Pay, this method does nothing.
|
|
171
|
+
*/
|
|
172
|
+
openPlatformPaySetup: _openPlatformPaySetup,
|
|
173
|
+
};
|
|
174
|
+
}
|