diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/FetchData.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/FetchData.swift index a3f3558..995d6b5 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/FetchData.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/FetchData.swift @@ -151,5 +151,24 @@ class FetchData { } } - + static func cancelPayment(accountAlias: String, confirmationNum: String, paymentId: Int, completion: @escaping (String, Error?) -> Void){ + + var paymentHeader = Defaults.headerForCancelPmt + paymentHeader["account_alias"] = accountAlias + paymentHeader["payment_confirmation_number"] = confirmationNum + paymentHeader["payment_id"] = paymentId + + Alamofire.request(Defaults.CANCEL_PAYMENT_URL, method: .post, parameters: paymentHeader, encoding: JSONEncoding.default, headers: Defaults.authHeader).responseJSON { payload in + switch payload.result { + case .success(let value): + let dict = JSON(value).dictionaryValue + guard dict["status"]?.dictionaryValue["response_code"]?.string == "0" else { return } + if let paymentCancelNum = dict["cancellation_confirmation_number"]?.stringValue { + completion(paymentCancelNum, nil) + } + case .failure(let error): + NSLog("Error: \(error.localizedDescription)") + } + } + } }