/// <summary> /// Returns exemplary api response of bank. /// </summary> ProcessPaymentResponse IBankRequest.ProcessPayment(BankRequestPayload content) { var paymentResponse = new ProcessPaymentResponse(); paymentResponse.PaymentId = Guid.NewGuid().ToString(); paymentResponse.Success = true; return(paymentResponse); }
/// <summary> /// This endpoint will process the payment. /// </summary> /// <param name="payload">The payload.</param> /// <returns> /// The <see cref="Task{IActionResult}" />. /// </returns> public static IActionResult ProcessPayment(ProcessPaymentPayload payload, IBankRequest bankRequest) { try { // process payment with bank var merchantId = payload.MerchantIdentifier; var isPayout = payload.IsPayout; var merchant = ConnectionHelper.GetMerchantById(merchantId); var bankRequestPayload = new BankRequestPayload().Map(payload, merchant, isPayout); var bankResponse = bankRequest.ProcessPayment(bankRequestPayload); // save in database PaymentDetails paymentDetails = new PaymentDetails().Map(payload, bankResponse.PaymentId, bankResponse.Success); ConnectionHelper.SavePayment(paymentDetails); // return response return(new OkObjectResult(new ProcessPaymentResponse().Map(paymentDetails))); } catch (Exception ex) { return(new BadRequestObjectResult(ex.Message)); } }
/// <summary> /// Omits api calls for mock object. /// </summary> public IActionResult MakeApiCalls(BankRequestPayload content) { throw new NotImplementedException(); }