@jimrising/easymerchantsdk-react-native 1.3.9 → 1.4.2
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 +77 -0
- package/README.md +140 -81
- package/android/.gradle/8.10/checksums/checksums.lock +0 -0
- package/android/.gradle/8.10/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.10/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.10/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- package/android/build/.transforms/20e1216b87bd06eaab3c9e5c68d4267a/results.bin +1 -0
- package/android/build/.transforms/20e1216b87bd06eaab3c9e5c68d4267a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/BuildConfig.dex +0 -0
- package/android/build/.transforms/20e1216b87bd06eaab3c9e5c68d4267a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$1.dex +0 -0
- package/android/build/.transforms/20e1216b87bd06eaab3c9e5c68d4267a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule$2.dex +0 -0
- package/android/build/.transforms/20e1216b87bd06eaab3c9e5c68d4267a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkModule.dex +0 -0
- package/android/build/.transforms/20e1216b87bd06eaab3c9e5c68d4267a/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/reactlibrary/RNEasymerchantsdkPackage.dex +0 -0
- package/android/build/.transforms/20e1216b87bd06eaab3c9e5c68d4267a/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/.transforms/e9a664a11ce12edf79cd87b1e07aa243/results.bin +1 -0
- package/android/build/.transforms/e9a664a11ce12edf79cd87b1e07aa243/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$2.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$2.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$2.class.uniqueId0 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkModule.class.uniqueId3 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNEasymerchantsdkPackage.class.uniqueId1 +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build.gradle +4 -1
- package/android/src/main/java/com/reactlibrary/RNEasymerchantsdkModule.java +158 -36
- package/android/src/main/java/com/reactlibrary/RNEasymerchantsdkPackage.java +45 -13
- package/ios/Classes/EasyMerchantSdk.m +106 -55
- package/ios/Classes/EasyMerchantSdk.swift +199 -77
- package/ios/Classes/EasyPayViewController.swift +1 -1
- package/ios/CustomComponents/DatePickerHandler.swift +15 -4
- package/ios/EnvironmentConfig.swift +32 -30
- package/ios/Models/Request.swift +176 -14
- package/ios/Models/Result.swift +12 -5
- package/ios/Pods/ViewControllers/AdditionalInfoVC.swift +855 -366
- package/ios/Pods/ViewControllers/BaseVC.swift +51 -36
- package/ios/Pods/ViewControllers/BillingInfoVC/BillingInfoVC.swift +1985 -178
- package/ios/Pods/ViewControllers/CountryListVC.swift +20 -1
- package/ios/Pods/ViewControllers/CustomOverlay.swift +199 -0
- package/ios/Pods/ViewControllers/EmailVerificationVC.swift +74 -5
- package/ios/Pods/ViewControllers/GrailPayVC.swift +131 -107
- package/ios/Pods/ViewControllers/OTPVerificationVC.swift +296 -106
- package/ios/Pods/ViewControllers/PaymentDoneVC.swift +35 -26
- package/ios/Pods/ViewControllers/PaymentInformation/PaymentInfoVC.swift +1276 -545
- package/ios/Pods/ViewControllers/ThreeDSecurePaymentDoneVC.swift +607 -24
- package/ios/easymerchantsdk.podspec +1 -1
- package/ios/easymerchantsdk.storyboard +1388 -1165
- package/package.json +1 -1
|
@@ -25,7 +25,6 @@ class CountryListVC: UIViewController {
|
|
|
25
25
|
|
|
26
26
|
override func viewDidLoad() {
|
|
27
27
|
super.viewDidLoad()
|
|
28
|
-
|
|
29
28
|
// Remove top and bottom lines (background/shadow)
|
|
30
29
|
if let searchBar = self.searchBarCountry {
|
|
31
30
|
searchBar.backgroundImage = UIImage() // Removes background line
|
|
@@ -56,6 +55,26 @@ class CountryListVC: UIViewController {
|
|
|
56
55
|
searchBarCountry.searchTextField.font = UIFont.systemFont(ofSize: fontSize)
|
|
57
56
|
}
|
|
58
57
|
|
|
58
|
+
if let secondaryFontColor = UserStoreSingleton.shared.secondary_font_col,
|
|
59
|
+
let uiColor = UIColor(hex: secondaryFontColor) {
|
|
60
|
+
// Set placeholder text color
|
|
61
|
+
let placeholderAttributes: [NSAttributedString.Key: Any] = [
|
|
62
|
+
.foregroundColor: uiColor
|
|
63
|
+
]
|
|
64
|
+
searchBarCountry.searchTextField.attributedPlaceholder = NSAttributedString(
|
|
65
|
+
string: searchBarCountry.searchTextField.placeholder ?? "Search here",
|
|
66
|
+
attributes: placeholderAttributes
|
|
67
|
+
)
|
|
68
|
+
// Set search icon color
|
|
69
|
+
searchBarCountry.searchTextField.leftView?.tintColor = uiColor
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if let searchBar = self.searchBarCountry {
|
|
73
|
+
searchBar.backgroundImage = UIImage() // Removes background line
|
|
74
|
+
searchBar.layer.borderWidth = 0
|
|
75
|
+
searchBar.layer.borderColor = UIColor.clear.cgColor
|
|
76
|
+
}
|
|
77
|
+
|
|
59
78
|
tblViewCountry.delegate = self
|
|
60
79
|
tblViewCountry.dataSource = self
|
|
61
80
|
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
////
|
|
2
|
+
//// CustomOverlay.swift
|
|
3
|
+
//// EasyPay
|
|
4
|
+
////
|
|
5
|
+
//// Created by Mony's Mac on 21/03/25.
|
|
6
|
+
////
|
|
7
|
+
//
|
|
8
|
+
////import BlinkCard
|
|
9
|
+
//
|
|
10
|
+
//protocol CustomOverlayDelegate: AnyObject {
|
|
11
|
+
// func didFinishScanningCard(cardNumber: String, expiryDate: String, cvv: String, nameOnCard: String)
|
|
12
|
+
//}
|
|
13
|
+
//
|
|
14
|
+
//class CustomOverlay: MBCCustomOverlayViewController, MBCScanningRecognizerRunnerViewControllerDelegate,
|
|
15
|
+
// MBCFirstSideFinishedRecognizerRunnerViewControllerDelegate {
|
|
16
|
+
//
|
|
17
|
+
// @IBOutlet weak var tooltipLabel: UILabel!
|
|
18
|
+
// @IBOutlet weak var centerView: UIView!
|
|
19
|
+
// @IBOutlet weak var lblScanCardCount: UILabel!
|
|
20
|
+
// @IBOutlet weak var btnRotate: UIButton!
|
|
21
|
+
// @IBOutlet weak var imgProcessing: UIImageView!
|
|
22
|
+
//
|
|
23
|
+
// var currentScanStep = 1 // Start with 1 for the first scan step
|
|
24
|
+
//
|
|
25
|
+
// var blinkCardEditScreen: MBCBlinkCardEditViewController?
|
|
26
|
+
// var blinkcardNavigationViewController: MBCBlinkCardEditNavigationController?
|
|
27
|
+
// var blinkCardRecognizerResult: MBCBlinkCardRecognizerResult?
|
|
28
|
+
//
|
|
29
|
+
// static func initFromStoryboard() -> CustomOverlay {
|
|
30
|
+
// let viewController = UIStoryboard(name: "easymerchantsdk", bundle: .easyPayBundle).instantiateViewController(withIdentifier: "CustomOverlay")
|
|
31
|
+
//
|
|
32
|
+
// guard let customOverlay = viewController as? CustomOverlay else {
|
|
33
|
+
// fatalError("CustomOverlay should always be an instance of \(CustomOverlay.self) here because we instantiate it from the Storyboard")
|
|
34
|
+
// }
|
|
35
|
+
//
|
|
36
|
+
// return customOverlay
|
|
37
|
+
// }
|
|
38
|
+
//
|
|
39
|
+
// weak var delegate: CustomOverlayDelegate?
|
|
40
|
+
//
|
|
41
|
+
// override func viewDidLoad() {
|
|
42
|
+
// super.viewDidLoad()
|
|
43
|
+
//
|
|
44
|
+
// super.scanningRecognizerRunnerViewControllerDelegate = self
|
|
45
|
+
// super.metadataDelegates.firstSideFinishedRecognizerRunnerViewControllerDelegate = self
|
|
46
|
+
//
|
|
47
|
+
// lblScanCardCount.text = "Scan Card (1/2)"
|
|
48
|
+
//
|
|
49
|
+
// centerView.layer.borderColor = UIColor.white.cgColor
|
|
50
|
+
// centerView.layer.borderWidth = 2.0
|
|
51
|
+
// centerView.layer.cornerRadius = 8.0
|
|
52
|
+
//
|
|
53
|
+
// imgProcessing.image = UIImage(systemName: "exclamationmark.circle")
|
|
54
|
+
// tooltipLabel.text = "Place the front side of your card inside the frame"
|
|
55
|
+
// }
|
|
56
|
+
//
|
|
57
|
+
// func updateScanProgress() {
|
|
58
|
+
// if currentScanStep < 2 {
|
|
59
|
+
// currentScanStep += 1
|
|
60
|
+
// lblScanCardCount.text = "Scan Card (\(currentScanStep)/2)"
|
|
61
|
+
// }
|
|
62
|
+
// }
|
|
63
|
+
//
|
|
64
|
+
// func showBorderColorForOneSeconds() {
|
|
65
|
+
// centerView.layer.borderColor = UIColor.green.cgColor
|
|
66
|
+
// centerView.layer.borderWidth = 2.0
|
|
67
|
+
// centerView.layer.cornerRadius = 8.0
|
|
68
|
+
//
|
|
69
|
+
// DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
|
|
70
|
+
// self.centerView.layer.borderColor = UIColor.white.cgColor
|
|
71
|
+
// self.centerView.layer.borderWidth = 2.0
|
|
72
|
+
// }
|
|
73
|
+
// }
|
|
74
|
+
//
|
|
75
|
+
// func recognizerRunnerViewControllerDidFinishScanning(_ recognizerRunnerViewController: UIViewController & MBCRecognizerRunnerViewController, state: MBCRecognizerResultState) {
|
|
76
|
+
// if state == .valid {
|
|
77
|
+
// recognizerRunnerViewController.pauseScanning()
|
|
78
|
+
//
|
|
79
|
+
// DispatchQueue.main.async {
|
|
80
|
+
// self.showBorderColorForOneSeconds()
|
|
81
|
+
//
|
|
82
|
+
// // Show loader while processing final results
|
|
83
|
+
// self.imgProcessing.image = UIImage(named: "loaderImage")
|
|
84
|
+
// self.tooltipLabel.text = "Keep it in frame while we’re processing..."
|
|
85
|
+
// self.startRotationAnimation(on: self.imgProcessing)
|
|
86
|
+
//
|
|
87
|
+
// for recognizer in self.recognizerCollection.recognizerList where recognizer.baseResult?.resultState == .valid {
|
|
88
|
+
// if recognizer is MBCBlinkCardRecognizer {
|
|
89
|
+
// let blinkCardRecognizer = recognizer as? MBCBlinkCardRecognizer
|
|
90
|
+
// self.blinkCardRecognizerResult = blinkCardRecognizer?.result
|
|
91
|
+
// }
|
|
92
|
+
// }
|
|
93
|
+
//
|
|
94
|
+
// self.imgProcessing.image = UIImage(named: "check")
|
|
95
|
+
// self.tooltipLabel.text = "Done"
|
|
96
|
+
// self.stopRotationAnimation(on: self.imgProcessing)
|
|
97
|
+
//
|
|
98
|
+
// guard let blinkCardResult = self.blinkCardRecognizerResult else { return }
|
|
99
|
+
//
|
|
100
|
+
// // Extract card details
|
|
101
|
+
// let cardNumber = blinkCardResult.cardNumber
|
|
102
|
+
// let expiryDate = "\(blinkCardResult.expiryDate.month)/\(blinkCardResult.expiryDate.year)"
|
|
103
|
+
// let cvv = blinkCardResult.cvv
|
|
104
|
+
// let nameOnCard = blinkCardResult.owner
|
|
105
|
+
//
|
|
106
|
+
// // Pass data to delegate
|
|
107
|
+
// self.delegate?.didFinishScanningCard(cardNumber: cardNumber, expiryDate: expiryDate, cvv: cvv, nameOnCard: nameOnCard)
|
|
108
|
+
//
|
|
109
|
+
// // Dismiss the scanner
|
|
110
|
+
// recognizerRunnerViewController.dismiss(animated: true, completion: nil)
|
|
111
|
+
// }
|
|
112
|
+
// }
|
|
113
|
+
// }
|
|
114
|
+
//
|
|
115
|
+
// func recognizerRunnerViewControllerDidFinishRecognition(ofFirstSide recognizerRunnerViewController: UIViewController & MBCRecognizerRunnerViewController) {
|
|
116
|
+
// DispatchQueue.main.async {
|
|
117
|
+
// // Show loader image during scanning
|
|
118
|
+
// self.imgProcessing.image = UIImage(named: "loaderImage", in: .easyPayBundle, with: nil)
|
|
119
|
+
// self.tooltipLabel.text = "Keep it in frame while we’re processing..."
|
|
120
|
+
// self.startRotationAnimation(on: self.imgProcessing)
|
|
121
|
+
//
|
|
122
|
+
// self.updateScanProgress()
|
|
123
|
+
// self.showBorderColorForOneSeconds()
|
|
124
|
+
//
|
|
125
|
+
// // Update tooltip and show check image after completing the first side
|
|
126
|
+
// DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
|
|
127
|
+
// self.imgProcessing.image = UIImage(named: "check", in: .easyPayBundle, with: nil)
|
|
128
|
+
// self.tooltipLabel.text = "Done"
|
|
129
|
+
// self.stopRotationAnimation(on: self.imgProcessing)
|
|
130
|
+
//
|
|
131
|
+
// DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
|
|
132
|
+
// self.imgProcessing.image = UIImage(systemName: "exclamationmark.circle")
|
|
133
|
+
// self.tooltipLabel.text = "Place the back side of your card inside the frame"
|
|
134
|
+
// self.stopRotationAnimation(on: self.imgProcessing)
|
|
135
|
+
// }
|
|
136
|
+
// }
|
|
137
|
+
// }
|
|
138
|
+
// }
|
|
139
|
+
//
|
|
140
|
+
// func startRotationAnimation(on imageView: UIImageView) {
|
|
141
|
+
// let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation")
|
|
142
|
+
// rotationAnimation.fromValue = 0
|
|
143
|
+
// rotationAnimation.toValue = CGFloat.pi * 2
|
|
144
|
+
// rotationAnimation.duration = 1.0 // Duration of one full rotation
|
|
145
|
+
// rotationAnimation.repeatCount = Float.infinity // Repeat indefinitely
|
|
146
|
+
// imageView.layer.add(rotationAnimation, forKey: "rotationAnimation")
|
|
147
|
+
// }
|
|
148
|
+
//
|
|
149
|
+
// func stopRotationAnimation(on imageView: UIImageView) {
|
|
150
|
+
// imageView.layer.removeAnimation(forKey: "rotationAnimation")
|
|
151
|
+
// }
|
|
152
|
+
//
|
|
153
|
+
// @IBAction func didTapClose(_ sender: Any) {
|
|
154
|
+
// self.recognizerRunnerViewController?.overlayViewControllerWillCloseCamera(self)
|
|
155
|
+
// self.dismiss(animated: true, completion: nil)
|
|
156
|
+
// }
|
|
157
|
+
//
|
|
158
|
+
// func showEditScreen(blinkCardRecognizerResult: MBCBlinkCardRecognizerResult) {
|
|
159
|
+
// blinkCardEditScreen = MBCBlinkCardEditViewController(blinkCardRecognizerResult: blinkCardRecognizerResult, fieldConfiguration: MBCBlinkCardEditFieldConfiguration(), delegate: self)
|
|
160
|
+
// blinkcardNavigationViewController = MBCBlinkCardEditNavigationController(rootViewController: blinkCardEditScreen!)
|
|
161
|
+
// self.present(blinkcardNavigationViewController!, animated: true, completion: nil)
|
|
162
|
+
// }
|
|
163
|
+
//
|
|
164
|
+
// @IBAction func actionBtnRotate(_ sender: UIButton) {
|
|
165
|
+
// UIView.animate(withDuration: 0.5, animations: {
|
|
166
|
+
// // Rotate the centerView by 180 degrees
|
|
167
|
+
// self.centerView.transform = self.centerView.transform.rotated(by: .pi/2)
|
|
168
|
+
// })
|
|
169
|
+
// }
|
|
170
|
+
//
|
|
171
|
+
//}
|
|
172
|
+
//
|
|
173
|
+
//extension CustomOverlay: MBCBlinkCardEditViewControllerDelegate {
|
|
174
|
+
// func blinkCardEditViewControllerDidFinishEditing(_ blinkCardEditViewController: MBCBlinkCardEditViewController, editResult: MBCBlinkCardEditResult) {
|
|
175
|
+
// self.recognizerRunnerViewController?.pauseScanning()
|
|
176
|
+
//
|
|
177
|
+
// DispatchQueue.main.async {
|
|
178
|
+
// let alertController: UIAlertController = UIAlertController.init(title: "BlinkCard Edit Results", message: editResult.description, preferredStyle: .alert)
|
|
179
|
+
//
|
|
180
|
+
// let okAction: UIAlertAction = UIAlertAction.init(title: "OK", style: .default, handler: { (action) -> Void in
|
|
181
|
+
// self.blinkCardEditScreen?.dismiss(animated: true, completion: nil)
|
|
182
|
+
// self.dismiss(animated: true, completion: nil)
|
|
183
|
+
// })
|
|
184
|
+
// alertController.addAction(okAction)
|
|
185
|
+
// blinkCardEditViewController.present(alertController, animated: true, completion: nil)
|
|
186
|
+
// }
|
|
187
|
+
// }
|
|
188
|
+
//
|
|
189
|
+
// func blinkCardEditViewControllerDidTapClose(_ blinkCardEditViewController: MBCBlinkCardEditViewController) {
|
|
190
|
+
// DispatchQueue.main.async {
|
|
191
|
+
// blinkCardEditViewController.dismiss(animated: true, completion: nil)
|
|
192
|
+
// }
|
|
193
|
+
// }
|
|
194
|
+
//}
|
|
195
|
+
//
|
|
196
|
+
//
|
|
197
|
+
//
|
|
198
|
+
//
|
|
199
|
+
//
|
|
@@ -18,7 +18,10 @@ class EmailVerificationVC: BaseVC {
|
|
|
18
18
|
var expiryDate: String?
|
|
19
19
|
var cvv: String?
|
|
20
20
|
var nameOnCard: String?
|
|
21
|
-
var
|
|
21
|
+
var userEmail: String?
|
|
22
|
+
var billingInfoData: Data?
|
|
23
|
+
|
|
24
|
+
var amount: Int?
|
|
22
25
|
|
|
23
26
|
var chosenPlan: String?
|
|
24
27
|
var startDate: String?
|
|
@@ -42,6 +45,14 @@ class EmailVerificationVC: BaseVC {
|
|
|
42
45
|
|
|
43
46
|
var request: Request!
|
|
44
47
|
|
|
48
|
+
var fieldSection: FieldSection?
|
|
49
|
+
var additionalInfo: [FieldItem]?
|
|
50
|
+
var billingInfo: [FieldItem]?
|
|
51
|
+
var visibility: FieldsVisibility?
|
|
52
|
+
|
|
53
|
+
var isSavedNewAccount: Bool?
|
|
54
|
+
var isFrom = String()
|
|
55
|
+
|
|
45
56
|
override func viewDidLoad() {
|
|
46
57
|
super.viewDidLoad()
|
|
47
58
|
|
|
@@ -51,9 +62,31 @@ class EmailVerificationVC: BaseVC {
|
|
|
51
62
|
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
|
|
52
63
|
view.addGestureRecognizer(tapGesture)
|
|
53
64
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
65
|
+
if let email = userEmail {
|
|
66
|
+
txtFieldEmail.text = email
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
decodeBillingInfo()
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// MARK: - Decode billingInfoData
|
|
73
|
+
private func decodeBillingInfo() {
|
|
74
|
+
guard let data = billingInfoData else {
|
|
75
|
+
print("No billingInfoData found")
|
|
76
|
+
return
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
do {
|
|
80
|
+
let decodedSection = try JSONDecoder().decode(FieldSection.self, from: data)
|
|
81
|
+
self.fieldSection = decodedSection
|
|
82
|
+
self.billingInfo = decodedSection.billing
|
|
83
|
+
self.additionalInfo = decodedSection.additional
|
|
84
|
+
self.visibility = decodedSection.visibility
|
|
85
|
+
|
|
86
|
+
print("Decoded billingInfo: \(billingInfo ?? [])")
|
|
87
|
+
} catch {
|
|
88
|
+
print("Failed to decode billing info data: \(error)")
|
|
89
|
+
}
|
|
57
90
|
}
|
|
58
91
|
|
|
59
92
|
func uiFinishingTouch() {
|
|
@@ -180,6 +213,7 @@ class EmailVerificationVC: BaseVC {
|
|
|
180
213
|
vc.cvv = self.cvv
|
|
181
214
|
vc.nameOnCard = self.nameOnCard
|
|
182
215
|
vc.billingInfoData = self.billingInfoData
|
|
216
|
+
vc.billingInfo = self.billingInfo
|
|
183
217
|
vc.selectedPaymentMethod = self.selectedPaymentMethod
|
|
184
218
|
vc.easyPayDelegate = self.easyPayDelegate
|
|
185
219
|
vc.email = self.txtFieldEmail.text
|
|
@@ -187,6 +221,10 @@ class EmailVerificationVC: BaseVC {
|
|
|
187
221
|
vc.request = self.request
|
|
188
222
|
vc.chosenPlan = self.chosenPlan
|
|
189
223
|
vc.startDate = self.startDate
|
|
224
|
+
vc.userEmail = self.userEmail
|
|
225
|
+
vc.billingInfo = self.billingInfo
|
|
226
|
+
vc.additionalInfo = self.additionalInfo
|
|
227
|
+
vc.visibility = self.visibility
|
|
190
228
|
self.navigationController?.pushViewController(vc, animated: true)
|
|
191
229
|
}
|
|
192
230
|
}
|
|
@@ -197,18 +235,23 @@ class EmailVerificationVC: BaseVC {
|
|
|
197
235
|
vc.accountType = self.accountType
|
|
198
236
|
vc.accountNumber = self.accountNumber
|
|
199
237
|
vc.billingInfoData = self.billingInfoData
|
|
238
|
+
vc.billingInfo = self.billingInfo
|
|
200
239
|
vc.selectedPaymentMethod = self.selectedPaymentMethod
|
|
201
240
|
vc.easyPayDelegate = self.easyPayDelegate
|
|
202
241
|
vc.email = self.txtFieldEmail.text
|
|
203
242
|
vc.chosenPlan = self.chosenPlan
|
|
204
243
|
vc.startDate = self.startDate
|
|
205
244
|
vc.request = self.request
|
|
245
|
+
vc.userEmail = self.userEmail
|
|
246
|
+
vc.billingInfo = self.fieldSection?.billing
|
|
247
|
+
vc.additionalInfo = self.fieldSection?.additional
|
|
248
|
+
vc.visibility = self.fieldSection?.visibility
|
|
206
249
|
self.navigationController?.pushViewController(vc, animated: true)
|
|
207
250
|
}
|
|
208
251
|
}
|
|
209
252
|
else if self.selectedPaymentMethod == "GrailPay" {
|
|
210
253
|
if let vc = self.storyboard?.instantiateViewController(withIdentifier: "OTPVerificationVC") as? OTPVerificationVC {
|
|
211
|
-
vc.selectedPaymentMethod =
|
|
254
|
+
vc.selectedPaymentMethod = self.selectedPaymentMethod
|
|
212
255
|
vc.easyPayDelegate = self.easyPayDelegate
|
|
213
256
|
vc.grailPayAccountID = self.grailPayAccountID
|
|
214
257
|
vc.selectedGrailPayAccountType = self.selectedGrailPayAccountType
|
|
@@ -217,6 +260,32 @@ class EmailVerificationVC: BaseVC {
|
|
|
217
260
|
vc.chosenPlan = self.chosenPlan
|
|
218
261
|
vc.startDate = self.startDate
|
|
219
262
|
vc.request = self.request
|
|
263
|
+
vc.billingInfoData = self.billingInfoData
|
|
264
|
+
vc.billingInfo = self.billingInfo
|
|
265
|
+
vc.userEmail = self.userEmail
|
|
266
|
+
vc.billingInfo = self.fieldSection?.billing
|
|
267
|
+
vc.additionalInfo = self.fieldSection?.additional
|
|
268
|
+
vc.visibility = self.fieldSection?.visibility
|
|
269
|
+
self.navigationController?.pushViewController(vc, animated: true)
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
else if self.selectedPaymentMethod == "NewGrailPayAccount" {
|
|
273
|
+
if let vc = self.storyboard?.instantiateViewController(withIdentifier: "OTPVerificationVC") as? OTPVerificationVC {
|
|
274
|
+
vc.selectedPaymentMethod = self.selectedPaymentMethod
|
|
275
|
+
vc.easyPayDelegate = self.easyPayDelegate
|
|
276
|
+
vc.grailPayAccountID = self.grailPayAccountID
|
|
277
|
+
vc.selectedGrailPayAccountType = self.selectedGrailPayAccountType
|
|
278
|
+
vc.selectedGrailPayAccountName = self.selectedGrailPayAccountName
|
|
279
|
+
vc.email = self.txtFieldEmail.text
|
|
280
|
+
vc.chosenPlan = self.chosenPlan
|
|
281
|
+
vc.startDate = self.startDate
|
|
282
|
+
vc.request = self.request
|
|
283
|
+
vc.billingInfoData = self.billingInfoData
|
|
284
|
+
vc.billingInfo = self.billingInfo
|
|
285
|
+
vc.userEmail = self.userEmail
|
|
286
|
+
vc.billingInfo = self.fieldSection?.billing
|
|
287
|
+
vc.additionalInfo = self.fieldSection?.additional
|
|
288
|
+
vc.visibility = self.fieldSection?.visibility
|
|
220
289
|
self.navigationController?.pushViewController(vc, animated: true)
|
|
221
290
|
}
|
|
222
291
|
}
|