public CancelDirectDebitResponse CancelDirectDebit(CancelDirectDebitRequest payload) { var _client = new RestActions(_contentRootPath); string url = _configSettingManager.ArmBaseUrl + "/Payment/CancelDirectDebit"; return(_client.CallRestAction <CancelDirectDebitResponse, CancelDirectDebitRequest>(payload, url)); }
public IActionResult CancelDirectDebit(int id) { var decrypt = new SecureCredentials(); //var _user = HttpContext.Session.Get<AuthenticateResponse>("ArmUser"); var _user = new AuthenticateResponse { MembershipKey = 1006979, //1007435, EmailAddress = "*****@*****.**", //"*****@*****.**", FirstName = "Tolulope", LastName = "Olusakin", FullName = "Olusakin Tolulope S" //"Funmilayo Ruth Adeyemi", //MembershipKey = 1007435, //EmailAddress = "*****@*****.**", //FirstName = "Funmilayo", //LastName = "Adeyemi", //FullName = "Funmilayo Ruth Adeyemi", }; var vendorUserName = decrypt.DecryptCredentials(_configSettingManager.ArmServiceUsername); var mackey = _configSettingManager.ArmMacKey; try { var directDebit = db.DDebit .Where(s => s.CustomerId == _user.MembershipKey.ToString() && s.Id == id) .FirstOrDefault <DDebit>(); var notifyUrl = Url.Action("TransactionStatus", "Buy", new { type = 1 }, Request.Scheme); if (directDebit != null) { var HashData = $@"{_user.MembershipKey}{vendorUserName}{directDebit.CardMask}{mackey}"; var ArmHash = _client.GetHashString(HashData); var cRequest = new CancelDirectDebitRequest { ArmDdRef = directDebit.DirectDebitReference, ArmVendorUsername = vendorUserName, ArmHash = ArmHash, ArmCcMask = directDebit.CardMask, ArmCcType = directDebit.CardType, ArmCustId = directDebit.CustomerId }; var cResponse = _clientService.CancelDirectDebit(cRequest); if (cResponse.ArmDdStatusCode == "0" || cResponse.ArmDdStatusCode == "00") { //delete record from the DB db.DDebit.Remove(directDebit); db.SaveChanges(); return(Json(cResponse)); } else if (cResponse.ArmDdStatusCode == "Z2") { return(Json(cResponse)); } else { return(StatusCode((int)HttpStatusCode.ExpectationFailed, cResponse.ArmDdStatusCode + " There was a problem processing your request.")); } } else { return(NotFound("No direct debit mandate found for the provided information.")); } } catch (Exception ex) { HttpContext.Session.Set("error", ex.Message); TempData["message"] = ViewBag.Message = ex.Message; Utilities.ProcessError(ex, _contentRootPath); _logger.LogError(null, ex, ex.Message); } return(View()); }