public bool ProcessPaymentLessThan21(PaymentDetail paymentDetail, int transactionType = 0) { var referenceNumber = Utility.Utility.GenerateReferenceNumber(); paymentDetail.PaymentReference = referenceNumber; paymentDetail.PaymentLogs = new List <PaymentLog> { new PaymentLog { Amount = paymentDetail.Amount, PaymentDate = DateTime.Now, PaymentState = PaymentState.Pending, PaymentGateway = PaymentGateway.CheapGateway, PaymentReference = referenceNumber } }; detailRepository.Add(paymentDetail); detailRepository.Save(); var gatewayResult = cheapPaymentGateway.ProcessPayment(paymentDetail, transactionType); var result = paymentLogRepository.GetPaymentLogByFilter(c => c.PaymentReference == referenceNumber);//.FirstOrDefault(); if (gatewayResult.Code == ResponseCodes.OK) { result.PaymentState = PaymentState.Processed; paymentLogRepository.Update(result); paymentLogRepository.Save(); return(true); } else { result.PaymentState = PaymentState.Failed; paymentLogRepository.Update(result); paymentLogRepository.Save(); return(false); } }
public void Create(CreatePaymentDetailView view) { var paymentDetail = new PaymentDetail { BSB = view.BSB, AccountName = view.AccountName, AccountNumber = view.AccountNumber, Reference = view.Reference, PaymentAmount = view.PaymentAmount }; if (view.PaymentAmount <= 0) { throw new NextPayException("Invalid Payment Amount!"); } if (string.IsNullOrEmpty(view.BSB)) { throw new NextPayException("Invalid BSB!"); } if (string.IsNullOrEmpty(view.Reference)) { throw new NextPayException("Invalid Reference!"); } if (string.IsNullOrEmpty(view.AccountName)) { throw new NextPayException("Invalid Account Name!"); } if (string.IsNullOrEmpty(view.AccountNumber) || !CheckCreditCard(view.AccountNumber)) { throw new NextPayException("Invalid Account Number!"); } _paymentDetailRepository.Add(paymentDetail); }
public async Task <ActionResult <PaymentDetail> > PostPaymentDetail(PaymentDetail paymentDetail) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); //возврат ошибки в случае неправильного заполнения полей в обьекте customer } await _paymentDetailRepository.Add(paymentDetail); return(CreatedAtAction("GetPaymentDetail", new { id = paymentDetail.PMId }, paymentDetail)); }