react-native-payengine 1.0.6 → 2.0.4

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 (309) hide show
  1. package/README.md +269 -110
  2. package/android/.gradle/6.1.1/executionHistory/executionHistory.lock +0 -0
  3. package/android/.gradle/{5.6.4/fileHashes/resourceHashesCache.bin → 6.1.1/fileHashes/fileHashes.bin} +0 -0
  4. package/android/.gradle/6.1.1/fileHashes/fileHashes.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  6. package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
  7. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  8. package/android/.gradle/checksums/checksums.lock +0 -0
  9. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  10. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  11. package/android/.gradle/config.properties +2 -0
  12. package/android/.idea/caches/deviceStreaming.xml +329 -0
  13. package/android/.idea/gradle.xml +2 -3
  14. package/android/.idea/kotlinc.xml +6 -0
  15. package/android/.idea/migrations.xml +10 -0
  16. package/android/.idea/misc.xml +1 -1
  17. package/android/build.gradle +25 -4
  18. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  19. package/android/payment-sdk-debug-1.0.2.aar +0 -0
  20. package/android/payment-sdk-release-1.0.2.aar +0 -0
  21. package/android/src/main/java/com/reactnativepayengine/PayengineModule.java +1 -5
  22. package/android/src/main/java/com/reactnativepayengine/PayenginePackage.java +9 -33
  23. package/android/src/main/java/com/reactnativepayengine/util/MetricsUtil.kt +44 -0
  24. package/android/src/main/java/com/reactnativepayengine/v2/RNPEFraudAnalyticsApplication.java +55 -0
  25. package/android/src/main/java/com/reactnativepayengine/v2/RNPayEngineNative.kt +73 -0
  26. package/android/src/main/java/com/reactnativepayengine/v2/features/googlepay/RNPEGooglePayButton.kt +105 -0
  27. package/android/src/main/java/com/reactnativepayengine/v2/features/googlepay/RNPEGooglePayButtonManager.kt +56 -0
  28. package/android/src/main/java/com/reactnativepayengine/v2/securefields/RNPEEvents.kt +11 -0
  29. package/android/src/main/java/com/reactnativepayengine/v2/securefields/RNPEField.kt +17 -0
  30. package/android/src/main/java/com/reactnativepayengine/v2/securefields/bankaccount/RNBankAccountViewManager.kt +103 -0
  31. package/android/src/main/java/com/reactnativepayengine/v2/securefields/bankaccount/RNPEBankAccountView.kt +77 -0
  32. package/android/src/main/java/com/reactnativepayengine/v2/securefields/creditcard/RNPECreditCardView.kt +77 -0
  33. package/android/src/main/java/com/reactnativepayengine/v2/securefields/creditcard/RNPECreditCardViewManager.kt +103 -0
  34. package/ios/PayEngineSDK.xcframework/Info.plist +44 -0
  35. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Frameworks/libKountDataCollector.a +0 -0
  36. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Headers/CustomWindow.h +25 -0
  37. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Headers/KDataCollector.h +106 -0
  38. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Headers/KountAnalyticsViewController.h +82 -0
  39. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Headers/PayEngineSDK-Swift.h +622 -0
  40. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Headers/PayEngineSDK.h +20 -0
  41. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Headers/UIControl+CustomControl.h +33 -0
  42. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Headers/UIViewController+TouchControl.h +27 -0
  43. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Info.plist +0 -0
  44. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios.abi.json +15143 -0
  45. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +326 -0
  46. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios.private.swiftinterface-e +326 -0
  47. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  48. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios.swiftinterface +326 -0
  49. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios.swiftinterface-e +326 -0
  50. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/Modules/module.modulemap +11 -0
  51. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/PayEngineSDK +0 -0
  52. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/VGSCollectSDK_VGSCollectSDK.bundle/Assets.car +0 -0
  53. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/VGSCollectSDK_VGSCollectSDK.bundle/Info.plist +0 -0
  54. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/browserInfo.html +136 -0
  55. package/ios/PayEngineSDK.xcframework/ios-arm64/PayEngineSDK.framework/perform3ds.html +467 -0
  56. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Frameworks/libKountDataCollector.a +0 -0
  57. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Headers/CustomWindow.h +25 -0
  58. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Headers/KDataCollector.h +106 -0
  59. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Headers/KountAnalyticsViewController.h +82 -0
  60. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Headers/PayEngineSDK-Swift.h +1240 -0
  61. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Headers/PayEngineSDK.h +20 -0
  62. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Headers/UIControl+CustomControl.h +33 -0
  63. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Headers/UIViewController+TouchControl.h +27 -0
  64. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Info.plist +0 -0
  65. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +15143 -0
  66. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +326 -0
  67. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface-e +326 -0
  68. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  69. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +326 -0
  70. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface-e +326 -0
  71. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +15143 -0
  72. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +326 -0
  73. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface-e +326 -0
  74. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  75. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +326 -0
  76. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/PayEngineSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface-e +326 -0
  77. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/Modules/module.modulemap +11 -0
  78. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/PayEngineSDK +0 -0
  79. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/VGSCollectSDK_VGSCollectSDK.bundle/Assets.car +0 -0
  80. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/VGSCollectSDK_VGSCollectSDK.bundle/Info.plist +0 -0
  81. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/browserInfo.html +136 -0
  82. package/ios/PayEngineSDK.xcframework/ios-arm64_x86_64-simulator/PayEngineSDK.framework/perform3ds.html +467 -0
  83. package/ios/Payengine.xcodeproj/project.pbxproj +14 -4
  84. package/ios/Payengine.xcodeproj/project.xcworkspace/xcuserdata/tringuyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  85. package/ios/Payengine.xcworkspace/contents.xcworkspacedata +7 -0
  86. package/ios/Payengine.xcworkspace/xcuserdata/tringuyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  87. package/ios/Sources/Classes/ApplePay/RNPEApplePayButton.swift +111 -0
  88. package/ios/Sources/Classes/ApplePay/RNPEApplePayPaymentRequest.swift +43 -0
  89. package/ios/Sources/Classes/RNPEError.swift +12 -0
  90. package/ios/Sources/Classes/RNPEEventEmitter.swift +29 -0
  91. package/ios/Sources/Classes/RNPEUtils.swift +30 -0
  92. package/ios/Sources/Classes/RNPayEngineNative.swift +87 -0
  93. package/ios/Sources/Classes/SecureFields/RNPEBankAccountView.swift +130 -0
  94. package/ios/Sources/Classes/SecureFields/RNPECreditCardView.swift +129 -0
  95. package/ios/Sources/Classes/SecureFields/RNPEEvents.swift +15 -0
  96. package/ios/Sources/Classes/SecureFields/RNPEField.swift +26 -0
  97. package/ios/Sources/Payengine.m +73 -0
  98. package/ios/Sources/Payengine.swift +13 -0
  99. package/lib/commonjs/components/PayEngine.js +2 -123
  100. package/lib/commonjs/components/PayEngine.js.map +1 -1
  101. package/lib/commonjs/components/v2/ApplePay/PEApplePayButton.js +55 -0
  102. package/lib/commonjs/components/v2/ApplePay/PEApplePayButton.js.map +1 -0
  103. package/lib/commonjs/components/v2/GooglePay/PEGooglePayButton.js +70 -0
  104. package/lib/commonjs/components/v2/GooglePay/PEGooglePayButton.js.map +1 -0
  105. package/lib/commonjs/components/v2/PEPaymentRequest.js +32 -0
  106. package/lib/commonjs/components/v2/PEPaymentRequest.js.map +1 -0
  107. package/lib/commonjs/components/v2/PayEngineNative.js +36 -0
  108. package/lib/commonjs/components/v2/PayEngineNative.js.map +1 -0
  109. package/lib/commonjs/components/{SecureFields/VGS/TextField.js → v2/PayEngineProvider.js} +28 -12
  110. package/lib/commonjs/components/v2/PayEngineProvider.js.map +1 -0
  111. package/lib/commonjs/components/v2/SecureFields/BankAccountView.js +89 -0
  112. package/lib/commonjs/components/v2/SecureFields/BankAccountView.js.map +1 -0
  113. package/lib/commonjs/components/v2/SecureFields/CreditCardView.js +90 -0
  114. package/lib/commonjs/components/v2/SecureFields/CreditCardView.js.map +1 -0
  115. package/lib/commonjs/components/v2/SecureFields/IPEField.js +6 -0
  116. package/lib/commonjs/components/v2/SecureFields/IPEField.js.map +1 -0
  117. package/lib/commonjs/components/v2/SecureFields/PEBankAccount.js +6 -0
  118. package/lib/commonjs/components/v2/SecureFields/PEBankAccount.js.map +1 -0
  119. package/lib/commonjs/components/v2/SecureFields/PECard.js +6 -0
  120. package/lib/commonjs/components/v2/SecureFields/PECard.js.map +1 -0
  121. package/lib/commonjs/components/v2/SecureFields/PEKeyboardType.js +18 -0
  122. package/lib/commonjs/components/v2/SecureFields/PEKeyboardType.js.map +1 -0
  123. package/lib/commonjs/index.js +62 -18
  124. package/lib/commonjs/index.js.map +1 -1
  125. package/lib/commonjs/interfaces/index.js +0 -4
  126. package/lib/commonjs/interfaces/index.js.map +1 -1
  127. package/lib/commonjs/utils/index.js +10 -38
  128. package/lib/commonjs/utils/index.js.map +1 -1
  129. package/lib/module/components/PayEngine.js +3 -118
  130. package/lib/module/components/PayEngine.js.map +1 -1
  131. package/lib/module/components/v2/ApplePay/PEApplePayButton.js +41 -0
  132. package/lib/module/components/v2/ApplePay/PEApplePayButton.js.map +1 -0
  133. package/lib/module/components/v2/GooglePay/PEGooglePayButton.js +56 -0
  134. package/lib/module/components/v2/GooglePay/PEGooglePayButton.js.map +1 -0
  135. package/lib/module/components/v2/PEPaymentRequest.js +23 -0
  136. package/lib/module/components/v2/PEPaymentRequest.js.map +1 -0
  137. package/lib/module/components/v2/PayEngineNative.js +25 -0
  138. package/lib/module/components/v2/PayEngineNative.js.map +1 -0
  139. package/lib/module/components/v2/PayEngineProvider.js +30 -0
  140. package/lib/module/components/v2/PayEngineProvider.js.map +1 -0
  141. package/lib/module/components/v2/SecureFields/BankAccountView.js +75 -0
  142. package/lib/module/components/v2/SecureFields/BankAccountView.js.map +1 -0
  143. package/lib/module/components/v2/SecureFields/CreditCardView.js +76 -0
  144. package/lib/module/components/v2/SecureFields/CreditCardView.js.map +1 -0
  145. package/lib/module/components/v2/SecureFields/IPEField.js +2 -0
  146. package/lib/module/components/v2/SecureFields/IPEField.js.map +1 -0
  147. package/lib/module/components/v2/SecureFields/PEBankAccount.js +2 -0
  148. package/lib/module/components/v2/SecureFields/PEBankAccount.js.map +1 -0
  149. package/lib/module/components/v2/SecureFields/PECard.js +2 -0
  150. package/lib/module/components/v2/SecureFields/PECard.js.map +1 -0
  151. package/lib/module/components/v2/SecureFields/PEKeyboardType.js +11 -0
  152. package/lib/module/components/v2/SecureFields/PEKeyboardType.js.map +1 -0
  153. package/lib/module/index.js +15 -6
  154. package/lib/module/index.js.map +1 -1
  155. package/lib/module/interfaces/index.js +1 -1
  156. package/lib/module/interfaces/index.js.map +1 -1
  157. package/lib/module/utils/index.js +6 -37
  158. package/lib/module/utils/index.js.map +1 -1
  159. package/lib/typescript/components/PayEngine.d.ts +1 -14
  160. package/lib/typescript/components/v2/ApplePay/PEApplePayButton.d.ts +12 -0
  161. package/lib/typescript/components/v2/GooglePay/PEGooglePayButton.d.ts +12 -0
  162. package/lib/typescript/components/v2/PEPaymentRequest.d.ts +13 -0
  163. package/lib/typescript/components/v2/PayEngineNative.d.ts +5 -0
  164. package/lib/typescript/components/v2/PayEngineProvider.d.ts +8 -0
  165. package/lib/typescript/components/v2/SecureFields/BankAccountView.d.ts +14 -0
  166. package/lib/typescript/components/v2/SecureFields/CreditCardView.d.ts +14 -0
  167. package/lib/typescript/components/v2/SecureFields/IPEField.d.ts +10 -0
  168. package/lib/typescript/components/v2/SecureFields/PEBankAccount.d.ts +11 -0
  169. package/lib/typescript/components/v2/SecureFields/PECard.d.ts +13 -0
  170. package/lib/typescript/components/v2/SecureFields/PEKeyboardType.d.ts +7 -0
  171. package/lib/typescript/index.d.ts +13 -6
  172. package/lib/typescript/interfaces/index.d.ts +0 -27
  173. package/lib/typescript/utils/index.d.ts +3 -36
  174. package/package.json +11 -6
  175. package/react-native-payengine.podspec +2 -2
  176. package/src/components/PayEngine.tsx +5 -118
  177. package/src/components/v2/ApplePay/PEApplePayButton.tsx +74 -0
  178. package/src/components/v2/GooglePay/PEGooglePayButton.tsx +73 -0
  179. package/src/components/v2/PEPaymentRequest.ts +20 -0
  180. package/src/components/v2/PayEngineNative.tsx +22 -0
  181. package/src/components/v2/PayEngineProvider.tsx +30 -0
  182. package/src/components/v2/SecureFields/BankAccountView.tsx +95 -0
  183. package/src/components/v2/SecureFields/CreditCardView.tsx +96 -0
  184. package/src/components/v2/SecureFields/IPEField.ts +12 -0
  185. package/src/components/v2/SecureFields/PEBankAccount.ts +12 -0
  186. package/src/components/v2/SecureFields/PECard.ts +14 -0
  187. package/src/components/v2/SecureFields/PEKeyboardType.ts +8 -0
  188. package/src/index.tsx +49 -22
  189. package/src/interfaces/index.ts +0 -32
  190. package/src/utils/index.ts +8 -36
  191. package/android/.gradle/5.6.4/executionHistory/executionHistory.bin +0 -0
  192. package/android/.gradle/5.6.4/executionHistory/executionHistory.lock +0 -0
  193. package/android/.gradle/5.6.4/fileContent/fileContent.lock +0 -0
  194. package/android/.gradle/5.6.4/fileHashes/fileHashes.bin +0 -0
  195. package/android/.gradle/5.6.4/fileHashes/fileHashes.lock +0 -0
  196. package/android/.gradle/5.6.4/javaCompile/classAnalysis.bin +0 -0
  197. package/android/.gradle/5.6.4/javaCompile/jarAnalysis.bin +0 -0
  198. package/android/.gradle/5.6.4/javaCompile/javaCompile.lock +0 -0
  199. package/android/.gradle/5.6.4/javaCompile/taskHistory.bin +0 -0
  200. package/android/src/main/java/com/reactnativepayengine/collect/VGSCollectModule.java +0 -153
  201. package/android/src/main/java/com/reactnativepayengine/collect/VGSCollectOnCreateViewInstanceListener.java +0 -6
  202. package/android/src/main/java/com/reactnativepayengine/collect/fields/VGSCVCField.java +0 -67
  203. package/android/src/main/java/com/reactnativepayengine/collect/fields/VGSCardHolderNameField.java +0 -53
  204. package/android/src/main/java/com/reactnativepayengine/collect/fields/VGSCardNumberField.java +0 -57
  205. package/android/src/main/java/com/reactnativepayengine/collect/fields/VGSExpDateField.java +0 -54
  206. package/android/src/main/java/com/reactnativepayengine/collect/fields/VGSTextField.java +0 -57
  207. package/android/src/main/java/com/reactnativepayengine/collect/fields/VGSZipCodeField.java +0 -62
  208. package/android/src/main/java/com/reactnativepayengine/util/ResourceUtil.java +0 -14
  209. package/ios/Payengine.m +0 -72
  210. package/ios/Payengine.swift +0 -720
  211. package/lib/commonjs/components/ApplePay/PayEngineApplePay.js +0 -71
  212. package/lib/commonjs/components/ApplePay/PayEngineApplePay.js.map +0 -1
  213. package/lib/commonjs/components/ApplePay/index.js +0 -46
  214. package/lib/commonjs/components/ApplePay/index.js.map +0 -1
  215. package/lib/commonjs/components/ApplePay/interfaces.js +0 -2
  216. package/lib/commonjs/components/ApplePay/interfaces.js.map +0 -1
  217. package/lib/commonjs/components/CreditCardForm/index.js +0 -76
  218. package/lib/commonjs/components/CreditCardForm/index.js.map +0 -1
  219. package/lib/commonjs/components/GooglePay/PayEngineGooglePay.js +0 -65
  220. package/lib/commonjs/components/GooglePay/PayEngineGooglePay.js.map +0 -1
  221. package/lib/commonjs/components/GooglePay/index.js +0 -40
  222. package/lib/commonjs/components/GooglePay/index.js.map +0 -1
  223. package/lib/commonjs/components/GooglePay/interfaces.js +0 -2
  224. package/lib/commonjs/components/GooglePay/interfaces.js.map +0 -1
  225. package/lib/commonjs/components/Legacy/CreditCardFormLegacy.js +0 -323
  226. package/lib/commonjs/components/Legacy/CreditCardFormLegacy.js.map +0 -1
  227. package/lib/commonjs/components/SecureFields/VGS/CVCField.js +0 -26
  228. package/lib/commonjs/components/SecureFields/VGS/CVCField.js.map +0 -1
  229. package/lib/commonjs/components/SecureFields/VGS/CardHolderNameField.js +0 -26
  230. package/lib/commonjs/components/SecureFields/VGS/CardHolderNameField.js.map +0 -1
  231. package/lib/commonjs/components/SecureFields/VGS/CardNumberField.js +0 -26
  232. package/lib/commonjs/components/SecureFields/VGS/CardNumberField.js.map +0 -1
  233. package/lib/commonjs/components/SecureFields/VGS/CollectManager.js +0 -60
  234. package/lib/commonjs/components/SecureFields/VGS/CollectManager.js.map +0 -1
  235. package/lib/commonjs/components/SecureFields/VGS/ExpDateField.js +0 -26
  236. package/lib/commonjs/components/SecureFields/VGS/ExpDateField.js.map +0 -1
  237. package/lib/commonjs/components/SecureFields/VGS/TextField.js.map +0 -1
  238. package/lib/commonjs/components/SecureFields/VGS/ZipCodeField.js +0 -26
  239. package/lib/commonjs/components/SecureFields/VGS/ZipCodeField.js.map +0 -1
  240. package/lib/commonjs/components/SecureFields/index.js +0 -34
  241. package/lib/commonjs/components/SecureFields/index.js.map +0 -1
  242. package/lib/module/components/ApplePay/PayEngineApplePay.js +0 -58
  243. package/lib/module/components/ApplePay/PayEngineApplePay.js.map +0 -1
  244. package/lib/module/components/ApplePay/index.js +0 -35
  245. package/lib/module/components/ApplePay/index.js.map +0 -1
  246. package/lib/module/components/ApplePay/interfaces.js +0 -2
  247. package/lib/module/components/ApplePay/interfaces.js.map +0 -1
  248. package/lib/module/components/CreditCardForm/index.js +0 -60
  249. package/lib/module/components/CreditCardForm/index.js.map +0 -1
  250. package/lib/module/components/GooglePay/PayEngineGooglePay.js +0 -52
  251. package/lib/module/components/GooglePay/PayEngineGooglePay.js.map +0 -1
  252. package/lib/module/components/GooglePay/index.js +0 -29
  253. package/lib/module/components/GooglePay/index.js.map +0 -1
  254. package/lib/module/components/GooglePay/interfaces.js +0 -2
  255. package/lib/module/components/GooglePay/interfaces.js.map +0 -1
  256. package/lib/module/components/Legacy/CreditCardFormLegacy.js +0 -302
  257. package/lib/module/components/Legacy/CreditCardFormLegacy.js.map +0 -1
  258. package/lib/module/components/SecureFields/VGS/CVCField.js +0 -14
  259. package/lib/module/components/SecureFields/VGS/CVCField.js.map +0 -1
  260. package/lib/module/components/SecureFields/VGS/CardHolderNameField.js +0 -14
  261. package/lib/module/components/SecureFields/VGS/CardHolderNameField.js.map +0 -1
  262. package/lib/module/components/SecureFields/VGS/CardNumberField.js +0 -14
  263. package/lib/module/components/SecureFields/VGS/CardNumberField.js.map +0 -1
  264. package/lib/module/components/SecureFields/VGS/CollectManager.js +0 -45
  265. package/lib/module/components/SecureFields/VGS/CollectManager.js.map +0 -1
  266. package/lib/module/components/SecureFields/VGS/ExpDateField.js +0 -14
  267. package/lib/module/components/SecureFields/VGS/ExpDateField.js.map +0 -1
  268. package/lib/module/components/SecureFields/VGS/TextField.js +0 -17
  269. package/lib/module/components/SecureFields/VGS/TextField.js.map +0 -1
  270. package/lib/module/components/SecureFields/VGS/ZipCodeField.js +0 -14
  271. package/lib/module/components/SecureFields/VGS/ZipCodeField.js.map +0 -1
  272. package/lib/module/components/SecureFields/index.js +0 -17
  273. package/lib/module/components/SecureFields/index.js.map +0 -1
  274. package/lib/typescript/components/ApplePay/PayEngineApplePay.d.ts +0 -12
  275. package/lib/typescript/components/ApplePay/index.d.ts +0 -7
  276. package/lib/typescript/components/ApplePay/interfaces.d.ts +0 -20
  277. package/lib/typescript/components/CreditCardForm/index.d.ts +0 -3
  278. package/lib/typescript/components/GooglePay/PayEngineGooglePay.d.ts +0 -10
  279. package/lib/typescript/components/GooglePay/index.d.ts +0 -7
  280. package/lib/typescript/components/GooglePay/interfaces.d.ts +0 -38
  281. package/lib/typescript/components/Legacy/CreditCardFormLegacy.d.ts +0 -4
  282. package/lib/typescript/components/SecureFields/VGS/CVCField.d.ts +0 -10
  283. package/lib/typescript/components/SecureFields/VGS/CardHolderNameField.d.ts +0 -10
  284. package/lib/typescript/components/SecureFields/VGS/CardNumberField.d.ts +0 -10
  285. package/lib/typescript/components/SecureFields/VGS/CollectManager.d.ts +0 -12
  286. package/lib/typescript/components/SecureFields/VGS/ExpDateField.d.ts +0 -10
  287. package/lib/typescript/components/SecureFields/VGS/TextField.d.ts +0 -14
  288. package/lib/typescript/components/SecureFields/VGS/ZipCodeField.d.ts +0 -10
  289. package/lib/typescript/components/SecureFields/index.d.ts +0 -16
  290. package/src/components/ApplePay/PayEngineApplePay.ts +0 -61
  291. package/src/components/ApplePay/index.ts +0 -32
  292. package/src/components/ApplePay/interfaces.ts +0 -25
  293. package/src/components/CreditCardForm/index.tsx +0 -43
  294. package/src/components/GooglePay/PayEngineGooglePay.ts +0 -48
  295. package/src/components/GooglePay/index.ts +0 -39
  296. package/src/components/GooglePay/interfaces.ts +0 -42
  297. package/src/components/Legacy/CreditCardFormLegacy.tsx +0 -292
  298. package/src/components/SecureFields/VGS/CVCField.tsx +0 -21
  299. package/src/components/SecureFields/VGS/CardHolderNameField.tsx +0 -21
  300. package/src/components/SecureFields/VGS/CardNumberField.tsx +0 -21
  301. package/src/components/SecureFields/VGS/CollectManager.tsx +0 -74
  302. package/src/components/SecureFields/VGS/ExpDateField.tsx +0 -21
  303. package/src/components/SecureFields/VGS/TextField.tsx +0 -27
  304. package/src/components/SecureFields/VGS/ZipCodeField.tsx +0 -21
  305. package/src/components/SecureFields/index.ts +0 -17
  306. /package/android/.gradle/{5.6.4 → 6.1.1}/fileChanges/last-build.bin +0 -0
  307. /package/android/.gradle/{5.6.4 → 6.1.1}/gc.properties +0 -0
  308. /package/android/{vgscollect-1.7.2-debug.aar → securefields-1.7.2-debug.aar} +0 -0
  309. /package/ios/{Payengine-Bridging-Header.h → Sources/Payengine-Bridging-Header.h} +0 -0
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import type IPEField from './IPEField';
3
+ import type PEBankAccount from './PEBankAccount';
4
+ export interface PEBankAccountViewProps {
5
+ additionalFields?: IPEField[];
6
+ }
7
+ export interface PEBankAccountViewMethods {
8
+ submit: (merchantId: string, additionalData: {
9
+ [key: string]: string;
10
+ }) => Promise<PEBankAccount>;
11
+ showKeyboard: () => void;
12
+ hideKeyboard: () => void;
13
+ }
14
+ export declare const PEBankAccountView: React.ForwardRefExoticComponent<PEBankAccountViewProps & React.RefAttributes<PEBankAccountViewMethods>>;
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import type IPEField from './IPEField';
3
+ import type PECard from './PECard';
4
+ export interface PECreditCardViewProps {
5
+ additionalFields?: IPEField[];
6
+ }
7
+ export interface PECreditCardViewMethods {
8
+ submit: (merchantId: string, additionalData: {
9
+ [key: string]: string;
10
+ }) => Promise<PECard>;
11
+ showKeyboard: () => void;
12
+ hideKeyboard: () => void;
13
+ }
14
+ export declare const PECreditCardView: React.ForwardRefExoticComponent<PECreditCardViewProps & React.RefAttributes<PECreditCardViewMethods>>;
@@ -0,0 +1,10 @@
1
+ import type PEKeyboardType from "./PEKeyboardType";
2
+ interface IPEField {
3
+ name: string;
4
+ type: string;
5
+ placeholder: string;
6
+ keyboardType: PEKeyboardType;
7
+ isRequired: boolean;
8
+ pattern?: string;
9
+ }
10
+ export default IPEField;
@@ -0,0 +1,11 @@
1
+ interface PEBankAccount {
2
+ id: string;
3
+ token: string;
4
+ account_data: {
5
+ first_name: string;
6
+ last_name: string;
7
+ routing_number: string;
8
+ last_4: string;
9
+ };
10
+ }
11
+ export default PEBankAccount;
@@ -0,0 +1,13 @@
1
+ interface PECard {
2
+ token: string;
3
+ card_data: {
4
+ id: string;
5
+ brand: string;
6
+ last_4: string;
7
+ exp_year: string;
8
+ exp_month: string;
9
+ name: string;
10
+ address_zip?: string;
11
+ };
12
+ }
13
+ export default PECard;
@@ -0,0 +1,7 @@
1
+ declare enum PEKeyboardType {
2
+ alphabet = "alphabet",
3
+ number = "number",
4
+ phone = "phone",
5
+ normal = "normal"
6
+ }
7
+ export default PEKeyboardType;
@@ -1,9 +1,16 @@
1
1
  import PayEngine from './components/PayEngine';
2
- import { SecureFields } from './components/SecureFields/index';
3
- import { CreditCardForm } from './components/CreditCardForm/index';
4
- import CreditCardFormLegacy from './components/Legacy/CreditCardFormLegacy';
5
2
  import type { IPayEngineConfig } from './interfaces/index';
6
- import { PayEngineGooglePay } from './components/GooglePay/PayEngineGooglePay';
7
- import { PayEngineApplePay } from './components/ApplePay/PayEngineApplePay';
3
+ import { PECreditCardView, PECreditCardViewMethods } from './components/v2/SecureFields/CreditCardView';
4
+ import { PEBankAccountView, PEBankAccountViewMethods } from './components/v2/SecureFields/BankAccountView';
5
+ import type IPEField from './components/v2/SecureFields/IPEField';
6
+ import type PECard from './components/v2/SecureFields/PECard';
7
+ import type PEBankAccount from './components/v2/SecureFields/PEBankAccount';
8
+ import { PayEngineProvider } from './components/v2/PayEngineProvider';
9
+ import PayEngineNative from './components/v2/PayEngineNative';
10
+ import { PEApplePayButton } from './components/v2/ApplePay/PEApplePayButton';
11
+ import { PEPaymentRequest } from './components/v2/PEPaymentRequest';
12
+ import { PEGooglePayButton } from './components/v2/GooglePay/PEGooglePayButton';
13
+ import * as PayEngineUtils from './utils/index';
14
+ import PEKeyboardType from './components/v2/SecureFields/PEKeyboardType';
8
15
  declare const PayEngineStatic: any;
9
- export { PayEngineStatic, PayEngine, SecureFields, CreditCardForm, CreditCardFormLegacy, IPayEngineConfig, PayEngineGooglePay, PayEngineApplePay };
16
+ export { PayEngineStatic, PayEngine, IPayEngineConfig, PayEngineUtils, PayEngineProvider, PayEngineNative, PEKeyboardType, IPEField, PECreditCardView, PECreditCardViewMethods, PECard, PEBankAccountView, PEBankAccountViewMethods, PEBankAccount, PEApplePayButton, PEPaymentRequest, PEGooglePayButton, };
@@ -1,33 +1,6 @@
1
- import type { StyleProp, ViewStyle } from 'react-native';
2
- import type { GooglePayRequestData } from '../components/GooglePay/interfaces';
3
1
  export interface IPayEngineConfig {
4
2
  publicKey: string;
5
3
  version?: string;
6
4
  scriptURL?: string;
7
5
  logLevel?: number;
8
6
  }
9
- export interface CreditCardFormProps {
10
- style?: StyleProp<ViewStyle>;
11
- merchantId?: string;
12
- showZipCode?: boolean;
13
- config: IPayEngineConfig;
14
- }
15
- export interface CreditCardFormMethods {
16
- createCard: (merchantId?: string) => Promise<any>;
17
- }
18
- export interface MobilePaymentConfig {
19
- base_url: string;
20
- country: string;
21
- currency: string;
22
- gateway: string;
23
- google_pay: GooglePayRequestData;
24
- apple_pay: {
25
- merchantName: string;
26
- supportedCardNetworks: string[];
27
- };
28
- }
29
- export interface PaymentRequest {
30
- amount: number;
31
- currencyCode?: string;
32
- countryCode?: string;
33
- }
@@ -1,44 +1,11 @@
1
1
  import type { IPayEngineConfig } from '../interfaces/index';
2
+ export declare class PEDeprecationError extends Error {
3
+ constructor();
4
+ }
2
5
  export declare const getHttpHeaders: (config: IPayEngineConfig) => {
3
6
  Authorization: string;
4
7
  };
5
8
  export declare const getBaseURL: (config: IPayEngineConfig) => string;
6
9
  export declare const createHttpClient: (config: IPayEngineConfig) => import("axios").AxiosInstance;
7
10
  export declare function getScriptURL(config: IPayEngineConfig): string;
8
- /**
9
- * <script>
10
- console.log("AAAAAAAA")
11
- var component = document.getElementById("component");
12
- var onEvent = function(event) {
13
- console.log({ event })
14
- }
15
- console.log('component')
16
- component.addEventListener('stepChange', function(e) {
17
- console.log('step change')
18
- })
19
- function addEventListenerAll(target, listener, ...otherArguments) {
20
-
21
- // install listeners for all natively triggered events
22
- for (const key in target) {
23
- if (/^on/.test(key)) {
24
- const eventType = key.substr(2);
25
- target.addEventListener(eventType, listener, ...otherArguments);
26
- }
27
- }
28
-
29
- // dynamically install listeners for all manually triggered events, just-in-time before they're dispatched ;D
30
- const dispatchEvent_original = EventTarget.prototype.dispatchEvent;
31
- function dispatchEvent(event) {
32
- console.log('event test', event.type)
33
- target.addEventListener(event.type, listener, ...otherArguments); // multiple identical listeners are automatically discarded
34
- dispatchEvent_original.apply(this, arguments);
35
- }
36
- EventTarget.prototype.dispatchEvent = dispatchEvent;
37
- if (EventTarget.prototype.dispatchEvent !== dispatchEvent) throw new Error('Browser is smarter than you think');
38
-
39
- }
40
-
41
- // addEventListenerAll(component, onEvent);
42
- </script>
43
- */
44
11
  export declare const debuggingScript = "\nconst consoleLog = (type, ...log) => window.ReactNativeWebView.postMessage(JSON.stringify({'type': 'Console', 'data': {'type': type, 'log': log}}));\nconsole = {\n log: (...log) => consoleLog('log', ...log),\n debug: (...log) => consoleLog('debug', ...log),\n info: (...log) => consoleLog('info', ...log),\n warn: (...log) => consoleLog('warn', ...log),\n error: (...log) => consoleLog('error', ...log),\n verbose: (...log) => consoleLog('verbose', ...log),\n};\n\nconst dispatchEvent_original = EventTarget.prototype.dispatchEvent;\nfunction dispatchEvent(event) {\n if (event.type && !event.type.startsWith('react')) {\n ReactNativeWebView.postMessage(JSON.stringify({\n type: 'PayEngine',\n event: {\n type: event.type,\n detail: event.detail\n }\n }))\n }\n}\nEventTarget.prototype.dispatchEvent = dispatchEvent;\n";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-payengine",
3
- "version": "1.0.6",
3
+ "version": "2.0.4",
4
4
  "description": "PayEngine SDK for React Native",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -29,6 +29,8 @@
29
29
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
30
30
  "prepare": "bob build",
31
31
  "release": "release-it",
32
+ "update-release": "release-it --no-increment",
33
+ "beta": "release-it major --preRelease=beta",
32
34
  "example": "yarn --cwd example",
33
35
  "bootstrap": "yarn example && yarn && yarn example pods"
34
36
  },
@@ -62,7 +64,6 @@
62
64
  "react": "17.0.2",
63
65
  "react-native": "0.68.2",
64
66
  "react-native-builder-bob": "^0.18.3",
65
- "react-native-webview": "^11.23.0",
66
67
  "release-it": "^15.0.0",
67
68
  "typescript": "^4.5.2"
68
69
  },
@@ -71,8 +72,7 @@
71
72
  },
72
73
  "peerDependencies": {
73
74
  "react": "*",
74
- "react-native": "*",
75
- "react-native-webview": "^11.23.0"
75
+ "react-native": "*"
76
76
  },
77
77
  "jest": {
78
78
  "preset": "react-native",
@@ -89,13 +89,17 @@
89
89
  "release-it": {
90
90
  "git": {
91
91
  "commitMessage": "chore: release ${version}",
92
- "tagName": "v${version}"
92
+ "tagName": "v${version}",
93
+ "commit": true,
94
+ "tag": true,
95
+ "push": true,
96
+ "requireCleanWorkingDir": false
93
97
  },
94
98
  "npm": {
95
99
  "publish": true
96
100
  },
97
101
  "github": {
98
- "release": true
102
+ "release": false
99
103
  },
100
104
  "plugins": {
101
105
  "@release-it/conventional-changelog": {
@@ -150,6 +154,7 @@
150
154
  },
151
155
  "dependencies": {
152
156
  "axios": "^0.27.2",
157
+ "caniuse-lite": "^1.0.30001658",
153
158
  "events": "^3.3.0"
154
159
  }
155
160
  }
@@ -14,12 +14,12 @@ Pod::Spec.new do |s|
14
14
  s.platforms = { :ios => "12.0" }
15
15
  s.source = { :git => "https://bitbucket.org/payfac0/pf-react-native-payengine", :tag => "#{s.version}" }
16
16
 
17
- s.source_files = "ios/**/*.{h,m,mm,swift}"
17
+ s.source_files = "ios/Sources/**/*.{h,m,mm,swift}"
18
18
 
19
19
  s.dependency "React-Core"
20
20
 
21
21
  # VGS collect
22
- s.dependency 'VGSCollectSDK', "~> 1.9.8"
22
+ s.vendored_frameworks = 'ios/PayEngineSDK.xcframework'
23
23
 
24
24
  # Don't install the dependencies when we run `pod install` in the old architecture.
25
25
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
@@ -1,121 +1,8 @@
1
1
  import React from 'react';
2
- import { Platform, StyleProp, StyleSheet, Text, View, ViewStyle } from 'react-native';
3
- import { WebView } from 'react-native-webview';
4
- import { getScriptURL, debuggingScript } from '../utils';
5
- import LoadingIndicator from './LoadingIndicator';
6
- import type { IPayEngineConfig } from '../interfaces/index';
2
+ import { Text } from 'react-native';
7
3
 
8
- interface IProps {
9
- config: IPayEngineConfig
10
- type: string
11
- merchantId?: string
12
- hash?: string
13
- events: {
14
- [key: string]: (eventData: any) => void
15
- }
16
- style?: StyleProp<ViewStyle>
17
- [key: string]: any
18
- }
4
+ const PayEngine = () => {
5
+ return <Text>Obsolete. Please check out the package readme</Text>;
6
+ };
19
7
 
20
- const getHtmlTag = (props: IProps) => {
21
- const allowedProps = Object.keys(props).filter(x => !['config', 'events', 'style'].includes(x))
22
- return `<pay-engine id="component"
23
- style="z-index: 100"
24
- ${allowedProps.map((propName: string) => `${propName}="${props[propName]}"`).join(' ')}
25
- ></pay-engine>`
26
- }
27
-
28
- const generateHTML = (scriptURL: string, props: IProps) => {
29
- return `<!DOCTYPE html>
30
- <html>
31
- <head>
32
- <title>PayEngine Elements</title>
33
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
34
- <script src="${scriptURL}" async defer type="text/javascript"></script>
35
- </head>
36
- <body>
37
- ${getHtmlTag(props)}
38
- <script>
39
- setInterval(function() {
40
- window.ReactNativeWebView.postMessage(JSON.stringify({
41
- type: 'PayEngine-height',
42
- height: document.body.scrollHeight
43
- }))
44
- }, 500);
45
- </script>
46
- </body>
47
- </html>`
48
- }
49
-
50
- const PayEngine = (props: IProps) => {
51
-
52
- const [scriptURL] = React.useState(getScriptURL(props.config))
53
- const [height, setHeight] = React.useState(30)
54
-
55
- const html = generateHTML(scriptURL, props)
56
-
57
- const onMessage = (payload: any) => {
58
- const isDebug = props.config.logLevel! > 0
59
- let dataPayload;
60
- try {
61
- dataPayload = JSON.parse(payload.nativeEvent.data);
62
- } catch (e) { }
63
-
64
- if (dataPayload) {
65
- switch (dataPayload.type) {
66
- case 'Console':
67
- if (isDebug) {
68
- console.info(`[Console] ${JSON.stringify(dataPayload.data)}`);
69
- }
70
- break;
71
- case 'PayEngine':
72
- const { type, detail } = dataPayload.event
73
- if (props.events?.[type]) {
74
- props.events?.[type]?.(detail)
75
- }
76
- break;
77
- case 'PayEngine-height':
78
- setHeight(dataPayload.height)
79
- break;
80
- default:
81
- if (isDebug) {
82
- console.log(dataPayload)
83
- }
84
- break;
85
- }
86
- }
87
- };
88
-
89
- return <View style={[{ flex: 1, height: height }, props.style]}>
90
- <View style={styles.yellowBox}>
91
- <Text>Script URL: {scriptURL}</Text>
92
- </View>
93
- <View style={styles.yellowBox}>
94
- <Text>{getHtmlTag(props)}</Text>
95
- </View>
96
- <WebView
97
- originWhitelist={['*']}
98
- source={{ html: html, baseUrl: '' }}
99
- // source={{ uri: 'https://google.com' }}
100
- applicationNameForUserAgent={`PayEngine-RN/${Platform.OS}`}
101
- injectedJavaScript={debuggingScript}
102
- renderLoading={LoadingIndicator}
103
- startInLoadingState={true}
104
- onMessage={onMessage}
105
- />
106
- </View>
107
- }
108
-
109
- const styles = StyleSheet.create({
110
- yellowBox: {
111
- marginVertical: 5,
112
- marginHorizontal: 10,
113
- padding: 10,
114
- backgroundColor: 'yellow',
115
- borderWidth: 1,
116
- borderColor: 'yellow'
117
- }
118
- })
119
-
120
-
121
- export default PayEngine
8
+ export default PayEngine;
@@ -0,0 +1,74 @@
1
+
2
+ import * as React from 'react';
3
+ import { Platform, requireNativeComponent, Text, ViewProps } from 'react-native';
4
+ import type { PEPaymentRequest } from '../PEPaymentRequest';
5
+
6
+
7
+ const RNPEApplePayButton = requireNativeComponent<NativePEApplePayViewProps>('RNPEApplePayButton');
8
+
9
+ type NativePEApplePayEvent = {
10
+ nativeEvent: {
11
+ error?: string;
12
+ token?: string
13
+ };
14
+ };
15
+
16
+ interface NativePEApplePayViewProps extends ViewProps {
17
+ paymentRequest: string;
18
+ onPmSheetDidDismiss: (event: NativePEApplePayEvent) => void;
19
+ onPmTokenDidReturn: (event: NativePEApplePayEvent) => void;
20
+ onPmError: (event: NativePEApplePayEvent) => void;
21
+ }
22
+
23
+ export interface PEApplePayButtonProps extends ViewProps {
24
+ paymentRequest: PEPaymentRequest;
25
+ onTokenDidReturn?: (token: string) => void;
26
+ onPaymentSheetDismissed?: () => void;
27
+ onPaymentFailed?: (error: Error) => void;
28
+ }
29
+
30
+ export interface PEApplePayButtonMethods {
31
+
32
+ }
33
+
34
+
35
+ export const PEApplePayButton = React.forwardRef<
36
+ PEApplePayButtonMethods,
37
+ PEApplePayButtonProps
38
+ >((props, ref) => {
39
+
40
+ React.useImperativeHandle(ref, () => ({
41
+ }));
42
+
43
+ const pmError = (event: NativePEApplePayEvent) => {
44
+ if (props.onPaymentFailed) {
45
+ props.onPaymentFailed(new Error(event.nativeEvent.error));
46
+ }
47
+ };
48
+
49
+ const pmTokenDidReturn = (event: NativePEApplePayEvent) => {
50
+ if (props.onTokenDidReturn) {
51
+ props.onTokenDidReturn(event.nativeEvent.token!);
52
+ }
53
+ };
54
+
55
+ const pmSheetDidDismiss = () => {
56
+ if (props.onPaymentSheetDismissed) {
57
+ props.onPaymentSheetDismissed();
58
+ }
59
+ }
60
+
61
+ if (Platform.OS !== 'ios') {
62
+ return <Text>Apple Pay is not supported on this platform</Text>
63
+ }
64
+
65
+ return (
66
+ <RNPEApplePayButton
67
+ style={{ height: 32, width: '100%', ...(props.style as object) }}
68
+ paymentRequest={JSON.stringify(props.paymentRequest)}
69
+ onPmError={pmError}
70
+ onPmTokenDidReturn={pmTokenDidReturn}
71
+ onPmSheetDidDismiss={pmSheetDidDismiss}
72
+ />
73
+ );
74
+ });
@@ -0,0 +1,73 @@
1
+
2
+ import * as React from 'react';
3
+ import { NativeEventEmitter, NativeModules, Platform, requireNativeComponent, Text, ViewProps } from 'react-native';
4
+ import type { PEPaymentRequest } from '../PEPaymentRequest';
5
+
6
+ const { RNPEEventEmitter } = NativeModules;
7
+
8
+ const RNPEGooglePayButton = requireNativeComponent<NativePEGooglePayViewProps>('RNPEGooglePayButton');
9
+
10
+ interface NativePEGooglePayViewProps extends ViewProps {
11
+ amount: number;
12
+ merchantId: string;
13
+ }
14
+
15
+ const peEventEmitter = new NativeEventEmitter(RNPEEventEmitter);
16
+
17
+ export interface PEGooglePayButtonProps extends ViewProps {
18
+ paymentRequest: PEPaymentRequest;
19
+ onTokenDidReturn?: (token: string) => void;
20
+ onPaymentSheetDismissed?: () => void;
21
+ onPaymentFailed?: (error: Error) => void;
22
+ }
23
+
24
+ export interface PEGooglePayButtonMethods {
25
+
26
+ }
27
+
28
+
29
+ export const PEGooglePayButton = React.forwardRef<
30
+ PEGooglePayButtonMethods,
31
+ PEGooglePayButtonProps
32
+ >((props, ref) => {
33
+
34
+ React.useImperativeHandle(ref, () => ({
35
+ }));
36
+
37
+ React.useEffect(() => {
38
+ const listener1 = peEventEmitter.addListener('onGooglePayRespond', args => {
39
+ const { token } = args;
40
+ console.log('ON token', token)
41
+ props.onTokenDidReturn?.(token)
42
+ });
43
+
44
+ const listener2 = peEventEmitter.addListener('onGooglePayError', args => {
45
+ const { error } = args;
46
+ console.log('ON error', error)
47
+ props.onPaymentFailed?.(new Error(error))
48
+ });
49
+
50
+ const listener3 = peEventEmitter.addListener('onGooglePayDismiss', () => {
51
+ console.log('ON dismiss')
52
+ props.onPaymentSheetDismissed?.()
53
+ });
54
+
55
+ return () => {
56
+ listener1.remove();
57
+ listener2.remove();
58
+ listener3.remove();
59
+ }
60
+ }, []);
61
+
62
+ if (Platform.OS !== 'android') {
63
+ return <Text>Google Pay is not supported on this platform</Text>
64
+ }
65
+
66
+ return (
67
+ <RNPEGooglePayButton
68
+ style={{ height: 32, width: '100%', ...(props.style as object) }}
69
+ amount={props.paymentRequest.paymentAmount}
70
+ merchantId={props.paymentRequest.merchantId}
71
+ />
72
+ );
73
+ });
@@ -0,0 +1,20 @@
1
+
2
+ export class PEPaymentRequest {
3
+ merchantId: string;
4
+ paymentAmount: number;
5
+ currencyCode?: 'USD' | 'CAD' = 'USD';
6
+ paymentItems?: {
7
+ amount: number;
8
+ label: string;
9
+ }[] = []
10
+
11
+ constructor(merchantId: string, paymentAmount: number, currencyCode: 'USD' | 'CAD' = 'USD', paymentItems: {
12
+ amount: number;
13
+ label: string;
14
+ }[] = []) {
15
+ this.merchantId = merchantId;
16
+ this.paymentAmount = paymentAmount;
17
+ this.currencyCode = currencyCode;
18
+ this.paymentItems = paymentItems;
19
+ }
20
+ }
@@ -0,0 +1,22 @@
1
+ import { NativeModules, Platform } from "react-native";
2
+
3
+ const { RNPayEngineNative } = NativeModules;
4
+
5
+ export default class PayEngineNative {
6
+ static async createFraudMonitorSession(merchantId: string) {
7
+ return RNPayEngineNative.createFraudMonitorSession(merchantId);
8
+ }
9
+
10
+ static async getBrowserInfo() {
11
+ return RNPayEngineNative.getBrowserInfo();
12
+ }
13
+
14
+ static async isPlatformPaySupported(merchantId: string) {
15
+ if (Platform.OS === 'ios') {
16
+ return await RNPayEngineNative.isApplePaySupported(merchantId);
17
+ } else if (Platform.OS === 'android') {
18
+ return true
19
+ }
20
+ return false;
21
+ }
22
+ }
@@ -0,0 +1,30 @@
1
+ import React, { createContext } from "react";
2
+ import type { IPayEngineConfig } from "../../interfaces";
3
+ import { ActivityIndicator, NativeModules } from "react-native";
4
+
5
+ const { RNPayEngineNative } = NativeModules;
6
+
7
+ const PayEngineContext = createContext<IPayEngineConfig | undefined>(undefined);
8
+
9
+ const PayEngineProvider = ({ config, children }: { config: IPayEngineConfig, children: React.ReactNode }) => {
10
+ const [loading, setLoading] = React.useState(true);
11
+
12
+ React.useEffect(() => {
13
+ setLoading(true);
14
+ RNPayEngineNative.setConfig(config.publicKey, config.scriptURL)
15
+ setLoading(false);
16
+ }, [config]);
17
+
18
+ if (!config) {
19
+ throw new Error('PayEngineProvider: config is required');
20
+ }
21
+
22
+ return <PayEngineContext.Provider value={config}>
23
+ {loading ? <ActivityIndicator /> : children}
24
+ </PayEngineContext.Provider>
25
+ }
26
+
27
+ export {
28
+ PayEngineContext,
29
+ PayEngineProvider
30
+ };