@jimrising/easymerchantsdk-react-native 1.0.3 → 1.0.5

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 (175) hide show
  1. package/.idea/em-MobileCheckoutSDK-ReactNative.iml +0 -9
  2. package/.idea/misc.xml +1 -0
  3. package/.idea/modules.xml +0 -8
  4. package/.idea/workspace.xml +188 -0
  5. package/README.md +20 -1
  6. package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/results.bin +0 -1
  7. package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/BuildConfig.dex +0 -0
  8. package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$1.dex +0 -0
  9. package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule.dex +0 -0
  10. package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkPackage.dex +0 -0
  11. package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  12. package/android/build/.transforms/41cd2635778c1bb5c18af2c46eb9196e/results.bin +0 -1
  13. package/android/build/.transforms/41cd2635778c1bb5c18af2c46eb9196e/transformed/classes/classes_dex/classes.dex +0 -0
  14. package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/results.bin +0 -1
  15. package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/BuildConfig.dex +0 -0
  16. package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$1.dex +0 -0
  17. package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule.dex +0 -0
  18. package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkPackage.dex +0 -0
  19. package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  20. package/android/build/.transforms/7eb7ceaa43c9e8323ac65b4f785987b6/results.bin +0 -1
  21. package/android/build/.transforms/7eb7ceaa43c9e8323ac65b4f785987b6/transformed/classes/classes_dex/classes.dex +0 -0
  22. package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/results.bin +0 -1
  23. package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/BuildConfig.dex +0 -0
  24. package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$1.dex +0 -0
  25. package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule.dex +0 -0
  26. package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkPackage.dex +0 -0
  27. package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  28. package/android/build/.transforms/f1a160720415bc76d8d6c6734c5acf3e/results.bin +0 -1
  29. package/android/build/.transforms/f1a160720415bc76d8d6c6734c5acf3e/transformed/classes/classes_dex/classes.dex +0 -0
  30. package/android/build/generated/source/buildConfig/debug/com/reactlibrary/BuildConfig.java +0 -10
  31. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  32. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  33. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  34. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  35. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  36. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  37. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  38. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  39. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  40. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  41. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  42. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  43. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  44. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  45. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  46. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  47. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  48. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  49. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -17
  50. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkModule$1.class.uniqueId2 +0 -0
  51. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkModule.class.uniqueId1 +0 -0
  52. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkPackage.class.uniqueId0 +0 -0
  53. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  54. package/android/build.gradle +0 -55
  55. package/android/src/main/AndroidManifest.xml +0 -5
  56. package/android/src/main/java/com/reactlibrary/RNEasymerchantsdkModule.java +0 -72
  57. package/android/src/main/java/com/reactlibrary/RNEasymerchantsdkPackage.java +0 -28
  58. package/index.js +0 -5
  59. package/ios/Bundle/EasyPayBundle.swift +0 -22
  60. package/ios/Classes/EasyMerchantSdk.swift +0 -123
  61. package/ios/Classes/EasyPayViewController.swift +0 -90
  62. package/ios/CustomComponents/CheckboxButton.swift +0 -20
  63. package/ios/CustomComponents/FilledButton.swift +0 -17
  64. package/ios/CustomComponents/OutlineButton.swift +0 -26
  65. package/ios/CustomComponents/TextFieldStackView.swift +0 -96
  66. package/ios/EnvironmentConfig.swift +0 -63
  67. package/ios/Example/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  68. package/ios/Example/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -13
  69. package/ios/Example/Assets.xcassets/Contents.json +0 -6
  70. package/ios/Example/Base.lproj/LaunchScreen.storyboard +0 -25
  71. package/ios/Example/Base.lproj/Main.storyboard +0 -65
  72. package/ios/Example/SceneDelegate.swift +0 -52
  73. package/ios/Example/ViewController.swift +0 -84
  74. package/ios/Extensions/UIColor.swift +0 -22
  75. package/ios/Extensions/UIFont.swift +0 -80
  76. package/ios/Extensions/UIViewController+Extension.swift +0 -42
  77. package/ios/Models/AdditionalInfo.swift +0 -16
  78. package/ios/Models/BankAccountModel.swift +0 -23
  79. package/ios/Models/BillingInfo.swift +0 -16
  80. package/ios/Models/CardModel.swift +0 -19
  81. package/ios/Models/Country.swift +0 -19
  82. package/ios/Models/PaymentInfo.swift +0 -46
  83. package/ios/Models/Request.swift +0 -245
  84. package/ios/Models/Result.swift +0 -69
  85. package/ios/Pods/UserDefaults/UserStoreSingleton.swift +0 -200
  86. package/ios/Pods/ViewControllers/AdditionalInfoVC.swift +0 -1073
  87. package/ios/Pods/ViewControllers/BaseVC.swift +0 -117
  88. package/ios/Pods/ViewControllers/BillingInfoVC/BillingInfoVC.swift +0 -616
  89. package/ios/Pods/ViewControllers/BillingInfoVC/Cells/CityListTVC.swift +0 -19
  90. package/ios/Pods/ViewControllers/BillingInfoVC/Cells/CountryListTVC.swift +0 -19
  91. package/ios/Pods/ViewControllers/BillingInfoVC/Cells/StateListTVC.swift +0 -19
  92. package/ios/Pods/ViewControllers/CountryListVC.swift +0 -367
  93. package/ios/Pods/ViewControllers/EmailVerificationVC.swift +0 -192
  94. package/ios/Pods/ViewControllers/OTPVerificationVC.swift +0 -1009
  95. package/ios/Pods/ViewControllers/PaymentDoneVC.swift +0 -94
  96. package/ios/Pods/ViewControllers/PaymentErrorVC.swift +0 -43
  97. package/ios/Pods/ViewControllers/PaymentInformation/AccountTypeTVC.swift +0 -19
  98. package/ios/Pods/ViewControllers/PaymentInformation/PaymentInfoVC.swift +0 -4269
  99. package/ios/Pods/ViewControllers/PaymentInformation/PaymentInformationCVC.swift +0 -20
  100. package/ios/Pods/ViewControllers/PaymentInformation/SavedAccountsTVC/SavedAccountTVC.swift +0 -37
  101. package/ios/Pods/ViewControllers/PaymentInformation/SavedAccountsTVC/SavedAccountTVC.xib +0 -163
  102. package/ios/Pods/ViewControllers/PaymentInformation/SavedCardsTVC/SavedCardsTVC.swift +0 -40
  103. package/ios/Pods/ViewControllers/PaymentInformation/SavedCardsTVC/SavedCardsTVC.xib +0 -184
  104. package/ios/Pods/ViewControllers/TermAndConditionsVC.swift +0 -21
  105. package/ios/Resources/Assets.xcassets/Card/Amex.imageset/206682_american_express_method_card_payment_icon.svg +0 -1
  106. package/ios/Resources/Assets.xcassets/Card/Amex.imageset/Contents.json +0 -12
  107. package/ios/Resources/Assets.xcassets/Card/Contents.json +0 -6
  108. package/ios/Resources/Assets.xcassets/Card/DinersClub.imageset/472318_card_club_diners_dinner_payment_icon.svg +0 -1
  109. package/ios/Resources/Assets.xcassets/Card/DinersClub.imageset/Contents.json +0 -12
  110. package/ios/Resources/Assets.xcassets/Card/Discover.imageset/206686_network_payment_discover_card_method_icon.svg +0 -1
  111. package/ios/Resources/Assets.xcassets/Card/Discover.imageset/Contents.json +0 -12
  112. package/ios/Resources/Assets.xcassets/Card/JCB.imageset/358102_card_jcb_payment_icon.svg +0 -1
  113. package/ios/Resources/Assets.xcassets/Card/JCB.imageset/Contents.json +0 -12
  114. package/ios/Resources/Assets.xcassets/Card/MasterCard.imageset/206680_master_method_card_payment_icon.svg +0 -1
  115. package/ios/Resources/Assets.xcassets/Card/MasterCard.imageset/Contents.json +0 -12
  116. package/ios/Resources/Assets.xcassets/Card/UnionPay.imageset/1468976_card_payment_unionpay_icon.svg +0 -1
  117. package/ios/Resources/Assets.xcassets/Card/UnionPay.imageset/Contents.json +0 -12
  118. package/ios/Resources/Assets.xcassets/Card/Visa.imageset/206684_visa_method_card_payment_icon.svg +0 -1
  119. package/ios/Resources/Assets.xcassets/Card/Visa.imageset/Contents.json +0 -12
  120. package/ios/Resources/Assets.xcassets/Card/maestro.imageset/Contents.json +0 -12
  121. package/ios/Resources/Assets.xcassets/Card/maestro.imageset/maestro.svg +0 -1
  122. package/ios/Resources/Assets.xcassets/Card/paypal.imageset/206675_paypal_method_payment_icon.svg +0 -1
  123. package/ios/Resources/Assets.xcassets/Card/paypal.imageset/Contents.json +0 -12
  124. package/ios/Resources/Assets.xcassets/Card/rupay.imageset/Contents.json +0 -12
  125. package/ios/Resources/Assets.xcassets/Card/rupay.imageset/rupay.svg +0 -1
  126. package/ios/Resources/Assets.xcassets/Card/unknown_card.imageset/4635000_card_credit_digital_money_icon.svg +0 -1
  127. package/ios/Resources/Assets.xcassets/Card/unknown_card.imageset/Contents.json +0 -12
  128. package/ios/Resources/Assets.xcassets/Card/worldpay.imageset/Contents.json +0 -12
  129. package/ios/Resources/Assets.xcassets/Card/worldpay.imageset/worldpay.svg +0 -1
  130. package/ios/Resources/Assets.xcassets/Contents.json +0 -6
  131. package/ios/Resources/Assets.xcassets/Ellipsis.imageset/Contents.json +0 -23
  132. package/ios/Resources/Assets.xcassets/Ellipsis.imageset/icons8-menu-30.png +0 -0
  133. package/ios/Resources/Assets.xcassets/Ellipsis.imageset/icons8-menu-60.png +0 -0
  134. package/ios/Resources/Assets.xcassets/Ellipsis.imageset/icons8-menu-90.png +0 -0
  135. package/ios/Resources/Assets.xcassets/Rotate.imageset/Contents.json +0 -23
  136. package/ios/Resources/Assets.xcassets/Rotate.imageset/refresh-cw-2.png +0 -0
  137. package/ios/Resources/Assets.xcassets/Rotate.imageset/refresh-cw-3.png +0 -0
  138. package/ios/Resources/Assets.xcassets/Rotate.imageset/refresh-cw.png +0 -0
  139. package/ios/Resources/Assets.xcassets/amexCvc.imageset/Contents.json +0 -22
  140. package/ios/Resources/Assets.xcassets/amexCvc.imageset/Group-1.png +0 -0
  141. package/ios/Resources/Assets.xcassets/amexCvc.imageset/Group.png +0 -0
  142. package/ios/Resources/Assets.xcassets/check.imageset/Contents.json +0 -23
  143. package/ios/Resources/Assets.xcassets/check.imageset/check-circle-4.png +0 -0
  144. package/ios/Resources/Assets.xcassets/check.imageset/check-circle-5.png +0 -0
  145. package/ios/Resources/Assets.xcassets/check.imageset/check-circle-6.png +0 -0
  146. package/ios/Resources/Assets.xcassets/chip.imageset/Contents.json +0 -21
  147. package/ios/Resources/Assets.xcassets/chip.imageset/chip.png +0 -0
  148. package/ios/Resources/Assets.xcassets/loaderImage.imageset/Contents.json +0 -23
  149. package/ios/Resources/Assets.xcassets/loaderImage.imageset/check-circle-2.png +0 -0
  150. package/ios/Resources/Assets.xcassets/loaderImage.imageset/check-circle-3.png +0 -0
  151. package/ios/Resources/Assets.xcassets/loaderImage.imageset/check-circle.png +0 -0
  152. package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/Contents.json +0 -23
  153. package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/payment_done_icon 1.png +0 -0
  154. package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/payment_done_icon 2.png +0 -0
  155. package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/payment_done_icon.png +0 -0
  156. package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/Contents.json +0 -23
  157. package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/payment_error_icon 1.png +0 -0
  158. package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/payment_error_icon 2.png +0 -0
  159. package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/payment_error_icon.png +0 -0
  160. package/ios/Resources/Assets.xcassets/wallet.imageset/Contents.json +0 -23
  161. package/ios/Resources/Assets.xcassets/wallet.imageset/icons8-wallet-24(@1/303/227).png +0 -0
  162. package/ios/Resources/Assets.xcassets/wallet.imageset/icons8-wallet-48(@2/303/227).png +0 -0
  163. package/ios/Resources/Assets.xcassets/wallet.imageset/icons8-wallet-72(@3/303/227).png +0 -0
  164. package/ios/Resources/Colors.xcassets/00000008.colorset/Contents.json +0 -20
  165. package/ios/Resources/Colors.xcassets/00000016.colorset/Contents.json +0 -20
  166. package/ios/Resources/Colors.xcassets/00000038.colorset/Contents.json +0 -20
  167. package/ios/Resources/Colors.xcassets/00000060.colorset/Contents.json +0 -20
  168. package/ios/Resources/Colors.xcassets/1757D9.colorset/Contents.json +0 -20
  169. package/ios/Resources/Colors.xcassets/Contents.json +0 -6
  170. package/ios/Resources/Colors.xcassets/E93939.colorset/Contents.json +0 -20
  171. package/ios/Resources/PrivacyInfo.xcprivacy +0 -10
  172. package/ios/ThirdParty/Keyboad Handling/KeyboardObserver.swift +0 -74
  173. package/ios/easymerchantsdk.storyboard +0 -5885
  174. package/package.json +1 -1
  175. package/src/index.js +0 -44
@@ -1,72 +0,0 @@
1
- package com.reactlibrary;
2
-
3
- import com.facebook.react.bridge.ReactApplicationContext;
4
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
5
- import com.facebook.react.bridge.ReactMethod;
6
- import com.facebook.react.bridge.Promise;
7
-
8
- import java.util.concurrent.ExecutorService;
9
- import java.util.concurrent.Executors;
10
-
11
- import android.app.Activity;
12
-
13
- import com.facebook.react.bridge.Callback;
14
-
15
- import org.json.JSONObject;
16
-
17
-
18
- import com.app.paysdk.init.EasyPaymentFactory;
19
- import com.app.paysdk.service.EasyPaymentService;
20
-
21
- public class RNEasymerchantsdkModule extends ReactContextBaseJavaModule {
22
- RNEasymerchantsdkModule(ReactApplicationContext context) {
23
- super(context);
24
- }
25
-
26
- @Override
27
- public String getName() {
28
- return "RNEasymerchantsdk";
29
- }
30
-
31
- @ReactMethod
32
- public void platformVersion(Promise promise) {
33
- try {
34
- String platformVersion = "Android " + android.os.Build.VERSION.RELEASE;
35
- promise.resolve(platformVersion);
36
- } catch (Exception e) {
37
- promise.reject("ERROR", e.getMessage());
38
- }
39
- }
40
-
41
- @ReactMethod
42
- public void billing(String amount, String billinginfo,String env,String apiKey, String secretKey, Promise promise) {
43
- Activity currentActivity = getCurrentActivity();
44
- if (currentActivity == null) {
45
- promise.reject("ERROR", "Activity is not initialized");
46
- return;
47
- }
48
-
49
- try {
50
-
51
- new EasyPaymentService(currentActivity,env,apiKey,secretKey).makePayment(amount, (billinginfo == null) ? null : new JSONObject(billinginfo), new EasyPaymentFactory.OnTransactionListener() {
52
- @Override
53
- public void onSuccess(String response) {
54
- promise.resolve(response);
55
- }
56
-
57
- @Override
58
- public void onError(String error) {
59
- promise.reject("ERROR", error);
60
- }
61
- });
62
- } catch (Exception e) {
63
- promise.reject("ERROR", e.getMessage());
64
- }
65
-
66
- // } catch (Exception e) {
67
- // promise.reject("ERROR", e.getMessage() != null ? e.getMessage() : "Unknown error");
68
- // }
69
- // }
70
- // });
71
- }
72
- }
@@ -1,28 +0,0 @@
1
- package com.reactlibrary;
2
-
3
- import java.util.Arrays;
4
- import java.util.Collections;
5
- import java.util.List;
6
-
7
- import com.facebook.react.ReactPackage;
8
- import com.facebook.react.bridge.NativeModule;
9
- import com.facebook.react.bridge.ReactApplicationContext;
10
- import com.facebook.react.uimanager.ViewManager;
11
- import com.facebook.react.bridge.JavaScriptModule;
12
-
13
- public class RNEasymerchantsdkPackage implements ReactPackage {
14
- @Override
15
- public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
16
- return Arrays.<NativeModule>asList(new RNEasymerchantsdkModule(reactContext));
17
- }
18
-
19
- // Deprecated from RN 0.47
20
- public List<Class<? extends JavaScriptModule>> createJSModules() {
21
- return Collections.emptyList();
22
- }
23
-
24
- @Override
25
- public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
26
- return Collections.emptyList();
27
- }
28
- }
package/index.js CHANGED
@@ -1,5 +0,0 @@
1
- import { NativeModules } from 'react-native';
2
-
3
- const { RNEasyMerchantSdk } = NativeModules;
4
-
5
- export default RNEasyMerchantSdk;
@@ -1,22 +0,0 @@
1
- //
2
- // EasyPayBundle.swift
3
- // EasyPay
4
- //
5
- // Created by iftekhar on 14/07/24.
6
- //
7
-
8
- import Foundation
9
-
10
- @available(iOS 16.0, *)
11
- extension Bundle {
12
- static let easyPayBundle: Bundle = {
13
- let frameworkBundle = Bundle(for: EasyPayViewController.self)
14
-
15
- guard let bundlePath = frameworkBundle.path(forResource: "easymerchantsdk", ofType: "bundle"),
16
- let resourceBundle = Bundle(path: bundlePath) else {
17
- fatalError("EasyPay bundle not found")
18
- }
19
-
20
- return resourceBundle
21
- }()
22
- }
@@ -1,123 +0,0 @@
1
- import Foundation
2
- import UIKit
3
- import React
4
-
5
- @objc(EasyMerchantSdkPlugin)
6
- public class EasyMerchantSdkPlugin: NSObject {
7
-
8
- private var viewController: UIViewController?
9
- private let viewControllerQueue = DispatchQueue(label: "com.easymerchantsdk.viewController")
10
-
11
- // Configure SDK environment and keys
12
- @objc public func configureEnvironment(_ environment: String, apiKey: String, apiSecret: String) {
13
- let selectedEnvironment: EnvironmentConfig.Environment
14
-
15
- switch environment.lowercased() {
16
- case "production":
17
- selectedEnvironment = .production
18
- case "sandbox":
19
- selectedEnvironment = .sandbox
20
- case "staging":
21
- selectedEnvironment = .staging
22
- default:
23
- selectedEnvironment = .staging // default to staging
24
- }
25
-
26
- // Configure EnvironmentConfig
27
- EnvironmentConfig.setEnvironment(selectedEnvironment)
28
- EnvironmentConfig.configure(apiKey: apiKey, apiSecret: apiSecret)
29
-
30
- // Optionally, print the base URL to confirm the correct environment is set
31
- print("Configured environment: \(selectedEnvironment), Base URL: \(EnvironmentConfig.baseURL)")
32
- }
33
-
34
- // Set a custom view controller to present the payment UI
35
- @objc public func setViewController(_ viewController: UIViewController) {
36
- viewControllerQueue.sync {
37
- self.viewController = viewController
38
- }
39
- print("ViewController set: \(String(describing: self.viewController))")
40
- }
41
-
42
- // Billing method: Handles payment request
43
- @objc public func billing(
44
- _ amount: String,
45
- billinginfo: String,
46
- resolver: @escaping RCTPromiseResolveBlock,
47
- rejecter: @escaping RCTPromiseRejectBlock
48
- ) {
49
- guard let amountValue = Double(amount), amountValue > 0 else {
50
- rejecter("INVALID_AMOUNT", "Amount must be a positive number", nil)
51
- return
52
- }
53
-
54
- guard !billinginfo.isEmpty,
55
- let billingInfoData = billinginfo.data(using: .utf8),
56
- let billingInfoJSON = try? JSONSerialization.jsonObject(with: billingInfoData, options: []) as? [String: Any] else {
57
- rejecter("INVALID_BILLING_INFO", "Billing info must be valid JSON", nil)
58
- return
59
- }
60
-
61
- let request = Request(amount: amountValue, billingInfoData: billingInfoData)
62
- let paymentController = EasyPayViewController(request: request, delegate: self)
63
-
64
- DispatchQueue.main.async {
65
- if let customViewController = self.viewController {
66
- customViewController.present(paymentController, animated: true) {
67
- resolver("Payment process started for amount \(amount)")
68
- }
69
- } else if let rootViewController = UIApplication.shared.windows.first(where: { $0.isKeyWindow })?.rootViewController {
70
- rootViewController.present(paymentController, animated: true) {
71
- resolver("Payment process started for amount \(amount)")
72
- }
73
- } else {
74
- rejecter("VIEW_CONTROLLER_NOT_FOUND", "Root ViewController not found", nil)
75
- }
76
- }
77
- }
78
-
79
- @objc public func getPlatformVersion(
80
- _ resolver: @escaping RCTPromiseResolveBlock,
81
- rejecter: @escaping RCTPromiseRejectBlock
82
- ) {
83
- resolver("iOS \(UIDevice.current.systemVersion)")
84
- }
85
- }
86
-
87
- @objc(EasyMerchantSdkPlugin)
88
- extension EasyMerchantSdkPlugin: RCTBridgeModule {
89
- public static func moduleName() -> String {
90
- return "EasyMerchantSdk"
91
- }
92
- public static func requiresMainQueueSetup() -> Bool {
93
- return true
94
- }
95
- }
96
-
97
- extension EasyMerchantSdkPlugin: EasyPayViewControllerDelegate {
98
- public func easyPayController(_ controller: EasyPayViewController, didFinishWith result: Result) {
99
- DispatchQueue.main.async {
100
- switch result.type {
101
- case .cancelled:
102
- print("Payment Cancelled by user.")
103
- case .success:
104
- if let chargeData = result.chargeData {
105
- self.handleSuccess(with: chargeData)
106
- } else {
107
- print("Payment succeeded but no charge data received.")
108
- }
109
- case .error:
110
- if let chargeData = result.chargeData,
111
- let errorMessage = chargeData["errorMessage"] as? String {
112
- print("Payment Error: \(errorMessage)")
113
- } else {
114
- print("Unknown Payment Error.")
115
- }
116
- }
117
- }
118
- }
119
-
120
- private func handleSuccess(with chargeData: [String: Any]) {
121
- print("Payment Successful. Charge Data: \(chargeData)")
122
- }
123
- }
@@ -1,90 +0,0 @@
1
- //
2
- // EasyPayViewController.swift
3
- // EasyPay
4
- //
5
- // Created by iftekhar on 13/07/24.
6
- //
7
-
8
- import UIKit
9
-
10
- @available(iOS 16.0, *)
11
- @objc
12
- public protocol EasyPayViewControllerDelegate {
13
- func easyPayController(_ controller: EasyPayViewController, didFinishWith result: Result)
14
- }
15
-
16
- @available(iOS 16.0, *)
17
- @objc
18
- public final class EasyPayViewController: UINavigationController {
19
-
20
- private static var isFirstTimeSetupComleted: Bool = false
21
-
22
- internal required init?(coder aDecoder: NSCoder) {
23
- fatalError("Cannot use \(#function)")
24
- }
25
-
26
- internal override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
27
- fatalError("Cannot use \(#function)")
28
- }
29
-
30
- internal override init(rootViewController: UIViewController) {
31
- fatalError("Cannot use \(#function)")
32
- }
33
-
34
- internal override init(navigationBarClass: AnyClass?, toolbarClass: AnyClass?) {
35
- fatalError("Cannot use \(#function)")
36
- }
37
-
38
- private let request: Request
39
- public weak var easyPayDelegate: EasyPayViewControllerDelegate?
40
-
41
- public init(request: Request, delegate: EasyPayViewControllerDelegate?) {
42
- if !Self.isFirstTimeSetupComleted {
43
- Self.runFirstTimeSetup()
44
- }
45
-
46
- self.request = request
47
- self.easyPayDelegate = delegate
48
- super.init(nibName: nil, bundle: nil)
49
-
50
- self.modalPresentationStyle = .fullScreen
51
- self.isModalInPresentation = true
52
- }
53
-
54
- public override func viewDidLoad() {
55
- super.viewDidLoad()
56
- // Disable interactive pop gesture to prevent dismissal by sliding from left
57
- self.interactivePopGestureRecognizer?.isEnabled = false
58
-
59
- let vc = UIStoryboard(name: "easymerchantsdk", bundle: Bundle.easyPayBundle).instantiateViewController(withIdentifier: "PaymentInfoVC") as! PaymentInfoVC
60
- vc.modalPresentationStyle = .overFullScreen
61
- vc.configureWith(request: request, delegate: easyPayDelegate)
62
- vc.amount = Int(request.amount) // Set the amount here
63
-
64
- self.navigationBar.isHidden = true
65
- self.setViewControllers([vc], animated: false)
66
- }
67
-
68
- }
69
-
70
- @available(iOS 16.0, *)
71
- private extension EasyPayViewController {
72
-
73
- func setupDetents() {
74
- if let sheetController = self.sheetPresentationController {
75
- sheetController.prefersGrabberVisible = false
76
- var detents: [UISheetPresentationController.Detent] = []
77
- detents.append(.large())
78
- sheetController.detents = detents
79
- }
80
- }
81
- }
82
-
83
- private extension EasyPayViewController {
84
-
85
- private static func runFirstTimeSetup() {
86
- UIFont.registerEasyPayFonts()
87
- Self.isFirstTimeSetupComleted = true
88
- }
89
-
90
- }
@@ -1,20 +0,0 @@
1
- //
2
- // CheckboxButton.swift
3
- // EasyPay
4
- //
5
- // Created by iftekhar on 14/07/24.
6
- //
7
-
8
- import Foundation
9
-
10
- final class CheckboxButton: UIButton {
11
-
12
- override func awakeFromNib() {
13
- super.awakeFromNib()
14
- self.addTarget(self, action: #selector(tapAction(_:)), for: .touchUpInside)
15
- }
16
-
17
- @objc private func tapAction(_ sender: UIButton) {
18
- self.isSelected.toggle()
19
- }
20
- }
@@ -1,17 +0,0 @@
1
- //
2
- // FilledButton.swift
3
- // EasyPay
4
- //
5
- // Created by iftekhar on 14/07/24.
6
- //
7
-
8
- import UIKit
9
-
10
- class FilledButton: UIButton {
11
-
12
- override var isEnabled: Bool {
13
- didSet {
14
- self.tintColor = isEnabled ? self.tintColor.withAlphaComponent(1.0) : self.tintColor.withAlphaComponent(0.5)
15
- }
16
- }
17
- }
@@ -1,26 +0,0 @@
1
- //
2
- // OutlineButton.swift
3
- // EasyPay
4
- //
5
- // Created by iftekhar on 14/07/24.
6
- //
7
-
8
- import UIKit
9
-
10
- class OutlineButton: UIButton {
11
-
12
- override func awakeFromNib() {
13
- super.awakeFromNib()
14
- }
15
-
16
- override func tintColorDidChange() {
17
- super.tintColorDidChange()
18
- self.layer.borderColor = isEnabled ? UIColor._1757D9.cgColor : UIColor._00000016.cgColor
19
- }
20
-
21
- override var isEnabled: Bool {
22
- didSet {
23
- self.tintColor = isEnabled ? self.tintColor.withAlphaComponent(1.0) : self.tintColor.withAlphaComponent(0.5)
24
- }
25
- }
26
- }
@@ -1,96 +0,0 @@
1
- //
2
- // TextFieldStackView.swift
3
- // Wellify
4
- //
5
- // Created on 12/3/23.
6
- // Copyright © 2023 Awelliz. All rights reserved.
7
- //
8
-
9
-
10
- import UIKit
11
-
12
- //@IBDesignable
13
- final class TextFieldStackView: UIStackView {
14
-
15
- @IBOutlet private var titleLabel: UILabel?
16
- @IBOutlet private var errorLabel: UILabel?
17
-
18
- @IBOutlet private var containerView: UIView?
19
- @IBOutlet private(set) var textField: UITextField!
20
-
21
- var error: String? {
22
- didSet {
23
- if isFirstResponder {
24
- containerView?.layer.borderColor = UIColor._1757D9.withAlphaComponent(0.5).cgColor
25
- errorLabel?.text = " "
26
- } else if let error = error {
27
- containerView?.layer.borderColor = UIColor.E93939.cgColor
28
- errorLabel?.text = error
29
- } else {
30
- containerView?.layer.borderColor = UIColor._00000016.cgColor
31
- errorLabel?.text = " "
32
- }
33
- }
34
- }
35
-
36
- override func awakeFromNib() {
37
- super.awakeFromNib()
38
-
39
- error = nil
40
- titleLabel?.adjustsFontSizeToFitWidth = true
41
- }
42
-
43
- @IBInspectable var isEnabled: Bool = true {
44
- didSet {
45
- titleLabel?.isEnabled = isEnabled
46
- textField?.isEnabled = isEnabled
47
- textField.leftView?.tintColor = isEnabled ? UIColor._00000060 : UIColor._00000038
48
- textField.rightView?.tintColor = isEnabled ? UIColor._00000060 : UIColor._00000038
49
- }
50
- }
51
-
52
- var text: String {
53
- set {
54
- textField?.text = newValue
55
- }
56
- get {
57
- textField?.text ?? ""
58
- }
59
- }
60
-
61
- var isSecureTextEntry: Bool {
62
- set {
63
- textField?.isSecureTextEntry = newValue
64
- }
65
- get {
66
- textField?.isSecureTextEntry ?? false
67
- }
68
- }
69
-
70
- override var isFirstResponder: Bool {
71
- if let textField = textField {
72
- return textField.isFirstResponder
73
- } else {
74
- return super.isFirstResponder
75
- }
76
- }
77
-
78
- @discardableResult
79
- override func becomeFirstResponder() -> Bool {
80
- if let textField = textField {
81
- return textField.becomeFirstResponder()
82
- } else {
83
- return super.becomeFirstResponder()
84
- }
85
- }
86
-
87
- @discardableResult
88
- override func resignFirstResponder() -> Bool {
89
- if let textField = textField {
90
- return textField.resignFirstResponder()
91
- } else {
92
- return super.resignFirstResponder()
93
- }
94
- }
95
-
96
- }
@@ -1,63 +0,0 @@
1
-
2
-
3
-
4
- import Foundation
5
-
6
- public class EnvironmentConfig {
7
-
8
- public enum Environment {
9
- case staging
10
- case sandbox
11
- case production
12
- }
13
-
14
- public static var currentEnvironment: Environment = .staging
15
-
16
- public static var apiKey: String?
17
- public static var apiSecret: String?
18
-
19
- public static var baseURL: String {
20
- switch currentEnvironment {
21
- case .staging: return "https://stage-api.stage-easymerchant.io"
22
- case .sandbox: return "https://sandbox-api.sandbox-lyfepay.io"
23
- case .production: return "https://api.lyfepay.io"
24
- }
25
- }
26
-
27
- /// Configure API keys dynamically
28
- public static func configure(apiKey: String, apiSecret: String) {
29
- self.apiKey = apiKey
30
- self.apiSecret = apiSecret
31
- }
32
-
33
- /// Set the environment (staging, sandbox, production)
34
- public static func setEnvironment(_ environment: Environment) {
35
- self.currentEnvironment = environment
36
- }
37
-
38
- public enum Endpoints {
39
- case paymentIntent
40
- case hostedCheckouts
41
- case emailVerification
42
- case verifyOtp
43
- case getCards
44
- case creditCharges
45
- case account
46
- case achCharge
47
- case charges
48
-
49
- func path() -> String {
50
- switch self {
51
- case .paymentIntent: return "/api/v1/paymentintent"
52
- case .hostedCheckouts: return "/api/v1/hostedcheckouts"
53
- case .emailVerification: return "/api/v1/customer/send_otp"
54
- case .verifyOtp: return "/api/v1/customer/verify_otp"
55
- case .getCards: return "/api/v1/customer/card"
56
- case .creditCharges: return "/api/v1/customer/charges"
57
- case .account: return "/api/v1/ach/account"
58
- case .achCharge: return "/api/v1/ach/charge"
59
- case .charges: return "/api/v1/charges"
60
- }
61
- }
62
- }
63
- }
@@ -1,11 +0,0 @@
1
- {
2
- "colors" : [
3
- {
4
- "idiom" : "universal"
5
- }
6
- ],
7
- "info" : {
8
- "author" : "xcode",
9
- "version" : 1
10
- }
11
- }
@@ -1,13 +0,0 @@
1
- {
2
- "images" : [
3
- {
4
- "idiom" : "universal",
5
- "platform" : "ios",
6
- "size" : "1024x1024"
7
- }
8
- ],
9
- "info" : {
10
- "author" : "xcode",
11
- "version" : 1
12
- }
13
- }
@@ -1,6 +0,0 @@
1
- {
2
- "info" : {
3
- "author" : "xcode",
4
- "version" : 1
5
- }
6
- }
@@ -1,25 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
3
- <dependencies>
4
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
5
- <capability name="Safe area layout guides" minToolsVersion="9.0"/>
6
- <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
7
- </dependencies>
8
- <scenes>
9
- <!--View Controller-->
10
- <scene sceneID="EHf-IW-A2E">
11
- <objects>
12
- <viewController id="01J-lp-oVM" sceneMemberID="viewController">
13
- <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
14
- <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
15
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
16
- <color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
17
- <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
18
- </view>
19
- </viewController>
20
- <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
21
- </objects>
22
- <point key="canvasLocation" x="53" y="375"/>
23
- </scene>
24
- </scenes>
25
- </document>