@stripe/stripe-react-native 0.21.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.
Files changed (359) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/android/build.gradle +1 -0
  3. package/android/proguard-rules.txt +7 -0
  4. package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +4 -0
  5. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +5 -0
  6. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +46 -8
  7. package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherFragment.kt +132 -0
  8. package/android/src/main/java/com/reactnativestripesdk/GooglePayRequestHelper.kt +144 -0
  9. package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +123 -8
  10. package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +5 -0
  11. package/android/src/main/res/drawable/book_with_googlepay_button_content.xml +14 -0
  12. package/android/src/main/res/drawable/buy_with_googlepay_button_content.xml +14 -0
  13. package/android/src/main/res/drawable/checkout_with_googlepay_button_content.xml +14 -0
  14. package/android/src/main/res/drawable/donate_with_googlepay_button_content.xml +14 -0
  15. package/android/src/main/res/drawable/googlepay_button_background_shape.xml +11 -0
  16. package/android/src/main/res/drawable/googlepay_mark_background.xml +12 -0
  17. package/android/src/main/res/drawable/googlepay_mark_content.xml +27 -0
  18. package/android/src/main/res/drawable/order_with_googlepay_button_content.xml +14 -0
  19. package/android/src/main/res/drawable/pay_with_googlepay_button_content.xml +6 -6
  20. package/android/src/main/res/drawable/subscribe_with_googlepay_button_content.xml +14 -0
  21. package/android/src/main/res/drawable-ar/book_with_googlepay_button_content.xml +14 -0
  22. package/android/src/main/res/drawable-ar/buy_with_googlepay_button_content.xml +14 -0
  23. package/android/src/main/res/drawable-ar/checkout_with_googlepay_button_content.xml +14 -0
  24. package/android/src/main/res/drawable-ar/donate_with_googlepay_button_content.xml +14 -0
  25. package/android/src/main/res/drawable-ar/order_with_googlepay_button_content.xml +14 -0
  26. package/android/src/main/res/drawable-ar/pay_with_googlepay_button_content.xml +6 -6
  27. package/android/src/main/res/drawable-ar/subscribe_with_googlepay_button_content.xml +14 -0
  28. package/android/src/main/res/drawable-bg/book_with_googlepay_button_content.xml +14 -0
  29. package/android/src/main/res/drawable-bg/buy_with_googlepay_button_content.xml +14 -0
  30. package/android/src/main/res/drawable-bg/checkout_with_googlepay_button_content.xml +14 -0
  31. package/android/src/main/res/drawable-bg/donate_with_googlepay_button_content.xml +14 -0
  32. package/android/src/main/res/drawable-bg/order_with_googlepay_button_content.xml +14 -0
  33. package/android/src/main/res/drawable-bg/pay_with_googlepay_button_content.xml +4 -4
  34. package/android/src/main/res/drawable-bg/subscribe_with_googlepay_button_content.xml +14 -0
  35. package/android/src/main/res/drawable-ca/book_with_googlepay_button_content.xml +14 -0
  36. package/android/src/main/res/drawable-ca/buy_with_googlepay_button_content.xml +14 -0
  37. package/android/src/main/res/drawable-ca/checkout_with_googlepay_button_content.xml +14 -0
  38. package/android/src/main/res/drawable-ca/donate_with_googlepay_button_content.xml +14 -0
  39. package/android/src/main/res/drawable-ca/order_with_googlepay_button_content.xml +14 -0
  40. package/android/src/main/res/drawable-ca/pay_with_googlepay_button_content.xml +6 -6
  41. package/android/src/main/res/drawable-ca/subscribe_with_googlepay_button_content.xml +14 -0
  42. package/android/src/main/res/drawable-cs/book_with_googlepay_button_content.xml +14 -0
  43. package/android/src/main/res/drawable-cs/buy_with_googlepay_button_content.xml +14 -0
  44. package/android/src/main/res/drawable-cs/checkout_with_googlepay_button_content.xml +14 -0
  45. package/android/src/main/res/drawable-cs/donate_with_googlepay_button_content.xml +14 -0
  46. package/android/src/main/res/drawable-cs/order_with_googlepay_button_content.xml +14 -0
  47. package/android/src/main/res/drawable-cs/pay_with_googlepay_button_content.xml +6 -6
  48. package/android/src/main/res/drawable-cs/subscribe_with_googlepay_button_content.xml +14 -0
  49. package/android/src/main/res/drawable-da/book_with_googlepay_button_content.xml +14 -0
  50. package/android/src/main/res/drawable-da/buy_with_googlepay_button_content.xml +14 -0
  51. package/android/src/main/res/drawable-da/checkout_with_googlepay_button_content.xml +14 -0
  52. package/android/src/main/res/drawable-da/donate_with_googlepay_button_content.xml +14 -0
  53. package/android/src/main/res/drawable-da/order_with_googlepay_button_content.xml +14 -0
  54. package/android/src/main/res/drawable-da/pay_with_googlepay_button_content.xml +6 -6
  55. package/android/src/main/res/drawable-da/subscribe_with_googlepay_button_content.xml +14 -0
  56. package/android/src/main/res/drawable-de/book_with_googlepay_button_content.xml +15 -0
  57. package/android/src/main/res/drawable-de/buy_with_googlepay_button_content.xml +15 -0
  58. package/android/src/main/res/drawable-de/checkout_with_googlepay_button_content.xml +15 -0
  59. package/android/src/main/res/drawable-de/donate_with_googlepay_button_content.xml +15 -0
  60. package/android/src/main/res/drawable-de/order_with_googlepay_button_content.xml +15 -0
  61. package/android/src/main/res/drawable-de/pay_with_googlepay_button_content.xml +7 -7
  62. package/android/src/main/res/drawable-de/subscribe_with_googlepay_button_content.xml +15 -0
  63. package/android/src/main/res/drawable-el/book_with_googlepay_button_content.xml +14 -0
  64. package/android/src/main/res/drawable-el/buy_with_googlepay_button_content.xml +14 -0
  65. package/android/src/main/res/drawable-el/checkout_with_googlepay_button_content.xml +14 -0
  66. package/android/src/main/res/drawable-el/donate_with_googlepay_button_content.xml +14 -0
  67. package/android/src/main/res/drawable-el/order_with_googlepay_button_content.xml +14 -0
  68. package/android/src/main/res/drawable-el/pay_with_googlepay_button_content.xml +4 -4
  69. package/android/src/main/res/drawable-el/subscribe_with_googlepay_button_content.xml +14 -0
  70. package/android/src/main/res/drawable-et/book_with_googlepay_button_content.xml +15 -0
  71. package/android/src/main/res/drawable-et/buy_with_googlepay_button_content.xml +15 -0
  72. package/android/src/main/res/drawable-et/checkout_with_googlepay_button_content.xml +15 -0
  73. package/android/src/main/res/drawable-et/donate_with_googlepay_button_content.xml +15 -0
  74. package/android/src/main/res/drawable-et/order_with_googlepay_button_content.xml +15 -0
  75. package/android/src/main/res/drawable-et/pay_with_googlepay_button_content.xml +8 -8
  76. package/android/src/main/res/drawable-et/subscribe_with_googlepay_button_content.xml +15 -0
  77. package/android/src/main/res/drawable-fi/book_with_googlepay_button_content.xml +15 -0
  78. package/android/src/main/res/drawable-fi/buy_with_googlepay_button_content.xml +15 -0
  79. package/android/src/main/res/drawable-fi/checkout_with_googlepay_button_content.xml +15 -0
  80. package/android/src/main/res/drawable-fi/donate_with_googlepay_button_content.xml +15 -0
  81. package/android/src/main/res/drawable-fi/order_with_googlepay_button_content.xml +15 -0
  82. package/android/src/main/res/drawable-fi/pay_with_googlepay_button_content.xml +8 -8
  83. package/android/src/main/res/drawable-fi/subscribe_with_googlepay_button_content.xml +15 -0
  84. package/android/src/main/res/drawable-fr/book_with_googlepay_button_content.xml +14 -0
  85. package/android/src/main/res/drawable-fr/buy_with_googlepay_button_content.xml +14 -0
  86. package/android/src/main/res/drawable-fr/checkout_with_googlepay_button_content.xml +14 -0
  87. package/android/src/main/res/drawable-fr/donate_with_googlepay_button_content.xml +14 -0
  88. package/android/src/main/res/drawable-fr/order_with_googlepay_button_content.xml +14 -0
  89. package/android/src/main/res/drawable-fr/pay_with_googlepay_button_content.xml +5 -5
  90. package/android/src/main/res/drawable-fr/subscribe_with_googlepay_button_content.xml +14 -0
  91. package/android/src/main/res/drawable-hr/book_with_googlepay_button_content.xml +14 -0
  92. package/android/src/main/res/drawable-hr/buy_with_googlepay_button_content.xml +14 -0
  93. package/android/src/main/res/drawable-hr/checkout_with_googlepay_button_content.xml +14 -0
  94. package/android/src/main/res/drawable-hr/donate_with_googlepay_button_content.xml +14 -0
  95. package/android/src/main/res/drawable-hr/order_with_googlepay_button_content.xml +14 -0
  96. package/android/src/main/res/drawable-hr/pay_with_googlepay_button_content.xml +4 -4
  97. package/android/src/main/res/drawable-hr/subscribe_with_googlepay_button_content.xml +14 -0
  98. package/android/src/main/res/drawable-id/book_with_googlepay_button_content.xml +14 -0
  99. package/android/src/main/res/drawable-id/buy_with_googlepay_button_content.xml +14 -0
  100. package/android/src/main/res/drawable-id/checkout_with_googlepay_button_content.xml +14 -0
  101. package/android/src/main/res/drawable-id/donate_with_googlepay_button_content.xml +14 -0
  102. package/android/src/main/res/drawable-id/order_with_googlepay_button_content.xml +14 -0
  103. package/android/src/main/res/drawable-id/pay_with_googlepay_button_content.xml +4 -4
  104. package/android/src/main/res/drawable-id/subscribe_with_googlepay_button_content.xml +14 -0
  105. package/android/src/main/res/drawable-it/book_with_googlepay_button_content.xml +14 -0
  106. package/android/src/main/res/drawable-it/buy_with_googlepay_button_content.xml +14 -0
  107. package/android/src/main/res/drawable-it/checkout_with_googlepay_button_content.xml +14 -0
  108. package/android/src/main/res/drawable-it/donate_with_googlepay_button_content.xml +14 -0
  109. package/android/src/main/res/drawable-it/order_with_googlepay_button_content.xml +14 -0
  110. package/android/src/main/res/drawable-it/pay_with_googlepay_button_content.xml +6 -6
  111. package/android/src/main/res/drawable-it/subscribe_with_googlepay_button_content.xml +14 -0
  112. package/android/src/main/res/drawable-ja/book_with_googlepay_button_content.xml +14 -0
  113. package/android/src/main/res/drawable-ja/buy_with_googlepay_button_content.xml +14 -0
  114. package/android/src/main/res/drawable-ja/checkout_with_googlepay_button_content.xml +14 -0
  115. package/android/src/main/res/drawable-ja/donate_with_googlepay_button_content.xml +14 -0
  116. package/android/src/main/res/drawable-ja/order_with_googlepay_button_content.xml +14 -0
  117. package/android/src/main/res/drawable-ja/pay_with_googlepay_button_content.xml +5 -5
  118. package/android/src/main/res/drawable-ja/subscribe_with_googlepay_button_content.xml +14 -0
  119. package/android/src/main/res/drawable-ko/book_with_googlepay_button_content.xml +14 -0
  120. package/android/src/main/res/drawable-ko/buy_with_googlepay_button_content.xml +14 -0
  121. package/android/src/main/res/drawable-ko/checkout_with_googlepay_button_content.xml +14 -0
  122. package/android/src/main/res/drawable-ko/donate_with_googlepay_button_content.xml +14 -0
  123. package/android/src/main/res/drawable-ko/order_with_googlepay_button_content.xml +14 -0
  124. package/android/src/main/res/drawable-ko/pay_with_googlepay_button_content.xml +7 -7
  125. package/android/src/main/res/drawable-ko/subscribe_with_googlepay_button_content.xml +14 -0
  126. package/android/src/main/res/drawable-ms/book_with_googlepay_button_content.xml +14 -0
  127. package/android/src/main/res/drawable-ms/buy_with_googlepay_button_content.xml +14 -0
  128. package/android/src/main/res/drawable-ms/checkout_with_googlepay_button_content.xml +14 -0
  129. package/android/src/main/res/drawable-ms/donate_with_googlepay_button_content.xml +14 -0
  130. package/android/src/main/res/drawable-ms/order_with_googlepay_button_content.xml +14 -0
  131. package/android/src/main/res/drawable-ms/pay_with_googlepay_button_content.xml +4 -4
  132. package/android/src/main/res/drawable-ms/subscribe_with_googlepay_button_content.xml +14 -0
  133. package/android/src/main/res/drawable-nl/book_with_googlepay_button_content.xml +14 -0
  134. package/android/src/main/res/drawable-nl/buy_with_googlepay_button_content.xml +14 -0
  135. package/android/src/main/res/drawable-nl/checkout_with_googlepay_button_content.xml +14 -0
  136. package/android/src/main/res/drawable-nl/donate_with_googlepay_button_content.xml +14 -0
  137. package/android/src/main/res/drawable-nl/order_with_googlepay_button_content.xml +14 -0
  138. package/android/src/main/res/drawable-nl/pay_with_googlepay_button_content.xml +4 -4
  139. package/android/src/main/res/drawable-nl/subscribe_with_googlepay_button_content.xml +14 -0
  140. package/android/src/main/res/drawable-no/book_with_googlepay_button_content.xml +14 -0
  141. package/android/src/main/res/drawable-no/buy_with_googlepay_button_content.xml +14 -0
  142. package/android/src/main/res/drawable-no/checkout_with_googlepay_button_content.xml +14 -0
  143. package/android/src/main/res/drawable-no/donate_with_googlepay_button_content.xml +14 -0
  144. package/android/src/main/res/drawable-no/order_with_googlepay_button_content.xml +14 -0
  145. package/android/src/main/res/drawable-no/pay_with_googlepay_button_content.xml +6 -6
  146. package/android/src/main/res/drawable-no/subscribe_with_googlepay_button_content.xml +14 -0
  147. package/android/src/main/res/drawable-pl/book_with_googlepay_button_content.xml +14 -0
  148. package/android/src/main/res/drawable-pl/buy_with_googlepay_button_content.xml +14 -0
  149. package/android/src/main/res/drawable-pl/checkout_with_googlepay_button_content.xml +14 -0
  150. package/android/src/main/res/drawable-pl/donate_with_googlepay_button_content.xml +14 -0
  151. package/android/src/main/res/drawable-pl/order_with_googlepay_button_content.xml +14 -0
  152. package/android/src/main/res/drawable-pl/pay_with_googlepay_button_content.xml +7 -7
  153. package/android/src/main/res/drawable-pl/subscribe_with_googlepay_button_content.xml +14 -0
  154. package/android/src/main/res/drawable-ru/book_with_googlepay_button_content.xml +14 -0
  155. package/android/src/main/res/drawable-ru/buy_with_googlepay_button_content.xml +14 -0
  156. package/android/src/main/res/drawable-ru/checkout_with_googlepay_button_content.xml +14 -0
  157. package/android/src/main/res/drawable-ru/donate_with_googlepay_button_content.xml +14 -0
  158. package/android/src/main/res/drawable-ru/order_with_googlepay_button_content.xml +14 -0
  159. package/android/src/main/res/drawable-ru/pay_with_googlepay_button_content.xml +7 -7
  160. package/android/src/main/res/drawable-ru/subscribe_with_googlepay_button_content.xml +14 -0
  161. package/android/src/main/res/drawable-sk/book_with_googlepay_button_content.xml +14 -0
  162. package/android/src/main/res/drawable-sk/buy_with_googlepay_button_content.xml +14 -0
  163. package/android/src/main/res/drawable-sk/checkout_with_googlepay_button_content.xml +14 -0
  164. package/android/src/main/res/drawable-sk/donate_with_googlepay_button_content.xml +14 -0
  165. package/android/src/main/res/drawable-sk/order_with_googlepay_button_content.xml +14 -0
  166. package/android/src/main/res/drawable-sk/pay_with_googlepay_button_content.xml +4 -4
  167. package/android/src/main/res/drawable-sk/subscribe_with_googlepay_button_content.xml +14 -0
  168. package/android/src/main/res/drawable-sl/book_with_googlepay_button_content.xml +14 -0
  169. package/android/src/main/res/drawable-sl/buy_with_googlepay_button_content.xml +14 -0
  170. package/android/src/main/res/drawable-sl/checkout_with_googlepay_button_content.xml +14 -0
  171. package/android/src/main/res/drawable-sl/donate_with_googlepay_button_content.xml +14 -0
  172. package/android/src/main/res/drawable-sl/order_with_googlepay_button_content.xml +14 -0
  173. package/android/src/main/res/drawable-sl/pay_with_googlepay_button_content.xml +4 -4
  174. package/android/src/main/res/drawable-sl/subscribe_with_googlepay_button_content.xml +14 -0
  175. package/android/src/main/res/drawable-sr/book_with_googlepay_button_content.xml +14 -0
  176. package/android/src/main/res/drawable-sr/buy_with_googlepay_button_content.xml +14 -0
  177. package/android/src/main/res/drawable-sr/checkout_with_googlepay_button_content.xml +14 -0
  178. package/android/src/main/res/drawable-sr/donate_with_googlepay_button_content.xml +14 -0
  179. package/android/src/main/res/drawable-sr/order_with_googlepay_button_content.xml +14 -0
  180. package/android/src/main/res/drawable-sr/pay_with_googlepay_button_content.xml +7 -7
  181. package/android/src/main/res/drawable-sr/subscribe_with_googlepay_button_content.xml +14 -0
  182. package/android/src/main/res/drawable-sv/book_with_googlepay_button_content.xml +14 -0
  183. package/android/src/main/res/drawable-sv/buy_with_googlepay_button_content.xml +14 -0
  184. package/android/src/main/res/drawable-sv/checkout_with_googlepay_button_content.xml +14 -0
  185. package/android/src/main/res/drawable-sv/donate_with_googlepay_button_content.xml +14 -0
  186. package/android/src/main/res/drawable-sv/order_with_googlepay_button_content.xml +14 -0
  187. package/android/src/main/res/drawable-sv/pay_with_googlepay_button_content.xml +4 -4
  188. package/android/src/main/res/drawable-sv/subscribe_with_googlepay_button_content.xml +14 -0
  189. package/android/src/main/res/drawable-th/book_with_googlepay_button_content.xml +14 -0
  190. package/android/src/main/res/drawable-th/buy_with_googlepay_button_content.xml +14 -0
  191. package/android/src/main/res/drawable-th/checkout_with_googlepay_button_content.xml +14 -0
  192. package/android/src/main/res/drawable-th/donate_with_googlepay_button_content.xml +14 -0
  193. package/android/src/main/res/drawable-th/order_with_googlepay_button_content.xml +14 -0
  194. package/android/src/main/res/drawable-th/pay_with_googlepay_button_content.xml +6 -6
  195. package/android/src/main/res/drawable-th/subscribe_with_googlepay_button_content.xml +14 -0
  196. package/android/src/main/res/drawable-tr/book_with_googlepay_button_content.xml +14 -0
  197. package/android/src/main/res/drawable-tr/buy_with_googlepay_button_content.xml +14 -0
  198. package/android/src/main/res/drawable-tr/checkout_with_googlepay_button_content.xml +14 -0
  199. package/android/src/main/res/drawable-tr/donate_with_googlepay_button_content.xml +14 -0
  200. package/android/src/main/res/drawable-tr/order_with_googlepay_button_content.xml +14 -0
  201. package/android/src/main/res/drawable-tr/pay_with_googlepay_button_content.xml +7 -7
  202. package/android/src/main/res/drawable-tr/subscribe_with_googlepay_button_content.xml +14 -0
  203. package/android/src/main/res/drawable-uk/book_with_googlepay_button_content.xml +14 -0
  204. package/android/src/main/res/drawable-uk/buy_with_googlepay_button_content.xml +14 -0
  205. package/android/src/main/res/drawable-uk/checkout_with_googlepay_button_content.xml +14 -0
  206. package/android/src/main/res/drawable-uk/donate_with_googlepay_button_content.xml +14 -0
  207. package/android/src/main/res/drawable-uk/order_with_googlepay_button_content.xml +14 -0
  208. package/android/src/main/res/drawable-uk/pay_with_googlepay_button_content.xml +5 -5
  209. package/android/src/main/res/drawable-uk/subscribe_with_googlepay_button_content.xml +14 -0
  210. package/android/src/main/res/layout/book_with_googlepay_button.xml +20 -0
  211. package/android/src/main/res/layout/buy_with_googlepay_button.xml +20 -0
  212. package/android/src/main/res/layout/checkout_with_googlepay_button.xml +20 -0
  213. package/android/src/main/res/layout/donate_with_googlepay_button.xml +20 -0
  214. package/android/src/main/res/layout/googlepay_mark_button.xml +18 -0
  215. package/android/src/main/res/layout/order_with_googlepay_button.xml +20 -0
  216. package/android/src/main/res/layout/pay_with_googlepay_button.xml +10 -24
  217. package/android/src/main/res/layout/plain_googlepay_button.xml +17 -0
  218. package/android/src/main/res/layout/subscribe_with_googlepay_button.xml +20 -0
  219. package/android/src/main/res/values/googlepay_strings.xml +3 -2
  220. package/ios/ApplePayButtonManager.m +5 -0
  221. package/ios/ApplePayButtonManager.swift +3 -1
  222. package/ios/ApplePayButtonView.swift +21 -0
  223. package/ios/ApplePayUtils.swift +187 -0
  224. package/ios/ApplePayViewController.swift +279 -0
  225. package/ios/PaymentPassFinder.swift +61 -0
  226. package/ios/PushProvisioning/AddToWalletButtonView.swift +10 -10
  227. package/ios/PushProvisioning/PushProvisioningUtils.swift +39 -16
  228. package/ios/StripeSdk.m +29 -0
  229. package/ios/StripeSdk.swift +193 -129
  230. package/ios/Tests/AddressSheetUtilsTests.swift +1 -7
  231. package/ios/Tests/PushProvisioningTests.swift +14 -11
  232. package/jest/mock.js +44 -0
  233. package/lib/commonjs/NativeStripeSdk.js.map +1 -1
  234. package/lib/commonjs/components/PlatformPayButton.js +2 -0
  235. package/lib/commonjs/components/PlatformPayButton.js.map +1 -0
  236. package/lib/commonjs/functions.js +1 -1
  237. package/lib/commonjs/functions.js.map +1 -1
  238. package/lib/commonjs/hooks/usePlatformPay.js +2 -0
  239. package/lib/commonjs/hooks/usePlatformPay.js.map +1 -0
  240. package/lib/commonjs/hooks/useStripe.js +1 -1
  241. package/lib/commonjs/hooks/useStripe.js.map +1 -1
  242. package/lib/commonjs/index.js +1 -1
  243. package/lib/commonjs/index.js.map +1 -1
  244. package/lib/commonjs/types/Errors.js +1 -1
  245. package/lib/commonjs/types/Errors.js.map +1 -1
  246. package/lib/commonjs/types/PlatformPay.js +2 -0
  247. package/lib/commonjs/types/PlatformPay.js.map +1 -0
  248. package/lib/commonjs/types/PushProvisioning.js +2 -0
  249. package/lib/commonjs/types/PushProvisioning.js.map +1 -0
  250. package/lib/commonjs/types/index.js +1 -1
  251. package/lib/commonjs/types/index.js.map +1 -1
  252. package/lib/module/NativeStripeSdk.js.map +1 -1
  253. package/lib/module/components/PlatformPayButton.js +2 -0
  254. package/lib/module/components/PlatformPayButton.js.map +1 -0
  255. package/lib/module/functions.js +1 -1
  256. package/lib/module/functions.js.map +1 -1
  257. package/lib/module/hooks/usePlatformPay.js +2 -0
  258. package/lib/module/hooks/usePlatformPay.js.map +1 -0
  259. package/lib/module/hooks/useStripe.js +1 -1
  260. package/lib/module/hooks/useStripe.js.map +1 -1
  261. package/lib/module/index.js +1 -1
  262. package/lib/module/index.js.map +1 -1
  263. package/lib/module/types/Errors.js +1 -1
  264. package/lib/module/types/Errors.js.map +1 -1
  265. package/lib/module/types/PlatformPay.js +2 -0
  266. package/lib/module/types/PlatformPay.js.map +1 -0
  267. package/lib/module/types/PushProvisioning.js +2 -0
  268. package/lib/module/types/PushProvisioning.js.map +1 -0
  269. package/lib/module/types/index.js +1 -1
  270. package/lib/module/types/index.js.map +1 -1
  271. package/lib/typescript/src/NativeStripeSdk.d.ts +8 -1
  272. package/lib/typescript/src/components/PlatformPayButton.d.ts +65 -0
  273. package/lib/typescript/src/functions.d.ts +73 -1
  274. package/lib/typescript/src/hooks/usePlatformPay.d.ts +70 -0
  275. package/lib/typescript/src/hooks/useStripe.d.ts +18 -1
  276. package/lib/typescript/src/index.d.ts +2 -0
  277. package/lib/typescript/src/types/ApplePay.d.ts +9 -0
  278. package/lib/typescript/src/types/Errors.d.ts +6 -1
  279. package/lib/typescript/src/types/GooglePay.d.ts +2 -1
  280. package/lib/typescript/src/types/PlatformPay.d.ts +285 -0
  281. package/lib/typescript/src/types/PushProvisioning.d.ts +66 -0
  282. package/lib/typescript/src/types/components/ApplePayButtonComponent.d.ts +2 -2
  283. package/lib/typescript/src/types/index.d.ts +3 -38
  284. package/package.json +8 -1
  285. package/src/NativeStripeSdk.tsx +20 -0
  286. package/src/components/PlatformPayButton.tsx +157 -0
  287. package/src/functions.ts +181 -0
  288. package/src/hooks/usePlatformPay.tsx +174 -0
  289. package/src/hooks/useStripe.tsx +77 -0
  290. package/src/index.tsx +6 -0
  291. package/src/types/ApplePay.ts +9 -0
  292. package/src/types/Errors.ts +7 -1
  293. package/src/types/GooglePay.ts +2 -1
  294. package/src/types/PlatformPay.ts +326 -0
  295. package/src/types/PushProvisioning.ts +76 -0
  296. package/src/types/components/ApplePayButtonComponent.ts +3 -2
  297. package/src/types/index.ts +3 -54
  298. package/android/src/main/res/drawable/googlepay_button_background.xml +0 -6
  299. package/android/src/main/res/drawable/googlepay_button_content.xml +0 -48
  300. package/android/src/main/res/drawable/googlepay_button_overlay.xml +0 -12
  301. package/android/src/main/res/drawable-af/pay_with_googlepay_button_content.xml +0 -14
  302. package/android/src/main/res/drawable-am/pay_with_googlepay_button_content.xml +0 -15
  303. package/android/src/main/res/drawable-as/pay_with_googlepay_button_content.xml +0 -14
  304. package/android/src/main/res/drawable-az/pay_with_googlepay_button_content.xml +0 -14
  305. package/android/src/main/res/drawable-be/pay_with_googlepay_button_content.xml +0 -14
  306. package/android/src/main/res/drawable-bn/pay_with_googlepay_button_content.xml +0 -14
  307. package/android/src/main/res/drawable-bs/pay_with_googlepay_button_content.xml +0 -14
  308. package/android/src/main/res/drawable-cy/pay_with_googlepay_button_content.xml +0 -14
  309. package/android/src/main/res/drawable-en-rau/pay_with_googlepay_button_content.xml +0 -14
  310. package/android/src/main/res/drawable-en-rca/pay_with_googlepay_button_content.xml +0 -14
  311. package/android/src/main/res/drawable-en-rgb/pay_with_googlepay_button_content.xml +0 -14
  312. package/android/src/main/res/drawable-en-rin/pay_with_googlepay_button_content.xml +0 -14
  313. package/android/src/main/res/drawable-es/pay_with_googlepay_button_content.xml +0 -14
  314. package/android/src/main/res/drawable-es-res/pay_with_googlepay_button_content.xml +0 -14
  315. package/android/src/main/res/drawable-eu/pay_with_googlepay_button_content.xml +0 -15
  316. package/android/src/main/res/drawable-fa/pay_with_googlepay_button_content.xml +0 -14
  317. package/android/src/main/res/drawable-fil/pay_with_googlepay_button_content.xml +0 -14
  318. package/android/src/main/res/drawable-fr-rca/pay_with_googlepay_button_content.xml +0 -14
  319. package/android/src/main/res/drawable-ga/pay_with_googlepay_button_content.xml +0 -14
  320. package/android/src/main/res/drawable-gl/pay_with_googlepay_button_content.xml +0 -14
  321. package/android/src/main/res/drawable-gu/pay_with_googlepay_button_content.xml +0 -14
  322. package/android/src/main/res/drawable-hdpi/googlepay_button_background_image.9.png +0 -0
  323. package/android/src/main/res/drawable-hu/pay_with_googlepay_button_content.xml +0 -15
  324. package/android/src/main/res/drawable-hy/pay_with_googlepay_button_content.xml +0 -15
  325. package/android/src/main/res/drawable-is/pay_with_googlepay_button_content.xml +0 -14
  326. package/android/src/main/res/drawable-iw/pay_with_googlepay_button_content.xml +0 -14
  327. package/android/src/main/res/drawable-ka/pay_with_googlepay_button_content.xml +0 -15
  328. package/android/src/main/res/drawable-kk/pay_with_googlepay_button_content.xml +0 -14
  329. package/android/src/main/res/drawable-km/pay_with_googlepay_button_content.xml +0 -14
  330. package/android/src/main/res/drawable-kn/pay_with_googlepay_button_content.xml +0 -14
  331. package/android/src/main/res/drawable-ky/pay_with_googlepay_button_content.xml +0 -14
  332. package/android/src/main/res/drawable-lo/pay_with_googlepay_button_content.xml +0 -14
  333. package/android/src/main/res/drawable-lt/pay_with_googlepay_button_content.xml +0 -14
  334. package/android/src/main/res/drawable-lv/pay_with_googlepay_button_content.xml +0 -14
  335. package/android/src/main/res/drawable-mdpi/googlepay_button_background_image.9.png +0 -0
  336. package/android/src/main/res/drawable-mk/pay_with_googlepay_button_content.xml +0 -14
  337. package/android/src/main/res/drawable-ml/pay_with_googlepay_button_content.xml +0 -14
  338. package/android/src/main/res/drawable-mn/pay_with_googlepay_button_content.xml +0 -14
  339. package/android/src/main/res/drawable-mr/pay_with_googlepay_button_content.xml +0 -14
  340. package/android/src/main/res/drawable-ne/pay_with_googlepay_button_content.xml +0 -14
  341. package/android/src/main/res/drawable-pt-rbr/pay_with_googlepay_button_content.xml +0 -14
  342. package/android/src/main/res/drawable-pt-rpt/pay_with_googlepay_button_content.xml +0 -14
  343. package/android/src/main/res/drawable-ro/pay_with_googlepay_button_content.xml +0 -14
  344. package/android/src/main/res/drawable-sq/pay_with_googlepay_button_content.xml +0 -14
  345. package/android/src/main/res/drawable-sw/pay_with_googlepay_button_content.xml +0 -14
  346. package/android/src/main/res/drawable-ta/pay_with_googlepay_button_content.xml +0 -14
  347. package/android/src/main/res/drawable-te/pay_with_googlepay_button_content.xml +0 -14
  348. package/android/src/main/res/drawable-ur/pay_with_googlepay_button_content.xml +0 -14
  349. package/android/src/main/res/drawable-uz/pay_with_googlepay_button_content.xml +0 -14
  350. package/android/src/main/res/drawable-v21/googlepay_button_background.xml +0 -7
  351. package/android/src/main/res/drawable-vi/pay_with_googlepay_button_content.xml +0 -14
  352. package/android/src/main/res/drawable-xhdpi/googlepay_button_background_image.9.png +0 -0
  353. package/android/src/main/res/drawable-xxhdpi/googlepay_button_background_image.9.png +0 -0
  354. package/android/src/main/res/drawable-xxxhdpi/googlepay_button_background_image.9.png +0 -0
  355. package/android/src/main/res/drawable-zh-rcn/pay_with_googlepay_button_content.xml +0 -15
  356. package/android/src/main/res/drawable-zh-rhk/pay_with_googlepay_button_content.xml +0 -15
  357. package/android/src/main/res/drawable-zh-rtw/pay_with_googlepay_button_content.xml +0 -15
  358. package/android/src/main/res/drawable-zu/pay_with_googlepay_button_content.xml +0 -14
  359. package/android/src/main/res/layout/googlepay_button.xml +0 -39
package/ios/StripeSdk.m CHANGED
@@ -19,6 +19,35 @@ RCT_EXTERN_METHOD(
19
19
  resolver: (RCTPromiseResolveBlock)resolve
20
20
  rejecter: (RCTPromiseRejectBlock)reject)
21
21
 
22
+ RCT_EXTERN_METHOD(
23
+ isPlatformPaySupported:(NSDictionary *)params
24
+ resolver: (RCTPromiseResolveBlock)resolve
25
+ rejecter: (RCTPromiseRejectBlock)reject)
26
+
27
+ RCT_EXTERN_METHOD(
28
+ createPlatformPayPaymentMethod:(NSDictionary *)params
29
+ resolver: (RCTPromiseResolveBlock)resolve
30
+ rejecter: (RCTPromiseRejectBlock)reject)
31
+
32
+ RCT_EXTERN_METHOD(
33
+ confirmPlatformPay:(NSString *)clientSecret
34
+ params:(NSDictionary *)params
35
+ isPaymentIntent:(BOOL)isPaymentIntent
36
+ resolver: (RCTPromiseResolveBlock)resolve
37
+ rejecter: (RCTPromiseRejectBlock)reject
38
+ )
39
+
40
+ RCT_EXTERN_METHOD(
41
+ dismissPlatformPay: (RCTPromiseResolveBlock)resolve
42
+ rejecter: (RCTPromiseRejectBlock)reject)
43
+
44
+ RCT_EXTERN_METHOD(
45
+ updatePlatformPaySheet:(NSArray *)summaryItems
46
+ shippingMethods:(NSArray *)summaryItems
47
+ errors: (NSArray *)errors
48
+ resolver: (RCTPromiseResolveBlock)resolve
49
+ rejecter: (RCTPromiseRejectBlock)reject)
50
+
22
51
  RCT_EXTERN_METHOD(
23
52
  presentApplePay:(NSDictionary *)params
24
53
  resolver: (RCTPromiseResolveBlock)resolve
@@ -4,7 +4,7 @@ import StripePaymentSheet
4
4
  import StripeFinancialConnections
5
5
 
6
6
  @objc(StripeSdk)
7
- class StripeSdk: RCTEventEmitter, STPApplePayContextDelegate, STPBankSelectionViewControllerDelegate, UIAdaptivePresentationControllerDelegate {
7
+ class StripeSdk: RCTEventEmitter, STPBankSelectionViewControllerDelegate, UIAdaptivePresentationControllerDelegate {
8
8
  public var cardFieldView: CardFieldView? = nil
9
9
  public var cardFormView: CardFormView? = nil
10
10
 
@@ -14,19 +14,49 @@ class StripeSdk: RCTEventEmitter, STPApplePayContextDelegate, STPBankSelectionVi
14
14
  private var paymentSheetFlowController: PaymentSheet.FlowController?
15
15
 
16
16
  var urlScheme: String? = nil
17
-
18
- var applePayCompletionCallback: STPIntentClientSecretCompletionBlock? = nil
19
- var applePayRequestResolver: RCTPromiseResolveBlock? = nil
20
- var applePayRequestRejecter: RCTPromiseRejectBlock? = nil
21
- var applePayCompletionRejecter: RCTPromiseRejectBlock? = nil
22
- var confirmApplePayPaymentResolver: RCTPromiseResolveBlock? = nil
17
+
23
18
  var confirmPaymentResolver: RCTPromiseResolveBlock? = nil
24
19
 
20
+ var applePayCompletionCallback: STPIntentClientSecretCompletionBlock? = nil
21
+ var deprecatedApplePayRequestResolver: RCTPromiseResolveBlock? = nil
22
+ var deprecatedApplePayRequestRejecter: RCTPromiseRejectBlock? = nil
23
+ var deprecatedApplePayCompletionRejecter: RCTPromiseRejectBlock? = nil
24
+ var deprecatedConfirmApplePayPaymentResolver: RCTPromiseResolveBlock? = nil
25
+
26
+ var confirmApplePayResolver: RCTPromiseResolveBlock? = nil
27
+ var confirmApplePayPaymentClientSecret: String? = nil
28
+ var confirmApplePaySetupClientSecret: String? = nil
29
+
30
+ var applePaymentAuthorizationController: PKPaymentAuthorizationViewController? = nil
31
+ var createPlatformPayPaymentMethodResolver: RCTPromiseResolveBlock? = nil
32
+ var applePaymentMethodFlowCanBeCanceled = false
33
+
25
34
  var confirmPaymentClientSecret: String? = nil
26
35
 
27
- var shippingMethodUpdateHandler: ((PKPaymentRequestShippingMethodUpdate) -> Void)? = nil
28
- var shippingContactUpdateHandler: ((PKPaymentRequestShippingContactUpdate) -> Void)? = nil
29
-
36
+ var shippingMethodUpdateCompletion: ((PKPaymentRequestShippingMethodUpdate) -> Void)? = nil
37
+ var shippingContactUpdateCompletion: ((PKPaymentRequestShippingContactUpdate) -> Void)? = nil
38
+ @available(iOS 15.0, *)
39
+ var couponCodeUpdateCompletion: ((PKPaymentRequestCouponCodeUpdate) -> Void)? {
40
+ get { _couponCodeUpdateCompletion as? ((PKPaymentRequestCouponCodeUpdate) -> Void) }
41
+ set { _couponCodeUpdateCompletion = newValue }
42
+ }
43
+ private var _couponCodeUpdateCompletion: Any? = nil
44
+ var shippingMethodUpdateJSCallback: RCTDirectEventBlock? = nil
45
+ var shippingContactUpdateJSCallback: RCTDirectEventBlock? = nil
46
+ var couponCodeEnteredJSCallback: RCTDirectEventBlock? = nil
47
+ var applePaySummaryItems: [PKPaymentSummaryItem] = []
48
+ var applePayShippingMethods: [PKShippingMethod] = []
49
+ var applePayShippingAddressErrors: [Error]? = nil
50
+ var applePayCouponCodeErrors: [Error]? = nil
51
+
52
+ var hasLegacyApplePayListeners = false
53
+ override func startObserving() {
54
+ hasLegacyApplePayListeners = true
55
+ }
56
+ override func stopObserving() {
57
+ hasLegacyApplePayListeners = false
58
+ }
59
+
30
60
  override func supportedEvents() -> [String]! {
31
61
  return ["onDidSetShippingMethod", "onDidSetShippingContact"]
32
62
  }
@@ -364,9 +394,56 @@ class StripeSdk: RCTEventEmitter, STPApplePayContextDelegate, STPBankSelectionVi
364
394
  }
365
395
  }
366
396
 
397
+ @objc(updatePlatformPaySheet:shippingMethods:errors:resolver:rejecter:)
398
+ func updatePlatformPaySheet(summaryItems: NSArray,
399
+ shippingMethods: NSArray,
400
+ errors: [NSDictionary],
401
+ resolver resolve: @escaping RCTPromiseResolveBlock,
402
+ rejecter reject: @escaping RCTPromiseRejectBlock)
403
+ {
404
+ let couponUpdateHandlerIsNil: Bool = {
405
+ if #available(iOS 15.0, *), self.couponCodeUpdateCompletion == nil {
406
+ return true
407
+ }
408
+ return false
409
+ }()
410
+
411
+ if (shippingMethodUpdateCompletion == nil && shippingContactUpdateCompletion == nil && couponUpdateHandlerIsNil) {
412
+ resolve(Errors.createError(ErrorType.Failed, "You can use this method only after either onShippingContactSelected, onShippingMethodSelected, or onCouponCodeEntered callbacks are triggered"))
413
+ return
414
+ }
415
+
416
+ do {
417
+ applePaySummaryItems = try ApplePayUtils.buildPaymentSummaryItems(items: summaryItems as? [[String : Any]])
418
+ } catch {
419
+ resolve(Errors.createError(ErrorType.Failed, error.localizedDescription))
420
+ return
421
+ }
422
+
423
+ applePayShippingMethods = ApplePayUtils.buildShippingMethods(items: shippingMethods as? [[String : Any]])
424
+
425
+ do {
426
+ (applePayShippingAddressErrors, applePayCouponCodeErrors) = try ApplePayUtils.buildApplePayErrors(errorItems: errors)
427
+ } catch {
428
+ resolve(Errors.createError(ErrorType.Failed, error.localizedDescription))
429
+ return
430
+ }
431
+
432
+
433
+ shippingMethodUpdateCompletion?(PKPaymentRequestShippingMethodUpdate.init(paymentSummaryItems: applePaySummaryItems))
434
+ shippingContactUpdateCompletion?(PKPaymentRequestShippingContactUpdate.init(errors: applePayShippingAddressErrors, paymentSummaryItems: applePaySummaryItems, shippingMethods: applePayShippingMethods))
435
+ if #available(iOS 15.0, *) {
436
+ couponCodeUpdateCompletion?(PKPaymentRequestCouponCodeUpdate.init(errors: applePayCouponCodeErrors, paymentSummaryItems: applePaySummaryItems, shippingMethods: applePayShippingMethods))
437
+ self.couponCodeUpdateCompletion = nil
438
+ }
439
+ self.shippingMethodUpdateCompletion = nil
440
+ self.shippingContactUpdateCompletion = nil
441
+ resolve([])
442
+ }
443
+
367
444
  @objc(updateApplePaySummaryItems:errorAddressFields:resolver:rejecter:)
368
445
  func updateApplePaySummaryItems(summaryItems: NSArray, errorAddressFields: [NSDictionary], resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
369
- if (shippingMethodUpdateHandler == nil && shippingContactUpdateHandler == nil) {
446
+ if (shippingMethodUpdateCompletion == nil && shippingContactUpdateCompletion == nil) {
370
447
  resolve(Errors.createError(ErrorType.Failed, "You can use this method only after either onDidSetShippingMethod or onDidSetShippingContact events emitted"))
371
448
  return
372
449
  }
@@ -386,88 +463,26 @@ class StripeSdk: RCTEventEmitter, STPApplePayContextDelegate, STPBankSelectionVi
386
463
  shippingAddressErrors.append(PKPaymentRequest.paymentShippingAddressInvalidError(withKey: field, localizedDescription: message))
387
464
  }
388
465
 
389
- shippingMethodUpdateHandler?(PKPaymentRequestShippingMethodUpdate.init(paymentSummaryItems: paymentSummaryItems))
390
- shippingContactUpdateHandler?(PKPaymentRequestShippingContactUpdate.init(errors: shippingAddressErrors, paymentSummaryItems: paymentSummaryItems, shippingMethods: []))
391
- self.shippingMethodUpdateHandler = nil
392
- self.shippingContactUpdateHandler = nil
466
+ shippingMethodUpdateCompletion?(PKPaymentRequestShippingMethodUpdate.init(paymentSummaryItems: paymentSummaryItems))
467
+ shippingContactUpdateCompletion?(PKPaymentRequestShippingContactUpdate.init(errors: shippingAddressErrors, paymentSummaryItems: paymentSummaryItems, shippingMethods: []))
468
+ self.shippingMethodUpdateCompletion = nil
469
+ self.shippingContactUpdateCompletion = nil
393
470
  resolve([])
394
471
  }
395
472
 
396
473
  @objc(openApplePaySetup:rejecter:)
397
474
  func openApplePaySetup(resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
398
- let library = PKPassLibrary.init()
399
- if (library.responds(to: #selector(PKPassLibrary.openPaymentSetup))) {
400
- library.openPaymentSetup()
401
- resolve([])
402
- } else {
403
- resolve(Errors.createError(ErrorType.Failed, "Cannot open payment setup"))
404
- }
405
- }
406
-
407
-
408
- func applePayContext(_ context: STPApplePayContext, didSelect shippingMethod: PKShippingMethod, handler: @escaping (PKPaymentRequestShippingMethodUpdate) -> Void) {
409
- self.shippingMethodUpdateHandler = handler
410
- sendEvent(withName: "onDidSetShippingMethod", body: ["shippingMethod": Mappers.mapFromShippingMethod(shippingMethod: shippingMethod)])
411
- }
412
-
413
- func applePayContext(_ context: STPApplePayContext, didSelectShippingContact contact: PKContact, handler: @escaping (PKPaymentRequestShippingContactUpdate) -> Void) {
414
- self.shippingContactUpdateHandler = handler
415
- sendEvent(withName: "onDidSetShippingContact", body: ["shippingContact": Mappers.mapFromShippingContact(shippingContact: contact)])
416
- }
417
-
418
- func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: STPPaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) {
419
- self.applePayCompletionCallback = completion
420
-
421
- let address = paymentMethod.billingDetails?.address?.line1?.split(whereSeparator: \.isNewline)
422
- if (address?.indices.contains(0) == true) {
423
- paymentMethod.billingDetails?.address?.line1 = String(address?[0] ?? "")
424
- }
425
- if (address?.indices.contains(1) == true) {
426
- paymentMethod.billingDetails?.address?.line2 = String(address?[1] ?? "")
427
- }
428
-
429
- let method = Mappers.mapFromPaymentMethod(paymentMethod)
430
- self.applePayRequestResolver?(Mappers.createResult("paymentMethod", method))
431
- self.applePayRequestRejecter = nil
475
+ PKPassLibrary.init().openPaymentSetup()
476
+ resolve([])
432
477
  }
433
478
 
434
479
  @objc(confirmApplePayPayment:resolver:rejecter:)
435
480
  func confirmApplePayPayment(clientSecret: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
436
- self.applePayCompletionRejecter = reject
437
- self.confirmApplePayPaymentResolver = resolve
481
+ self.deprecatedApplePayCompletionRejecter = reject
482
+ self.deprecatedConfirmApplePayPaymentResolver = resolve
438
483
  self.applePayCompletionCallback?(clientSecret, nil)
439
484
  }
440
485
 
441
- func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPPaymentStatus, error: Error?) {
442
- switch status {
443
- case .success:
444
- applePayCompletionRejecter = nil
445
- applePayRequestRejecter = nil
446
- confirmApplePayPaymentResolver?([])
447
- break
448
- case .error:
449
- let message = "Payment not completed"
450
- applePayCompletionRejecter?(ErrorType.Failed, message, nil)
451
- applePayRequestRejecter?(ErrorType.Failed, message, nil)
452
- applePayCompletionRejecter = nil
453
- applePayRequestRejecter = nil
454
- break
455
- case .userCancellation:
456
- let message = "The payment has been canceled"
457
- applePayCompletionRejecter?(ErrorType.Canceled, message, nil)
458
- applePayRequestRejecter?(ErrorType.Canceled, message, nil)
459
- applePayCompletionRejecter = nil
460
- applePayRequestRejecter = nil
461
- break
462
- @unknown default:
463
- let message = "Payment not completed"
464
- applePayCompletionRejecter?(ErrorType.Unknown, message, nil)
465
- applePayRequestRejecter?(ErrorType.Unknown, message, nil)
466
- applePayCompletionRejecter = nil
467
- applePayRequestRejecter = nil
468
- }
469
- }
470
-
471
486
  @objc(isApplePaySupported:rejecter:)
472
487
  func isApplePaySupported(resolver resolve: @escaping RCTPromiseResolveBlock,
473
488
  rejecter reject: @escaping RCTPromiseRejectBlock) {
@@ -496,65 +511,110 @@ class StripeSdk: RCTEventEmitter, STPApplePayContextDelegate, STPBankSelectionVi
496
511
  func presentApplePay(params: NSDictionary,
497
512
  resolver resolve: @escaping RCTPromiseResolveBlock,
498
513
  rejecter reject: @escaping RCTPromiseRejectBlock) {
499
- if (merchantIdentifier == nil) {
500
- reject(ErrorType.Failed, "You must provide merchantIdentifier", nil)
514
+ self.deprecatedApplePayRequestResolver = resolve
515
+ self.deprecatedApplePayRequestRejecter = reject
516
+
517
+ let (error, paymentRequest) = ApplePayUtils.createPaymentRequest(merchantIdentifier: merchantIdentifier, params: params)
518
+ guard let paymentRequest = paymentRequest else {
519
+ resolve(error)
501
520
  return
502
521
  }
503
-
504
- if (params["jcbEnabled"] as? Bool == true) {
505
- StripeAPI.additionalEnabledApplePayNetworks = [.JCB]
522
+
523
+ if let applePayContext = STPApplePayContext(paymentRequest: paymentRequest, delegate: self) {
524
+ DispatchQueue.main.async {
525
+ applePayContext.presentApplePay(completion: nil)
526
+ }
527
+ } else {
528
+ resolve(Errors.createError(ErrorType.Failed, "Payment not completed"))
506
529
  }
507
-
508
- guard let summaryItems = params["cartItems"] as? NSArray else {
509
- reject(ErrorType.Failed, "You must provide the items for purchase", nil)
530
+ }
531
+
532
+ @objc(isPlatformPaySupported:resolver:rejecter:)
533
+ func isPlatformPaySupported(params: NSDictionary,
534
+ resolver resolve: @escaping RCTPromiseResolveBlock,
535
+ rejecter reject: @escaping RCTPromiseRejectBlock) {
536
+ resolve(StripeAPI.deviceSupportsApplePay())
537
+ }
538
+
539
+ @objc(createPlatformPayPaymentMethod:resolver:rejecter:)
540
+ func createPlatformPayPaymentMethod(params: NSDictionary,
541
+ resolver resolve: @escaping RCTPromiseResolveBlock,
542
+ rejecter reject: @escaping RCTPromiseRejectBlock) {
543
+ guard let applePayPatams = params["applePay"] as? NSDictionary else {
544
+ resolve(Errors.createError(ErrorType.Failed, "You must provide the `applePay` parameter."))
510
545
  return
511
546
  }
512
- guard let country = params["country"] as? String else {
513
- reject(ErrorType.Failed, "You must provide the country", nil)
547
+ let (error, paymentRequest) = ApplePayUtils.createPaymentRequest(merchantIdentifier: merchantIdentifier, params: applePayPatams)
548
+ guard let paymentRequest = paymentRequest else {
549
+ resolve(error)
514
550
  return
515
551
  }
516
- guard let currency = params["currency"] as? String else {
517
- reject(ErrorType.Failed, "You must provide the payment currency", nil)
552
+
553
+ self.applePaySummaryItems = paymentRequest.paymentSummaryItems
554
+ self.applePayShippingMethods = paymentRequest.shippingMethods ?? []
555
+ self.applePayShippingAddressErrors = nil
556
+ self.applePayCouponCodeErrors = nil
557
+ applePaymentMethodFlowCanBeCanceled = true
558
+ createPlatformPayPaymentMethodResolver = resolve
559
+ self.applePaymentAuthorizationController = PKPaymentAuthorizationViewController(paymentRequest: paymentRequest)
560
+ if let applePaymentAuthorizationController = self.applePaymentAuthorizationController {
561
+ applePaymentAuthorizationController.delegate = self
562
+ DispatchQueue.main.async {
563
+ let vc = findViewControllerPresenter(from: UIApplication.shared.delegate?.window??.rootViewController ?? UIViewController())
564
+ vc.present(
565
+ applePaymentAuthorizationController,
566
+ animated: true,
567
+ completion: nil
568
+ )
569
+ }
570
+ } else {
571
+ resolve(Errors.createError(ErrorType.Failed, "Invalid in-app payment request. Search the iOS logs for `NSUnderlyingError` to get more information."))
572
+ }
573
+ }
574
+
575
+ @objc(dismissPlatformPay:rejecter:)
576
+ func dismissPlatformPay(resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
577
+ let didDismiss = maybeDismissApplePay()
578
+ resolve(didDismiss)
579
+ }
580
+
581
+ @objc(confirmPlatformPay:params:isPaymentIntent:resolver:rejecter:)
582
+ func confirmPlatformPay(
583
+ clientSecret: String?,
584
+ params: NSDictionary,
585
+ isPaymentIntent: Bool,
586
+ resolver resolve: @escaping RCTPromiseResolveBlock,
587
+ rejecter reject: @escaping RCTPromiseRejectBlock
588
+ ) -> Void {
589
+ guard let applePayPatams = params["applePay"] as? NSDictionary else {
590
+ resolve(Errors.createError(ErrorType.Failed, "You must provide the `applePay` parameter."))
518
591
  return
519
592
  }
520
-
521
- self.applePayRequestResolver = resolve
522
- self.applePayRequestRejecter = reject
523
-
524
- let merchantIdentifier = self.merchantIdentifier ?? ""
525
- let paymentRequest = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: country, currency: currency)
526
-
527
- let requiredShippingAddressFields = params["requiredShippingAddressFields"] as? NSArray ?? NSArray()
528
- let requiredBillingContactFields = params["requiredBillingContactFields"] as? NSArray ?? NSArray()
529
- let shippingMethods = params["shippingMethods"] as? NSArray ?? NSArray()
530
-
531
- paymentRequest.requiredShippingContactFields = Set(requiredShippingAddressFields.map {
532
- Mappers.mapToPKContactField(field: $0 as! String)
533
- })
534
-
535
- paymentRequest.requiredBillingContactFields = Set(requiredBillingContactFields.map {
536
- Mappers.mapToPKContactField(field: $0 as! String)
537
- })
538
-
539
- paymentRequest.shippingMethods = Mappers.mapToShippingMethods(shippingMethods: shippingMethods)
540
-
541
- do {
542
- paymentRequest.paymentSummaryItems = try ApplePayUtils
543
- .buildPaymentSummaryItems(items: summaryItems as? [[String : Any]])
544
- } catch {
545
- resolve(Errors.createError(ErrorType.Failed, error.localizedDescription))
593
+ let (error, paymentRequest) = ApplePayUtils.createPaymentRequest(merchantIdentifier: merchantIdentifier, params: applePayPatams)
594
+ guard let paymentRequest = paymentRequest else {
595
+ resolve(error)
546
596
  return
547
597
  }
548
598
 
599
+ self.applePaySummaryItems = paymentRequest.paymentSummaryItems
600
+ self.applePayShippingMethods = paymentRequest.shippingMethods ?? []
601
+ self.applePayShippingAddressErrors = nil
602
+ self.applePayCouponCodeErrors = nil
603
+ self.confirmApplePayResolver = resolve
604
+ if (isPaymentIntent) {
605
+ self.confirmApplePayPaymentClientSecret = clientSecret
606
+ } else {
607
+ self.confirmApplePaySetupClientSecret = clientSecret
608
+ }
549
609
  if let applePayContext = STPApplePayContext(paymentRequest: paymentRequest, delegate: self) {
550
610
  DispatchQueue.main.async {
551
611
  applePayContext.presentApplePay(completion: nil)
552
612
  }
553
613
  } else {
554
- reject(ErrorType.Failed, "Payment not completed", nil)
614
+ resolve(Errors.createError(ErrorType.Failed, "Payment not completed"))
555
615
  }
556
616
  }
557
-
617
+
558
618
  func configure3dSecure(_ params: NSDictionary) {
559
619
  let threeDSCustomizationSettings = STPPaymentHandler.shared().threeDSCustomizationSettings
560
620
  let uiCustomization = Mappers.mapUICustomization(params)
@@ -1056,13 +1116,17 @@ class StripeSdk: RCTEventEmitter, STPApplePayContextDelegate, STPBankSelectionVi
1056
1116
  resolve(Errors.createError(ErrorType.Failed, "You must provide `cardLastFour`"))
1057
1117
  return
1058
1118
  }
1059
- let (canAddCard, status) = PushProvisioningUtils.canAddCardToWallet(last4: last4,
1060
- primaryAccountIdentifier: params["primaryAccountIdentifier"] as? String ?? "",
1061
- testEnv: params["testEnv"] as? Bool ?? false)
1062
- resolve([
1063
- "canAddCard": canAddCard,
1064
- "details": ["status": status?.rawValue],
1065
- ])
1119
+ PushProvisioningUtils.canAddCardToWallet(
1120
+ last4: last4,
1121
+ primaryAccountIdentifier: params["primaryAccountIdentifier"] as? String ?? "",
1122
+ testEnv: params["testEnv"] as? Bool ?? false,
1123
+ hasPairedAppleWatch: params["hasPairedAppleWatch"] as? Bool ?? false)
1124
+ { canAddCard, status in
1125
+ resolve([
1126
+ "canAddCard": canAddCard,
1127
+ "details": ["status": status?.rawValue],
1128
+ ])
1129
+ }
1066
1130
  }
1067
1131
 
1068
1132
  @objc(isCardInWallet:resolver:rejecter:)
@@ -1075,7 +1139,7 @@ class StripeSdk: RCTEventEmitter, STPApplePayContextDelegate, STPBankSelectionVi
1075
1139
  resolve(Errors.createError(ErrorType.Failed, "You must provide `cardLastFour`"))
1076
1140
  return
1077
1141
  }
1078
- resolve(["isInWallet": PushProvisioningUtils.passExistsWith(last4: last4)])
1142
+ resolve(["isInWallet": PushProvisioningUtils.getPassLocation(last4: last4) != nil])
1079
1143
  }
1080
1144
 
1081
1145
  @objc(collectBankAccountToken:resolver:rejecter:)
@@ -7,7 +7,7 @@
7
7
 
8
8
  import XCTest
9
9
  @testable import stripe_react_native
10
- import Stripe
10
+ import StripePaymentSheet
11
11
 
12
12
  class AddressSheetUtilsTests: XCTestCase {
13
13
  let testCity = "testCity"
@@ -202,9 +202,6 @@ class AddressSheetUtilsTests: XCTestCase {
202
202
  XCTAssertEqual(
203
203
  result.phone, .hidden
204
204
  )
205
- XCTAssertEqual(
206
- result.name, .required
207
- )
208
205
  XCTAssertEqual(
209
206
  result.checkboxLabel, nil
210
207
  )
@@ -219,9 +216,6 @@ class AddressSheetUtilsTests: XCTestCase {
219
216
  XCTAssertEqual(
220
217
  result.phone, .optional
221
218
  )
222
- XCTAssertEqual(
223
- result.name, .hidden
224
- )
225
219
  XCTAssertEqual(
226
220
  result.checkboxLabel, testCheckboxLabel
227
221
  )
@@ -11,19 +11,22 @@ import XCTest
11
11
 
12
12
  class PushProvisioningTests: XCTestCase {
13
13
  func testCanAddCardToWalletInTestMode() throws {
14
- let (canAddCard, status) = PushProvisioningUtils.canAddCardToWallet(last4: "4242",
14
+ PushProvisioningUtils.canAddCardToWallet(last4: "4242",
15
15
  primaryAccountIdentifier: "",
16
- testEnv: true)
17
- XCTAssertEqual(canAddCard, true)
18
- XCTAssertEqual(status, nil)
16
+ testEnv: true, hasPairedAppleWatch: false) { canAddCard, status in
17
+ XCTAssertEqual(canAddCard, true)
18
+ XCTAssertEqual(status, nil)
19
+ }
19
20
  }
20
-
21
+
21
22
  func testCanAddCardToWalletInLiveMode() throws {
22
- let (canAddCard, status) = PushProvisioningUtils.canAddCardToWallet(last4: "4242",
23
+ PushProvisioningUtils.canAddCardToWallet(last4: "4242",
23
24
  primaryAccountIdentifier: "",
24
- testEnv: false)
25
- XCTAssertEqual(canAddCard, false)
26
- XCTAssertEqual(status, PushProvisioningUtils.AddCardToWalletStatus.MISSING_CONFIGURATION)
25
+ testEnv: false,
26
+ hasPairedAppleWatch: false) { canAddCard, status in
27
+ XCTAssertEqual(canAddCard, false)
28
+ XCTAssertEqual(status, PushProvisioningUtils.AddCardToWalletStatus.MISSING_CONFIGURATION)
29
+ }
27
30
  }
28
31
 
29
32
  func testCanAddPaymentPassInTestMode() throws {
@@ -42,8 +45,8 @@ class PushProvisioningTests: XCTestCase {
42
45
 
43
46
  func testCheckIfPassExists() throws {
44
47
  XCTAssertEqual(
45
- PushProvisioningUtils.passExistsWith(last4: "4242"),
46
- false
48
+ PushProvisioningUtils.getPassLocation(last4: "4242"),
49
+ nil
47
50
  )
48
51
  }
49
52
  }
package/jest/mock.js CHANGED
@@ -22,6 +22,27 @@ const mockFunctions = {
22
22
  paymentMethod: {},
23
23
  error: null,
24
24
  })),
25
+ isPlatformPaySupported: jest.fn(async () => true),
26
+ confirmPlatformPaySetupIntent: jest.fn(async () => ({
27
+ setupIntent: {},
28
+ error: null,
29
+ })),
30
+ confirmPlatformPayPayment: jest.fn(async () => ({
31
+ paymentIntent: {},
32
+ error: null,
33
+ })),
34
+ dismissPlatformPay: jest.fn(async () => true),
35
+ createPlatformPayPaymentMethod: jest.fn(async () => ({
36
+ paymentMethod: {},
37
+ token: {},
38
+ error: null,
39
+ })),
40
+ updatePlatformPaySheet: jest.fn(async () => ({
41
+ error: null,
42
+ })),
43
+ openPlatformPaySetup: jest.fn(async () => {
44
+ return;
45
+ }),
25
46
  isApplePaySupported: jest.fn(async () => true),
26
47
  presentApplePay: jest.fn(async () => ({
27
48
  error: null,
@@ -141,6 +162,28 @@ const mockHooks = {
141
162
  ...mockFunctions.openApplePaySetup(),
142
163
  })),
143
164
  })),
165
+ usePlatformPay: jest.fn(() => ({
166
+ loading: false,
167
+ isPlatformPaySupported: true,
168
+ confirmPlatformPaySetupIntent: jest.fn(async () => ({
169
+ ...mockFunctions.confirmPlatformPaySetupIntent(),
170
+ })),
171
+ confirmPlatformPayPayment: jest.fn(async () => ({
172
+ ...mockFunctions.confirmPlatformPayPayment(),
173
+ })),
174
+ dismissPlatformPay: jest.fn(async () => ({
175
+ ...mockFunctions.dismissPlatformPay(),
176
+ })),
177
+ createPlatformPayPaymentMethod: jest.fn(async () => ({
178
+ ...mockFunctions.createPlatformPayPaymentMethod(),
179
+ })),
180
+ updatePlatformPaySheet: jest.fn(async () => ({
181
+ ...mockFunctions.updatePlatformPaySheet(),
182
+ })),
183
+ openPlatformPaySetup: jest.fn(async () => ({
184
+ ...mockFunctions.openPlatformPaySetup(),
185
+ })),
186
+ })),
144
187
  usePaymentSheet: jest.fn(() => ({
145
188
  loading: false,
146
189
  initPaymentSheet: jest.fn(async () => ({
@@ -175,5 +218,6 @@ module.exports = {
175
218
  AuBECSDebitForm: () => 'AuBECSDebitForm',
176
219
  GooglePayButton: () => 'GooglePayButton',
177
220
  AddToWalletButton: () => 'AddToWalletButton',
221
+ PlatformPayButton: () => 'PlatformPayButton',
178
222
  useStripe: jest.fn(() => mockHooks),
179
223
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["NativeStripeSdk.tsx"],"names":["StripeSdk","NativeModules"],"mappings":"gFAAA,yCA8GA,GAAQA,CAAAA,SAAR,CAAsBC,0BAAtB,CAAQD,SAAR,C,aAEeA,S","sourcesContent":["import { NativeModules } from 'react-native';\nimport type {\n PaymentMethod,\n PaymentIntent,\n ApplePay,\n PaymentSheet,\n SetupIntent,\n InitialiseParams,\n CreatePaymentMethodResult,\n RetrievePaymentIntentResult,\n RetrieveSetupIntentResult,\n ConfirmPaymentResult,\n HandleNextActionResult,\n ConfirmSetupIntentResult,\n CreateTokenForCVCUpdateResult,\n InitPaymentSheetResult,\n PresentPaymentSheetResult,\n ConfirmPaymentSheetPaymentResult,\n ApplePayResult,\n CreateTokenResult,\n GooglePayInitResult,\n PayWithGooglePayResult,\n CreateGooglePayPaymentMethodResult,\n GooglePay,\n OpenApplePaySetupResult,\n Token,\n VerifyMicrodepositsParams,\n IsCardInWalletResult,\n CanAddCardToWalletParams,\n CanAddCardToWalletResult,\n FinancialConnections,\n} from './types';\n\ntype NativeStripeSdkType = {\n initialise(params: InitialiseParams): Promise<void>;\n createPaymentMethod(\n params: PaymentMethod.CreateParams,\n options: PaymentMethod.CreateOptions\n ): Promise<CreatePaymentMethodResult>;\n handleNextAction(\n paymentIntentClientSecret: string,\n returnURL?: string | null\n ): Promise<HandleNextActionResult>;\n confirmPayment(\n paymentIntentClientSecret: string,\n params?: PaymentIntent.ConfirmParams,\n options?: PaymentIntent.ConfirmOptions\n ): Promise<ConfirmPaymentResult>;\n isApplePaySupported(): Promise<boolean>;\n presentApplePay(params: ApplePay.PresentParams): Promise<ApplePayResult>;\n confirmApplePayPayment(clientSecret: string): Promise<void>;\n updateApplePaySummaryItems(\n summaryItems: ApplePay.CartSummaryItem[],\n errorAddressFields: Array<{\n field: ApplePay.AddressFields;\n message?: string;\n }>\n ): Promise<void>;\n confirmSetupIntent(\n paymentIntentClientSecret: string,\n params: SetupIntent.ConfirmParams,\n options: SetupIntent.ConfirmOptions\n ): Promise<ConfirmSetupIntentResult>;\n retrievePaymentIntent(\n clientSecret: string\n ): Promise<RetrievePaymentIntentResult>;\n retrieveSetupIntent(clientSecret: string): Promise<RetrieveSetupIntentResult>;\n initPaymentSheet(\n params: PaymentSheet.SetupParams\n ): Promise<InitPaymentSheetResult>;\n presentPaymentSheet(): Promise<PresentPaymentSheetResult>;\n confirmPaymentSheetPayment(): Promise<ConfirmPaymentSheetPaymentResult>;\n createTokenForCVCUpdate(cvc: string): Promise<CreateTokenForCVCUpdateResult>;\n handleURLCallback(url: string): Promise<boolean>;\n createToken(params: Token.CreateParams): Promise<CreateTokenResult>;\n isGooglePaySupported(params: GooglePay.IsSupportedParams): Promise<boolean>;\n initGooglePay(params: GooglePay.InitParams): Promise<GooglePayInitResult>;\n presentGooglePay(\n params: GooglePay.PresentParams\n ): Promise<PayWithGooglePayResult>;\n createGooglePayPaymentMethod(\n params: GooglePay.CreatePaymentMethodParams\n ): Promise<CreateGooglePayPaymentMethodResult>;\n openApplePaySetup(): Promise<OpenApplePaySetupResult>;\n verifyMicrodeposits(\n isPaymentIntent: boolean,\n clientSecret: string,\n params: VerifyMicrodepositsParams\n ): Promise<ConfirmSetupIntentResult | ConfirmPaymentResult>;\n collectBankAccount(\n isPaymentIntent: boolean,\n clientSecret: string,\n params: PaymentMethod.CollectBankAccountParams\n ): Promise<ConfirmSetupIntentResult | ConfirmPaymentResult>;\n getConstants(): { API_VERSIONS: { CORE: string; ISSUING: string } };\n canAddCardToWallet(\n params: CanAddCardToWalletParams\n ): Promise<CanAddCardToWalletResult>;\n isCardInWallet(params: {\n cardLastFour: string;\n }): Promise<IsCardInWalletResult>;\n collectBankAccountToken(\n clientSecret: string\n ): Promise<FinancialConnections.TokenResult>;\n collectFinancialConnectionsAccounts(\n clientSecret: string\n ): Promise<FinancialConnections.SessionResult>;\n resetPaymentSheetCustomer(): Promise<null>;\n};\n\nconst { StripeSdk } = NativeModules;\n\nexport default StripeSdk as NativeStripeSdkType;\n"]}
1
+ {"version":3,"sources":["NativeStripeSdk.tsx"],"names":["StripeSdk","NativeModules"],"mappings":"gFAAA,yCAkIA,GAAQA,CAAAA,SAAR,CAAsBC,0BAAtB,CAAQD,SAAR,C,aAEeA,S","sourcesContent":["import { NativeModules } from 'react-native';\nimport type {\n PaymentMethod,\n PaymentIntent,\n ApplePay,\n PlatformPay,\n PaymentSheet,\n SetupIntent,\n InitialiseParams,\n CreatePaymentMethodResult,\n RetrievePaymentIntentResult,\n RetrieveSetupIntentResult,\n ConfirmPaymentResult,\n HandleNextActionResult,\n ConfirmSetupIntentResult,\n CreateTokenForCVCUpdateResult,\n InitPaymentSheetResult,\n PresentPaymentSheetResult,\n ConfirmPaymentSheetPaymentResult,\n ApplePayResult,\n CreateTokenResult,\n GooglePayInitResult,\n PayWithGooglePayResult,\n CreateGooglePayPaymentMethodResult,\n GooglePay,\n OpenApplePaySetupResult,\n Token,\n VerifyMicrodepositsParams,\n IsCardInWalletResult,\n CanAddCardToWalletParams,\n CanAddCardToWalletResult,\n FinancialConnections,\n} from './types';\n\ntype NativeStripeSdkType = {\n initialise(params: InitialiseParams): Promise<void>;\n createPaymentMethod(\n params: PaymentMethod.CreateParams,\n options: PaymentMethod.CreateOptions\n ): Promise<CreatePaymentMethodResult>;\n handleNextAction(\n paymentIntentClientSecret: string,\n returnURL?: string | null\n ): Promise<HandleNextActionResult>;\n confirmPayment(\n paymentIntentClientSecret: string,\n params?: PaymentIntent.ConfirmParams,\n options?: PaymentIntent.ConfirmOptions\n ): Promise<ConfirmPaymentResult>;\n isApplePaySupported(): Promise<boolean>;\n presentApplePay(params: ApplePay.PresentParams): Promise<ApplePayResult>;\n confirmApplePayPayment(clientSecret: string): Promise<void>;\n updateApplePaySummaryItems(\n summaryItems: ApplePay.CartSummaryItem[],\n errorAddressFields: Array<{\n field: ApplePay.AddressFields;\n message?: string;\n }>\n ): Promise<void>;\n confirmSetupIntent(\n paymentIntentClientSecret: string,\n params: SetupIntent.ConfirmParams,\n options: SetupIntent.ConfirmOptions\n ): Promise<ConfirmSetupIntentResult>;\n retrievePaymentIntent(\n clientSecret: string\n ): Promise<RetrievePaymentIntentResult>;\n retrieveSetupIntent(clientSecret: string): Promise<RetrieveSetupIntentResult>;\n initPaymentSheet(\n params: PaymentSheet.SetupParams\n ): Promise<InitPaymentSheetResult>;\n presentPaymentSheet(): Promise<PresentPaymentSheetResult>;\n confirmPaymentSheetPayment(): Promise<ConfirmPaymentSheetPaymentResult>;\n createTokenForCVCUpdate(cvc: string): Promise<CreateTokenForCVCUpdateResult>;\n handleURLCallback(url: string): Promise<boolean>;\n createToken(params: Token.CreateParams): Promise<CreateTokenResult>;\n isGooglePaySupported(params: GooglePay.IsSupportedParams): Promise<boolean>;\n initGooglePay(params: GooglePay.InitParams): Promise<GooglePayInitResult>;\n presentGooglePay(\n params: GooglePay.PresentParams\n ): Promise<PayWithGooglePayResult>;\n createGooglePayPaymentMethod(\n params: GooglePay.CreatePaymentMethodParams\n ): Promise<CreateGooglePayPaymentMethodResult>;\n openApplePaySetup(): Promise<OpenApplePaySetupResult>;\n verifyMicrodeposits(\n isPaymentIntent: boolean,\n clientSecret: string,\n params: VerifyMicrodepositsParams\n ): Promise<ConfirmSetupIntentResult | ConfirmPaymentResult>;\n collectBankAccount(\n isPaymentIntent: boolean,\n clientSecret: string,\n params: PaymentMethod.CollectBankAccountParams\n ): Promise<ConfirmSetupIntentResult | ConfirmPaymentResult>;\n getConstants(): { API_VERSIONS: { CORE: string; ISSUING: string } };\n canAddCardToWallet(\n params: CanAddCardToWalletParams\n ): Promise<CanAddCardToWalletResult>;\n isCardInWallet(params: {\n cardLastFour: string;\n }): Promise<IsCardInWalletResult>;\n collectBankAccountToken(\n clientSecret: string\n ): Promise<FinancialConnections.TokenResult>;\n collectFinancialConnectionsAccounts(\n clientSecret: string\n ): Promise<FinancialConnections.SessionResult>;\n resetPaymentSheetCustomer(): Promise<null>;\n isPlatformPaySupported(params: {\n googlePay?: GooglePay.IsSupportedParams;\n }): Promise<boolean>;\n createPlatformPayPaymentMethod(\n params: PlatformPay.PaymentMethodParams\n ): Promise<PlatformPay.PaymentMethodResult>;\n dismissPlatformPay(): Promise<boolean>;\n updatePlatformPaySheet(\n summaryItems: Array<ApplePay.CartSummaryItem>,\n shippingMethods: Array<ApplePay.ShippingMethod>,\n errors: Array<PlatformPay.ApplePaySheetError>\n ): Promise<void>;\n confirmPlatformPay(\n clientSecret: string,\n params: PlatformPay.ConfirmParams,\n isPaymentIntent: boolean\n ): Promise<\n PlatformPay.ConfirmPaymentResult | PlatformPay.ConfirmSetupIntentResult\n >;\n};\n\nconst { StripeSdk } = NativeModules;\n\nexport default StripeSdk as NativeStripeSdkType;\n"]}
@@ -0,0 +1,2 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PlatformPayButton=PlatformPayButton;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _PlatformPay=require("../types/PlatformPay");var _jsxFileName="/Users/charliecruzan/stripe/stripe-react-native/src/components/PlatformPayButton.tsx";var _excluded=["type","appearance","onPress","disabled","borderRadius","onShippingMethodSelected","onShippingContactSelected","onCouponCodeEntered"];var GooglePayButtonNative=(0,_reactNative.requireNativeComponent)('GooglePayButton');var ApplePayButtonNative=(0,_reactNative.requireNativeComponent)('ApplePayButton');function PlatformPayButton(_ref){var _ref$type=_ref.type,type=_ref$type===void 0?_PlatformPay.ButtonType.Default:_ref$type,_ref$appearance=_ref.appearance,appearance=_ref$appearance===void 0?_PlatformPay.ButtonStyle.Automatic:_ref$appearance,onPress=_ref.onPress,disabled=_ref.disabled,borderRadius=_ref.borderRadius,onShippingMethodSelected=_ref.onShippingMethodSelected,onShippingContactSelected=_ref.onShippingContactSelected,onCouponCodeEntered=_ref.onCouponCodeEntered,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);var shippingMethodCallback=onShippingMethodSelected?function(value){onShippingMethodSelected&&onShippingMethodSelected(value.nativeEvent);}:undefined;var shippingContactCallback=onShippingContactSelected?function(value){onShippingContactSelected(value.nativeEvent);}:undefined;var couponCodeCallback=onCouponCodeEntered?function(value){onCouponCodeEntered&&onCouponCodeEntered(value.nativeEvent);}:undefined;return _react.default.createElement(_reactNative.TouchableOpacity,{disabled:disabled,activeOpacity:disabled?0.3:1,onPress:onPress,style:disabled?styles.disabled:styles.notDisabled,__self:this,__source:{fileName:_jsxFileName,lineNumber:125,columnNumber:5}},_reactNative.Platform.OS==='ios'?_react.default.createElement(ApplePayButtonNative,(0,_extends2.default)({type:type,buttonStyle:appearance,borderRadius:borderRadius,disabled:disabled,onShippingMethodSelectedAction:shippingMethodCallback,onShippingContactSelectedAction:shippingContactCallback,onCouponCodeEnteredAction:couponCodeCallback},props,{__self:this,__source:{fileName:_jsxFileName,lineNumber:132,columnNumber:9}})):_react.default.createElement(GooglePayButtonNative,(0,_extends2.default)({type:type},props,{__self:this,__source:{fileName:_jsxFileName,lineNumber:143,columnNumber:9}})));}var styles=_reactNative.StyleSheet.create({disabled:{flex:0,opacity:0.3},notDisabled:{flex:0}});
2
+ //# sourceMappingURL=PlatformPayButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PlatformPayButton.tsx"],"names":["GooglePayButtonNative","ApplePayButtonNative","PlatformPayButton","type","ButtonType","Default","appearance","ButtonStyle","Automatic","onPress","disabled","borderRadius","onShippingMethodSelected","onShippingContactSelected","onCouponCodeEntered","props","shippingMethodCallback","value","nativeEvent","undefined","shippingContactCallback","couponCodeCallback","styles","notDisabled","Platform","OS","StyleSheet","create","flex","opacity"],"mappings":"wXAAA,oDACA,yCAUA,iD,6PAOA,GAAMA,CAAAA,qBAAqB,CAAG,wCAA4B,iBAA5B,CAA9B,CACA,GAAMC,CAAAA,oBAAoB,CAAG,wCAA4B,gBAA5B,CAA7B,CA+DO,QAASC,CAAAA,iBAAT,MAUG,oBATRC,IASQ,CATRA,IASQ,oBATDC,wBAAWC,OASV,gCARRC,UAQQ,CARRA,UAQQ,0BARKC,yBAAYC,SAQjB,iBAPRC,OAOQ,MAPRA,OAOQ,CANRC,QAMQ,MANRA,QAMQ,CALRC,YAKQ,MALRA,YAKQ,CAJRC,wBAIQ,MAJRA,wBAIQ,CAHRC,yBAGQ,MAHRA,yBAGQ,CAFRC,mBAEQ,MAFRA,mBAEQ,CADLC,KACK,uDACR,GAAMC,CAAAA,sBAAsB,CAAGJ,wBAAwB,CACnD,SACEK,KADF,CAIK,CACHL,wBAAwB,EAAIA,wBAAwB,CAACK,KAAK,CAACC,WAAP,CAApD,CACD,CAPkD,CAQnDC,SARJ,CAUA,GAAMC,CAAAA,uBAAuB,CAAGP,yBAAyB,CACrD,SACEI,KADF,CAIK,CACHJ,yBAAyB,CAACI,KAAK,CAACC,WAAP,CAAzB,CACD,CAPoD,CAQrDC,SARJ,CAUA,GAAME,CAAAA,kBAAkB,CAAGP,mBAAmB,CAC1C,SACEG,KADF,CAIK,CACHH,mBAAmB,EAAIA,mBAAmB,CAACG,KAAK,CAACC,WAAP,CAA1C,CACD,CAPyC,CAQ1CC,SARJ,CAUA,MACE,8BAAC,6BAAD,EACE,QAAQ,CAAET,QADZ,CAEE,aAAa,CAAEA,QAAQ,CAAG,GAAH,CAAS,CAFlC,CAGE,OAAO,CAAED,OAHX,CAIE,KAAK,CAAEC,QAAQ,CAAGY,MAAM,CAACZ,QAAV,CAAqBY,MAAM,CAACC,WAJ7C,6EAMGC,sBAASC,EAAT,GAAgB,KAAhB,CACC,6BAAC,oBAAD,wBACE,IAAI,CAAEtB,IADR,CAEE,WAAW,CAAEG,UAFf,CAGE,YAAY,CAAEK,YAHhB,CAIE,QAAQ,CAAED,QAJZ,CAKE,8BAA8B,CAAEM,sBALlC,CAME,+BAA+B,CAAEI,uBANnC,CAOE,yBAAyB,CAAEC,kBAP7B,EAQMN,KARN,+EADD,CAYC,6BAAC,qBAAD,wBAAuB,IAAI,CAAEZ,IAA7B,EAAuCY,KAAvC,+EAlBJ,CADF,CAuBD,CAED,GAAMO,CAAAA,MAAM,CAAGI,wBAAWC,MAAX,CAAkB,CAC/BjB,QAAQ,CAAE,CACRkB,IAAI,CAAE,CADE,CAERC,OAAO,CAAE,GAFD,CADqB,CAK/BN,WAAW,CAAE,CACXK,IAAI,CAAE,CADK,CALkB,CAAlB,CAAf","sourcesContent":["import React from 'react';\nimport {\n AccessibilityProps,\n StyleProp,\n ViewStyle,\n requireNativeComponent,\n TouchableOpacity,\n StyleSheet,\n Platform,\n NativeSyntheticEvent,\n} from 'react-native';\nimport {\n ButtonType,\n ButtonStyle,\n ShippingMethod,\n ShippingContact,\n} from '../types/PlatformPay';\n\nconst GooglePayButtonNative = requireNativeComponent<any>('GooglePayButton');\nconst ApplePayButtonNative = requireNativeComponent<any>('ApplePayButton');\n\n/**\n * PlatformPayButton Component Props\n */\nexport interface Props extends AccessibilityProps {\n /** Sets the text displayed by the button. */\n type?: ButtonType;\n /** iOS only. Sets the coloring of the button. */\n appearance?: ButtonStyle;\n /** iOS only. Sets the border radius of the button. */\n borderRadius?: number;\n /** Function called whenever the button is pressed. */\n onPress(): void;\n /** Set to `true` to disable the button from being pressed & apply a slight opacity to indicate that it is unpressable. Defaults to false. */\n disabled?: boolean;\n /**\n * This callback is triggered whenever the user selects a shipping method in the Apple Pay sheet.\n * It receives one parameter: an `event` object with a `shippingMethod` field. You MUST\n * update the Apple Pay sheet in your callback using the updatePlatformPaySheet function, otherwise the\n * Apple Pay sheet will hang and the payment flow will automatically cancel.\n */\n onShippingMethodSelected?: (event: {\n shippingMethod: ShippingMethod;\n }) => void;\n /**\n * This callback is triggered whenever the user selects a shipping contact in the Apple Pay sheet.\n * It receives one parameter: an `event` object with a `shippingContact` field. You MUST\n * update the Apple Pay sheet in your callback using the updatePlatformPaySheet function, otherwise the\n * Apple Pay sheet will hang and the payment flow will automatically cancel.\n */\n onShippingContactSelected?: (event: {\n shippingContact: ShippingContact;\n }) => void;\n /**\n * This callback is triggered whenever the user inputs a coupon code in the Apple Pay sheet.\n * It receives one parameter: an `event` object with a `couponCode` field. You MUST\n * update the Apple Pay sheet in your callback using the updatePlatformPaySheet function, otherwise the\n * Apple Pay sheet will hang and the payment flow will automatically cancel.\n */\n onCouponCodeEntered?: (event: { couponCode: string }) => void;\n testID?: string;\n style?: StyleProp<ViewStyle>;\n}\n\n/**\n * PlatformPayButton Component. Display the platform-specific native wallet pay button: Apple Pay on iOS, and Google Pay on Android.\n *\n * @example\n * ```ts\n * <PlatformPayButton\n * onPress={pay}\n * type={PlatformPay.ButtonType.Subscribe}\n * appearance={PlatformPay.ButtonStyle.WhiteOutline}\n * borderRadius={4}\n * disabled={!isApplePaySupported}\n * style={styles.payButton}\n * />\n * ```\n * @param __namedParameters Props\n * @returns JSX.Element\n * @category ReactComponents\n */\nexport function PlatformPayButton({\n type = ButtonType.Default,\n appearance = ButtonStyle.Automatic,\n onPress,\n disabled,\n borderRadius,\n onShippingMethodSelected,\n onShippingContactSelected,\n onCouponCodeEntered,\n ...props\n}: Props) {\n const shippingMethodCallback = onShippingMethodSelected\n ? (\n value: NativeSyntheticEvent<{\n shippingMethod: ShippingMethod;\n }>\n ) => {\n onShippingMethodSelected && onShippingMethodSelected(value.nativeEvent);\n }\n : undefined;\n\n const shippingContactCallback = onShippingContactSelected\n ? (\n value: NativeSyntheticEvent<{\n shippingContact: ShippingContact;\n }>\n ) => {\n onShippingContactSelected(value.nativeEvent);\n }\n : undefined;\n\n const couponCodeCallback = onCouponCodeEntered\n ? (\n value: NativeSyntheticEvent<{\n couponCode: string;\n }>\n ) => {\n onCouponCodeEntered && onCouponCodeEntered(value.nativeEvent);\n }\n : undefined;\n\n return (\n <TouchableOpacity\n disabled={disabled}\n activeOpacity={disabled ? 0.3 : 1}\n onPress={onPress}\n style={disabled ? styles.disabled : styles.notDisabled}\n >\n {Platform.OS === 'ios' ? (\n <ApplePayButtonNative\n type={type}\n buttonStyle={appearance}\n borderRadius={borderRadius}\n disabled={disabled}\n onShippingMethodSelectedAction={shippingMethodCallback}\n onShippingContactSelectedAction={shippingContactCallback}\n onCouponCodeEnteredAction={couponCodeCallback}\n {...props}\n />\n ) : (\n <GooglePayButtonNative type={type} {...props} />\n )}\n </TouchableOpacity>\n );\n}\n\nconst styles = StyleSheet.create({\n disabled: {\n flex: 0,\n opacity: 0.3,\n },\n notDisabled: {\n flex: 0,\n },\n});\n"]}