@jimrising/easymerchantsdk-react-native 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/caches/deviceStreaming.xml +340 -0
- package/.idea/em-MobileCheckoutSDK-ReactNative.iml +9 -0
- package/.idea/misc.xml +5 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/README.md +230 -0
- package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/results.bin +1 -0
- package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/BuildConfig.dex +0 -0
- package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$1.dex +0 -0
- package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule.dex +0 -0
- package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkPackage.dex +0 -0
- package/android/build/.transforms/27d3a0c22098810ca42038b1b8102417/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/.transforms/41cd2635778c1bb5c18af2c46eb9196e/results.bin +1 -0
- package/android/build/.transforms/41cd2635778c1bb5c18af2c46eb9196e/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/results.bin +1 -0
- package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/BuildConfig.dex +0 -0
- package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$1.dex +0 -0
- package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule.dex +0 -0
- package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkPackage.dex +0 -0
- package/android/build/.transforms/6b36622787f586c4b6e3df98c5efa11c/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/.transforms/7eb7ceaa43c9e8323ac65b4f785987b6/results.bin +1 -0
- package/android/build/.transforms/7eb7ceaa43c9e8323ac65b4f785987b6/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/results.bin +1 -0
- package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/BuildConfig.dex +0 -0
- package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$1.dex +0 -0
- package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule.dex +0 -0
- package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkPackage.dex +0 -0
- package/android/build/.transforms/a8b93af4be449a0e2cca4bd6ddb6685e/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/.transforms/f1a160720415bc76d8d6c6734c5acf3e/results.bin +1 -0
- package/android/build/.transforms/f1a160720415bc76d8d6c6734c5acf3e/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/generated/source/buildConfig/debug/com/reactlibrary/BuildConfig.java +10 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/reactlibrary/BuildConfig.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/reactlibrary/RNEasymerchantsdkModule$1.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/reactlibrary/RNEasymerchantsdkModule.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/reactlibrary/RNEasymerchantsdkPackage.class +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
- package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
- package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/reactlibrary/BuildConfig.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/reactlibrary/RNEasymerchantsdkModule$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/reactlibrary/RNEasymerchantsdkModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/reactlibrary/RNEasymerchantsdkPackage.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +17 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkModule$1.class.uniqueId2 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkModule.class.uniqueId1 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkPackage.class.uniqueId0 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build.gradle +55 -0
- package/android/src/main/AndroidManifest.xml +5 -0
- package/android/src/main/java/com/reactlibrary/RNEasymerchantsdkModule.java +72 -0
- package/android/src/main/java/com/reactlibrary/RNEasymerchantsdkPackage.java +28 -0
- package/index.js +5 -0
- package/ios/Bundle/EasyPayBundle.swift +22 -0
- package/ios/Classes/EasyMerchantSdk.h +4 -0
- package/ios/Classes/EasyMerchantSdk.m +43 -0
- package/ios/Classes/EasyMerchantSdk.swift +124 -0
- package/ios/Classes/EasyPayViewController.swift +90 -0
- package/ios/CustomComponents/CheckboxButton.swift +20 -0
- package/ios/CustomComponents/FilledButton.swift +17 -0
- package/ios/CustomComponents/OutlineButton.swift +26 -0
- package/ios/CustomComponents/TextFieldStackView.swift +96 -0
- package/ios/EnvironmentConfig.swift +63 -0
- package/ios/Example/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
- package/ios/Example/Assets.xcassets/AppIcon.appiconset/Contents.json +13 -0
- package/ios/Example/Assets.xcassets/Contents.json +6 -0
- package/ios/Example/Base.lproj/LaunchScreen.storyboard +25 -0
- package/ios/Example/Base.lproj/Main.storyboard +65 -0
- package/ios/Example/SceneDelegate.swift +52 -0
- package/ios/Example/ViewController.swift +84 -0
- package/ios/Extensions/UIColor.swift +22 -0
- package/ios/Extensions/UIFont.swift +80 -0
- package/ios/Extensions/UIViewController+Extension.swift +42 -0
- package/ios/Models/AdditionalInfo.swift +16 -0
- package/ios/Models/BankAccountModel.swift +23 -0
- package/ios/Models/BillingInfo.swift +16 -0
- package/ios/Models/CardModel.swift +19 -0
- package/ios/Models/Country.swift +19 -0
- package/ios/Models/PaymentInfo.swift +46 -0
- package/ios/Models/Request.swift +245 -0
- package/ios/Models/Result.swift +69 -0
- package/ios/Pods/UserDefaults/UserStoreSingleton.swift +200 -0
- package/ios/Pods/ViewControllers/AdditionalInfoVC.swift +1073 -0
- package/ios/Pods/ViewControllers/BaseVC.swift +117 -0
- package/ios/Pods/ViewControllers/BillingInfoVC/BillingInfoVC.swift +616 -0
- package/ios/Pods/ViewControllers/BillingInfoVC/Cells/CityListTVC.swift +19 -0
- package/ios/Pods/ViewControllers/BillingInfoVC/Cells/CountryListTVC.swift +19 -0
- package/ios/Pods/ViewControllers/BillingInfoVC/Cells/StateListTVC.swift +19 -0
- package/ios/Pods/ViewControllers/CountryListVC.swift +367 -0
- package/ios/Pods/ViewControllers/EmailVerificationVC.swift +192 -0
- package/ios/Pods/ViewControllers/OTPVerificationVC.swift +1009 -0
- package/ios/Pods/ViewControllers/PaymentDoneVC.swift +94 -0
- package/ios/Pods/ViewControllers/PaymentErrorVC.swift +43 -0
- package/ios/Pods/ViewControllers/PaymentInformation/AccountTypeTVC.swift +19 -0
- package/ios/Pods/ViewControllers/PaymentInformation/PaymentInfoVC.swift +4269 -0
- package/ios/Pods/ViewControllers/PaymentInformation/PaymentInformationCVC.swift +20 -0
- package/ios/Pods/ViewControllers/PaymentInformation/SavedAccountsTVC/SavedAccountTVC.swift +37 -0
- package/ios/Pods/ViewControllers/PaymentInformation/SavedAccountsTVC/SavedAccountTVC.xib +163 -0
- package/ios/Pods/ViewControllers/PaymentInformation/SavedCardsTVC/SavedCardsTVC.swift +40 -0
- package/ios/Pods/ViewControllers/PaymentInformation/SavedCardsTVC/SavedCardsTVC.xib +184 -0
- package/ios/Pods/ViewControllers/TermAndConditionsVC.swift +21 -0
- package/ios/Resources/Assets.xcassets/Card/Amex.imageset/206682_american_express_method_card_payment_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/Amex.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/Contents.json +6 -0
- package/ios/Resources/Assets.xcassets/Card/DinersClub.imageset/472318_card_club_diners_dinner_payment_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/DinersClub.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/Discover.imageset/206686_network_payment_discover_card_method_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/Discover.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/JCB.imageset/358102_card_jcb_payment_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/JCB.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/MasterCard.imageset/206680_master_method_card_payment_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/MasterCard.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/UnionPay.imageset/1468976_card_payment_unionpay_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/UnionPay.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/Visa.imageset/206684_visa_method_card_payment_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/Visa.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/maestro.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/maestro.imageset/maestro.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/paypal.imageset/206675_paypal_method_payment_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/paypal.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/rupay.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/rupay.imageset/rupay.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/unknown_card.imageset/4635000_card_credit_digital_money_icon.svg +1 -0
- package/ios/Resources/Assets.xcassets/Card/unknown_card.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/worldpay.imageset/Contents.json +12 -0
- package/ios/Resources/Assets.xcassets/Card/worldpay.imageset/worldpay.svg +1 -0
- package/ios/Resources/Assets.xcassets/Contents.json +6 -0
- package/ios/Resources/Assets.xcassets/Ellipsis.imageset/Contents.json +23 -0
- package/ios/Resources/Assets.xcassets/Ellipsis.imageset/icons8-menu-30.png +0 -0
- package/ios/Resources/Assets.xcassets/Ellipsis.imageset/icons8-menu-60.png +0 -0
- package/ios/Resources/Assets.xcassets/Ellipsis.imageset/icons8-menu-90.png +0 -0
- package/ios/Resources/Assets.xcassets/Rotate.imageset/Contents.json +23 -0
- package/ios/Resources/Assets.xcassets/Rotate.imageset/refresh-cw-2.png +0 -0
- package/ios/Resources/Assets.xcassets/Rotate.imageset/refresh-cw-3.png +0 -0
- package/ios/Resources/Assets.xcassets/Rotate.imageset/refresh-cw.png +0 -0
- package/ios/Resources/Assets.xcassets/amexCvc.imageset/Contents.json +22 -0
- package/ios/Resources/Assets.xcassets/amexCvc.imageset/Group-1.png +0 -0
- package/ios/Resources/Assets.xcassets/amexCvc.imageset/Group.png +0 -0
- package/ios/Resources/Assets.xcassets/check.imageset/Contents.json +23 -0
- package/ios/Resources/Assets.xcassets/check.imageset/check-circle-4.png +0 -0
- package/ios/Resources/Assets.xcassets/check.imageset/check-circle-5.png +0 -0
- package/ios/Resources/Assets.xcassets/check.imageset/check-circle-6.png +0 -0
- package/ios/Resources/Assets.xcassets/chip.imageset/Contents.json +21 -0
- package/ios/Resources/Assets.xcassets/chip.imageset/chip.png +0 -0
- package/ios/Resources/Assets.xcassets/loaderImage.imageset/Contents.json +23 -0
- package/ios/Resources/Assets.xcassets/loaderImage.imageset/check-circle-2.png +0 -0
- package/ios/Resources/Assets.xcassets/loaderImage.imageset/check-circle-3.png +0 -0
- package/ios/Resources/Assets.xcassets/loaderImage.imageset/check-circle.png +0 -0
- package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/Contents.json +23 -0
- package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/payment_done_icon 1.png +0 -0
- package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/payment_done_icon 2.png +0 -0
- package/ios/Resources/Assets.xcassets/payment_done_icon.imageset/payment_done_icon.png +0 -0
- package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/Contents.json +23 -0
- package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/payment_error_icon 1.png +0 -0
- package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/payment_error_icon 2.png +0 -0
- package/ios/Resources/Assets.xcassets/payment_error_icon.imageset/payment_error_icon.png +0 -0
- package/ios/Resources/Assets.xcassets/wallet.imageset/Contents.json +23 -0
- package/ios/Resources/Assets.xcassets/wallet.imageset/icons8-wallet-24(@1/303/227).png +0 -0
- package/ios/Resources/Assets.xcassets/wallet.imageset/icons8-wallet-48(@2/303/227).png +0 -0
- package/ios/Resources/Assets.xcassets/wallet.imageset/icons8-wallet-72(@3/303/227).png +0 -0
- package/ios/Resources/Colors.xcassets/00000008.colorset/Contents.json +20 -0
- package/ios/Resources/Colors.xcassets/00000016.colorset/Contents.json +20 -0
- package/ios/Resources/Colors.xcassets/00000038.colorset/Contents.json +20 -0
- package/ios/Resources/Colors.xcassets/00000060.colorset/Contents.json +20 -0
- package/ios/Resources/Colors.xcassets/1757D9.colorset/Contents.json +20 -0
- package/ios/Resources/Colors.xcassets/Contents.json +6 -0
- package/ios/Resources/Colors.xcassets/E93939.colorset/Contents.json +20 -0
- package/ios/Resources/PrivacyInfo.xcprivacy +10 -0
- package/ios/ThirdParty/Keyboad Handling/KeyboardObserver.swift +74 -0
- package/ios/easymerchantsdk.podspec +80 -0
- package/ios/easymerchantsdk.storyboard +5885 -0
- package/package.json +27 -0
- package/src/index.js +44 -0
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
o/classes
|
|
Binary file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automatically generated file. DO NOT MODIFY
|
|
3
|
+
*/
|
|
4
|
+
package com.reactlibrary;
|
|
5
|
+
|
|
6
|
+
public final class BuildConfig {
|
|
7
|
+
public static final boolean DEBUG = Boolean.parseBoolean("true");
|
|
8
|
+
public static final String LIBRARY_PACKAGE_NAME = "com.reactlibrary";
|
|
9
|
+
public static final String BUILD_TYPE = "debug";
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"artifactType": {
|
|
4
|
+
"type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
|
|
5
|
+
"kind": "Directory"
|
|
6
|
+
},
|
|
7
|
+
"applicationId": "com.reactlibrary",
|
|
8
|
+
"variantName": "debug",
|
|
9
|
+
"elements": [
|
|
10
|
+
{
|
|
11
|
+
"type": "SINGLE",
|
|
12
|
+
"filters": [],
|
|
13
|
+
"attributes": [],
|
|
14
|
+
"outputFile": "AndroidManifest.xml"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"elementType": "File"
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#Thu Dec 19 11:20:53 IST 2024
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk/android/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk/android/src/debug/jniLibs"/></dataSet></merger>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/demo/node_modules/easymerchantsdk-react-native/android/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/demo/node_modules/easymerchantsdk-react-native/android/src/debug/shaders"/></dataSet></merger>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/demo/node_modules/easymerchantsdk-react-native/android/src/main/assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/demo/node_modules/easymerchantsdk-react-native/android/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/appdev/Desktop/demo/node_modules/easymerchantsdk-react-native/android/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0 Warning/Error
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
com.reactlibrary
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- Merging decision tree log ---
|
|
2
|
+
manifest
|
|
3
|
+
ADDED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml:2:1-4:12
|
|
4
|
+
INJECTED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml:2:1-4:12
|
|
5
|
+
package
|
|
6
|
+
ADDED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml:3:11-37
|
|
7
|
+
INJECTED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml
|
|
8
|
+
xmlns:android
|
|
9
|
+
ADDED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml:2:11-69
|
|
10
|
+
uses-sdk
|
|
11
|
+
INJECTED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml reason: use-sdk injection requested
|
|
12
|
+
INJECTED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml
|
|
13
|
+
INJECTED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml
|
|
14
|
+
android:targetSdkVersion
|
|
15
|
+
INJECTED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml
|
|
16
|
+
android:minSdkVersion
|
|
17
|
+
INJECTED from /Users/appdev/Desktop/SampleApp/node_modules/easymerchantsdk-react-native/android/src/main/AndroidManifest.xml
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
|
|
2
|
+
buildscript {
|
|
3
|
+
repositories {
|
|
4
|
+
jcenter()
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
dependencies {
|
|
8
|
+
classpath 'com.android.tools.build:gradle:1.3.1'
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
apply plugin: 'com.android.library'
|
|
13
|
+
|
|
14
|
+
android {
|
|
15
|
+
compileSdkVersion 34
|
|
16
|
+
buildToolsVersion "23.0.1"
|
|
17
|
+
|
|
18
|
+
defaultConfig {
|
|
19
|
+
minSdkVersion 16
|
|
20
|
+
targetSdkVersion 34
|
|
21
|
+
versionCode 1
|
|
22
|
+
versionName "1.0"
|
|
23
|
+
}
|
|
24
|
+
lintOptions {
|
|
25
|
+
abortOnError false
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
repositories {
|
|
30
|
+
mavenCentral()
|
|
31
|
+
maven { url 'https://jitpack.io' }
|
|
32
|
+
maven {
|
|
33
|
+
url = uri("https://maven.pkg.github.com/EasyMerchant/em-MobileCheckoutSDK-Android")
|
|
34
|
+
credentials {
|
|
35
|
+
username = "EasyMerchant"
|
|
36
|
+
password = "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"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
dependencies {
|
|
42
|
+
implementation 'com.app:paysdk:1.1.9'
|
|
43
|
+
implementation 'com.hbb20:ccp:2.7.3'
|
|
44
|
+
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1"
|
|
45
|
+
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1"
|
|
46
|
+
implementation 'com.github.androidmads:QRGenerator:1.0.1'
|
|
47
|
+
implementation 'androidx.appcompat:appcompat:1.6.1'
|
|
48
|
+
implementation 'com.google.android.material:material:1.8.0'
|
|
49
|
+
implementation 'com.facebook.react:react-native:+'
|
|
50
|
+
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1' // or the latest version
|
|
51
|
+
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
|
|
52
|
+
implementation 'androidx.core:core-ktx:1.13.1'
|
|
53
|
+
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
|
54
|
+
}
|
|
55
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#import "EasyMerchantSdk.h"
|
|
2
|
+
#import <React/RCTLog.h>
|
|
3
|
+
#import <React/RCTBridgeModule.h>
|
|
4
|
+
#import "easymerchantsdk-Swift.h"
|
|
5
|
+
|
|
6
|
+
@implementation EasyMerchantSdk
|
|
7
|
+
|
|
8
|
+
RCT_EXPORT_MODULE()
|
|
9
|
+
|
|
10
|
+
// Billing method: Initiates the payment process with the provided details
|
|
11
|
+
RCT_EXPORT_METHOD(billing:(NSString *)amount
|
|
12
|
+
billingInfo:(NSString *)billingInfo
|
|
13
|
+
environment:(NSString *)environment
|
|
14
|
+
apiKey:(NSString *)apiKey
|
|
15
|
+
apiSecret:(NSString *)apiSecret
|
|
16
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
17
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
18
|
+
{
|
|
19
|
+
EasyMerchantSdkPlugin *sdkPlugin = [[EasyMerchantSdkPlugin alloc] init];
|
|
20
|
+
|
|
21
|
+
// Configure SDK with provided keys and environment
|
|
22
|
+
[sdkPlugin configureEnvironment:environment apiKey:apiKey apiSecret:apiSecret];
|
|
23
|
+
|
|
24
|
+
[sdkPlugin billing:amount billinginfo:billingInfo resolver:resolve rejecter:reject];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
RCT_EXPORT_METHOD(setViewController:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
28
|
+
{
|
|
29
|
+
UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
|
|
30
|
+
EasyMerchantSdkPlugin *sdkPlugin = [[EasyMerchantSdkPlugin alloc] init];
|
|
31
|
+
[sdkPlugin setViewController:rootViewController];
|
|
32
|
+
resolve(@"ViewController set successfully");
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Set platform version method: Returns the platform version (e.g., iOS version)
|
|
36
|
+
RCT_EXPORT_METHOD(getPlatformVersion:(RCTPromiseResolveBlock)resolve
|
|
37
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
38
|
+
{
|
|
39
|
+
NSString *platformVersion = [NSString stringWithFormat:@"iOS %@", [[UIDevice currentDevice] systemVersion]];
|
|
40
|
+
resolve(platformVersion);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@end
|
|
@@ -0,0 +1,124 @@
|
|
|
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
|
+
|
|
93
|
+
public static func requiresMainQueueSetup() -> Bool {
|
|
94
|
+
return true
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
extension EasyMerchantSdkPlugin: EasyPayViewControllerDelegate {
|
|
99
|
+
public func easyPayController(_ controller: EasyPayViewController, didFinishWith result: Result) {
|
|
100
|
+
DispatchQueue.main.async {
|
|
101
|
+
switch result.type {
|
|
102
|
+
case .cancelled:
|
|
103
|
+
print("Payment Cancelled by user.")
|
|
104
|
+
case .success:
|
|
105
|
+
if let chargeData = result.chargeData {
|
|
106
|
+
self.handleSuccess(with: chargeData)
|
|
107
|
+
} else {
|
|
108
|
+
print("Payment succeeded but no charge data received.")
|
|
109
|
+
}
|
|
110
|
+
case .error:
|
|
111
|
+
if let chargeData = result.chargeData,
|
|
112
|
+
let errorMessage = chargeData["errorMessage"] as? String {
|
|
113
|
+
print("Payment Error: \(errorMessage)")
|
|
114
|
+
} else {
|
|
115
|
+
print("Unknown Payment Error.")
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private func handleSuccess(with chargeData: [String: Any]) {
|
|
122
|
+
print("Payment Successful. Charge Data: \(chargeData)")
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
}
|