Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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));
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Omits api calls for mock object.
 /// </summary>
 public IActionResult MakeApiCalls(BankRequestPayload content)
 {
     throw new NotImplementedException();
 }