Skip to content

Commit

Permalink
fix issue with payment
Browse files Browse the repository at this point in the history
  • Loading branch information
Mohamed-AbdulRaouf committed Oct 22, 2023
1 parent bfb409a commit 2cd11e2
Show file tree
Hide file tree
Showing 12 changed files with 68 additions and 36 deletions.
4 changes: 2 additions & 2 deletions Example/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ PODS:
- SwinjectStoryboard (2.2.2):
- Swinject (~> 2.7.1)
- TextFieldEffects (1.6.0)
- WDFrameWorkIOS (3.3.2):
- WDFrameWorkIOS (3.3.3):
- AcceptCardSDK (= 5.5.1)
- Alamofire (~> 5.6.4)
- Bond
Expand Down Expand Up @@ -286,7 +286,7 @@ SPEC CHECKSUMS:
Swinject: ddf78b8486dd9b71a667b852cad919ab4484478e
SwinjectStoryboard: 240ce371396da09a4c43c72ee5c148108500e184
TextFieldEffects: 529b8aff706fb40f82c41c780c0777941a893796
WDFrameWorkIOS: ea7433c0ecbeaaf331cdeb5c7cd6587724223cdb
WDFrameWorkIOS: 8244ea3d8afe99d4079e01f5d48b6e1273a41c6d

PODFILE CHECKSUM: 3ed71ff6d7b4335c6f24b6c4f9586f321dd86290

Expand Down
2 changes: 2 additions & 0 deletions Example/WDFrameWorkIOS/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ class ViewController: UIViewController {
let bundle = Bundle(path: bundlePath!)
let WDStoryboard: UIStoryboard = UIStoryboard(name: "TestStoryboard", bundle: bundle)
let vc = WDStoryboard.instantiateViewController(withIdentifier: "TestViewController") as! TestViewController
// simple tech aacount
// let firstScreenWDframework = vc.create(firstName: "Mohamed",lastName: "Abdulraouf", mobile: "+201224660704", email: "mohamed.a.raouf@icloud.com", membershipNumber: "0040071777", language: language)
let firstScreenWDframework = vc.create(firstName: "Mohamed",lastName: "Abdulraouf", mobile: "+201226372125", email: "mohamed.a.raouf@icloud.com", membershipNumber: "0040071777", language: language)
// set app delegate to push view controller
let appDelegate = UIApplication.shared.delegate as? AppDelegate
Expand Down
2 changes: 2 additions & 0 deletions Example/WDFrameWorkIOS/ar.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -407,3 +407,5 @@
"coupon_code_already_used_before" = "الكوبون تم استخدامه بالفعل من قبل";
"select_nearest_restaurant" = "إختار أقرب مطعم";
"select" = "إختار";
"some_cart_items_changed" = "تم تغيير بعض عناصر سلة التسوق";
"payment_failed_please_try_again_later" = "فشلت عمليه الدفع يرجى المحاولة مرة أخرى في وقت لاحق";
2 changes: 2 additions & 0 deletions Example/WDFrameWorkIOS/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -414,3 +414,5 @@
"coupon_code_already_used_before" = "Coupon code already used before";
"select_nearest_restaurant" = "Select Nearest Restaurant";
"select" = "Select";
"some_cart_items_changed" = "Some Cart Item(s) Changed";
"payment_failed_please_try_again_later" = "Payment failed please try again later";
2 changes: 1 addition & 1 deletion WDFrameWorkIOS.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |spec|
spec.name = 'WDFrameWorkIOS'
spec.version = '3.3.2'
spec.version = '3.3.3'
spec.summary = 'A short description of WDFrameWorkIOS.'


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,5 @@ public enum ServerPathsBLL: String {
// case GET_AVAILABLE_COUNTRIES = "api/Loyalty/CountryApp/GetAvailableCountries/"
case GET_ALL_AVAILABLE_COUNTRIES = "api/Loyalty/CountryApp/GetAllAvailableCountries/"
case GET_BRAND_AVAILABLE_COUNTRIES = "api/Loyalty/CountryApp/GetBrandAvailableCountries/"
case CONFIRM_ONLINE_PAYMENT_FOR_ORDER_KASHIER = "api/Loyalty/OrderApp/ConfirmOnLinePaymentForOrderKashier"
}
11 changes: 10 additions & 1 deletion WDFrameWorkIOS/Classes/WadiDelgla/BLL/Order App/OrderRoute.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ enum OrderRouteBLL: URLRequestBuilderBLL {
case confirmOnLinePaymentForOrder(model: IConfirmPaymentDTODAL)
case GetOrderByFrontReference(frontOrderReferenceId: String)
case ConfirmOnLinePaymentForOrderMyFatoorah(model: IConfirmMyFatoorahPaymentDTODAL)
case ConfirmOnLinePaymentForOrderKashier(model: IConfirmPaymentDTODAL)
// MARK: - Path
internal var path: ServerPathsBLL {
switch self {
Expand All @@ -39,6 +40,8 @@ enum OrderRouteBLL: URLRequestBuilderBLL {
return .GET_ORDER_BY_FRONT_REFERENCE
case .ConfirmOnLinePaymentForOrderMyFatoorah:
return .CONFIRM_ONLINE_PAYMENT_FOR_ORDER_MY_FATOORAH
case .ConfirmOnLinePaymentForOrderKashier:
return .CONFIRM_ONLINE_PAYMENT_FOR_ORDER_KASHIER
}
}

Expand Down Expand Up @@ -69,7 +72,13 @@ enum OrderRouteBLL: URLRequestBuilderBLL {
params[KBLL.APIParameterKey.customerHistoryId] = model.customerHistoryId.value ?? 0
params[KBLL.APIParameterKey.orderId] = model.orderId.value ?? ""
params[KBLL.APIParameterKey.status] = model.status.value ?? false

case let .ConfirmOnLinePaymentForOrderKashier(model): //(transactionId, merchanOrderId, orderId, status):
params[KBLL.APIParameterKey.transactionId] = model.transactionId.value ?? ""
params[KBLL.APIParameterKey.merchanOrderId] = model.merchanOrderId.value ?? ""
params[KBLL.APIParameterKey.orderId] = model.merchanOrderId.value ?? ""
params[KBLL.APIParameterKey.status] = model.status.value ?? false
params["Language"] = Config.language
params["CustomerID"] = model.customerID.value ?? 0
default: break
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ public protocol OrderServiceBLL :AnyObject {
func getOrderByFrontReference(_ frontOrderReferenceId: String,completion: @escaping onSuccessBLL)
func generateFrontOrderReferenceId(forBrandId brandId: Int,withUserId userId: String) -> String
func confirmOnLinePaymentForOrderMyFatoorah(_ model: IConfirmMyFatoorahPaymentDTODAL,completion: @escaping onSuccessBLL)

func confirmOnLinePaymentForOrderKashier(_ model: IConfirmPaymentDTODAL,completion: @escaping onSuccessBLL)
}

Original file line number Diff line number Diff line change
Expand Up @@ -243,4 +243,23 @@ public class OrderUseCasesBLL : OrderServiceBLL {
}
}
}

public func confirmOnLinePaymentForOrderKashier(_ model: IConfirmPaymentDTODAL, completion: @escaping onSuccessBLL) {
//API confirmOnLinePaymentForOrderKashier
let request = OrderRouteBLL.ConfirmOnLinePaymentForOrderKashier(model: model)
network.sendRequest(request) { (response, error) in
guard error == nil else {
completion(STResponseBLL(data: nil, error: STErrorBLL(validateError: nil , APIError: nil,networkError: NetworkErrorBLL(error: (error as NSError?)!))))
return
}

if response?.messageCode == 200 || response?.messageCode == 601 {
completion(STResponseBLL(data: true, error:nil))
return
} else {
completion(STResponseBLL(data: nil, error: STErrorBLL(validateError: nil, APIError: StandardMessagesBLL(rawValue: response?.messageCode ?? 0),ErrorCode: response?.messageCode)))
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -90,21 +90,17 @@ class CheckOutViewController: STUIViewController,IBaseController {
}
func onCheckoutButtonTapped(){
guard self.viewModel?.cart?.orderPaymentTypeId != PaymentType.cashOnDelivery.orderPaymentId && self.viewModel?.paymentData == nil else {
self.viewModel?.makeOrder()
return
}

self.openCreditCardForm()
self.viewModel?.makeOrder()
return
}
self.viewModel?.makeOrder()
}
func openCreditCardForm(){

func openCreditCardForm() {
guard self.viewModel?.cart?.orderPaymentTypeId != PaymentType.cashOnDelivery.orderPaymentId else{ return }
// self.viewModel?.makeOrder()
// self.FawryPayment()
self.authenticationRequest()
// let vc = StoryboardScene.Payment.creditCardViewController.instantiate()
// vc.viewModel?.sourceDelegate = self
// self.navigationController?.pushViewController(vc)
}

deinit {
if let observer = observer {
NotificationCenter.default.removeObserver(observer)
Expand Down Expand Up @@ -143,30 +139,31 @@ extension CheckOutViewController: AcceptSDKDelegate {
func paymentAttemptFailed(_ error: AcceptSDKError, detailedDescription: String) {
debugPrint("paymentAttemptFailed")
self.showToast("transaction_failed".localized())
self.viewModel?.handleOnlinePayment(merchantRefNumber: OrderConstants.shared.orderID, referenceNumber: OrderConstants.shared.transactionID, status: false)
}

func transactionRejected(_ payData: PayResponse) {
debugPrint("transactionRejected")
self.showToast("transaction_failed".localized())
self.viewModel?.handleOnlinePayment(merchantRefNumber: OrderConstants.shared.orderID, referenceNumber: OrderConstants.shared.transactionID, status: false)
}

func transactionAccepted(_ payData: PayResponse) {
debugPrint("transactionAccepted")
OrderConstants.shared.orderID = "\(payData.order)"
OrderConstants.shared.transactionID = "\(payData.id)"
self.viewModel?.makeOrder()
self.viewModel?.handleOnlinePayment(merchantRefNumber: OrderConstants.shared.orderID, referenceNumber: OrderConstants.shared.transactionID, status: true)
}

func transactionAccepted(_ payData: PayResponse, savedCardData: SaveCardResponse) {
debugPrint("transactionAccepted")
OrderConstants.shared.orderID = "\(payData.order)"
OrderConstants.shared.transactionID = "\(payData.id)"
self.viewModel?.makeOrder()
self.viewModel?.handleOnlinePayment(merchantRefNumber: OrderConstants.shared.orderID, referenceNumber: OrderConstants.shared.transactionID, status: true)
}

func userDidCancel3dSecurePayment(_ pendingPayData: PayResponse) {
debugPrint("userDidCancel3dSecurePayment")
self.showToast("transaction_failed".localized())
self.viewModel?.handleOnlinePayment(merchantRefNumber: OrderConstants.shared.orderID, referenceNumber: OrderConstants.shared.transactionID, status: false)
}

}
Expand All @@ -180,12 +177,14 @@ extension CheckOutViewController {
switch result {
case .success(let res):
guard let token = res.token else {
self.showToast("please_try_again_later".localized())
SVProgressHUD.show(withStatus: "payment_failed_please_try_again_later".localized())
self.viewModel?.handleOnlinePayment(merchantRefNumber: "\(OrderConstants.shared.orderID)", referenceNumber: "\(OrderConstants.shared.orderID)", status: false)
return
}
UserDefaultsApp.shared.auth_token = token
self.orderRegistration()
case .failure(let error):
self.viewModel?.handleOnlinePayment(merchantRefNumber: "\(OrderConstants.shared.orderID)", referenceNumber: "\(OrderConstants.shared.orderID)", status: false)
debugPrint(error.localizedDescription)
self.showToast("please_try_again_later".localized())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,8 @@ class CheckoutViewModel: ICheckoutViewModel{
if response?.error?.APIError != nil {
if response?.error?.ErrorCode == 653 {
self.delegate?.onError("coupon_code_already_used_before".localized())
} else if response?.error?.ErrorCode == 674 {
self.delegate?.onError("some_cart_items_changed".localized())
} else {
self.delegate?.onError(response?.error?.APIError?.description ?? "")
}
Expand All @@ -196,20 +198,15 @@ class CheckoutViewModel: ICheckoutViewModel{
if let _customerHistoryId = _data["CustomerHistoryID"] as? Int {
self.customerHistoryId = _customerHistoryId
}
guard cart.orderPaymentTypeId != PaymentType.cashOnDelivery.orderPaymentId else {
self.deleteCart()
return
if let _orderID = _data["OrderId"] as? Int {
self.orderId = _orderID
OrderConstants.shared.orderID = "\(_orderID)"
}

guard cart.orderPaymentTypeId != PaymentType.creditCard.orderPaymentId else {
guard cart.orderPaymentTypeId != PaymentType.cashOnDelivery.orderPaymentId else {
self.deleteCart()
return
}
// if let orderId = _data["OrderId"] as? Int {
// self.handleOnlinePayment(String(orderId))
// self.orderId = orderId
// self.delegate?.confirmPaymentWithCreditCard()
// }
self.delegate?.confirmPaymentWithCreditCard()
}

}
Expand All @@ -221,7 +218,7 @@ class CheckoutViewModel: ICheckoutViewModel{
// self.delegate?.onError("Online Payment not available right now".localized())
// return
guard let _ = paymentData?.cardToken else {
self.confirmOnlinePaymentForOrder(transactionID: referenceNumber, merchanOrderId: merchantRefNumber, status: status)
self.confirmOnlinePaymentForOrder(transactionID: referenceNumber, orderId: OrderConstants.shared.orderID, merchanOrderId: merchantRefNumber, status: status)
return
}
// self.payWithToken(orderId)
Expand Down Expand Up @@ -280,11 +277,11 @@ class CheckoutViewModel: ICheckoutViewModel{
// }
// }

func confirmOnlinePaymentForOrder(transactionID: String?, merchanOrderId: String?, status: Bool) {
self.showHud("don't_close_app_during_purchasing_message".localized())
func confirmOnlinePaymentForOrder(transactionID: String?, orderId: String, merchanOrderId: String?, status: Bool) {
// self.showHud("don't_close_app_during_purchasing_message".localized())
doInBackground {
let payment = ConfirmPaymentDTODAL(transactionId: transactionID ?? "", merchanOrderId: merchanOrderId ?? "", orderId: self.orderId?.string ?? "", status: status)
self.orderService?.confirmOnLinePaymentForOrder(payment, completion: { (response) in
let payment = ConfirmPaymentDTODAL(transactionId: transactionID ?? "", merchanOrderId: merchanOrderId ?? "", orderId: orderId, status: status)
self.orderService?.confirmOnLinePaymentForOrderKashier(payment, completion: { (response) in
doOnMain {
self.hideHUD()
guard let data = response?.data else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ extension CheckOutViewController : ICheckoutViewController{
}

func confirmPaymentWithCreditCard() {
self.openCreditCardForm()
// self.FawryPayment()
}

Expand Down

0 comments on commit 2cd11e2

Please sign in to comment.