//FromBody attributes only binds the data from the body of request public IHttpActionResult ProcessPayment([FromBody] ProcessPaymentRequestDTO merchantRequestDTO) { if (_gateWayService.ifNotExists(merchantRequestDTO.MerchantID)) { return(Json("No Mechant found")); } BankResponse bankResponse = null; //contact bank using (var client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:64388/"); var response = client.PostAsJsonAsync("api/BankAPI/BankAPI", merchantRequestDTO); response.Wait(); var result = response.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <BankResponse>(); readTask.Wait(); bankResponse = readTask.Result; } else { return(Json("Error contacting bank")); } } return(Json(_gateWayService.AddNewRequest(merchantRequestDTO, bankResponse.BankResponseID, bankResponse.BankStatus))); }
public ProcessPaymentResponseDTO AddNewRequest(ProcessPaymentRequestDTO m, Guid bankResponse, Status status) { var transactionID = Guid.NewGuid(); var requestDate = DateTime.Today; _unitOfWork.Requests.Add(new Request() { RequestID = transactionID, CardNumber = m.CardNumber, ExpiryDate = m.ExpiryDate, Amount = m.Amount, Currency = m.Currency, CVV = m.CVV, RequestDate = requestDate, MerchantID = m.MerchantID, BankResponseID = bankResponse, BankStatus = status }); _unitOfWork.SaveAll(); return(new ProcessPaymentResponseDTO() { TransactionID = transactionID, Status = status.ToString(), TransactionDate = requestDate.ToString("dd/MM/yyyy hh:mm:ss") }); }
public IHttpActionResult BankAPI([FromBody] ProcessPaymentRequestDTO merchantRequestDTO) { var bankResponseID = Guid.NewGuid(); var bankStatus = Status.Unsuccessfull; var bank = new BankResponse() { BankResponseID = bankResponseID, BankStatus = bankStatus }; return(Json(bank)); }