private void ExecutePaymentResponse()
    {
        ExecutePayment executePayment = this.gameObject.GetComponent <ExecutePayment>();

        if (executePayment != null && executePayment.API_Success != null && executePayment.API_Success.state == "approved")
        {
            Finish();
        }
        if (executePayment != null && executePayment.API_Success != null && executePayment.API_Success.state == "failed")
        {
            Fail();
        }
    }
    private void ExecutePayment()
    {
        ExecutePayment previousCall = GetComponent <ExecutePayment>();

        if (previousCall != null)
        {
            Destroy(previousCall);
        }
        ExecutePayment executePayment = gameObject.AddComponent <ExecutePayment>();

        executePayment.accessToken = accessToken;
        executePayment.paymentID   = payID;
        executePayment.payerID     = GetComponent <GetPayment>().API_Success.payer.payer_info.payer_id;
    }
        public void Setup()
        {
            _cardsService     = new Mock <ICardsService>();
            _bankAuthProvider = new Mock <IBankAuthProvider>();
            _mediator         = new Mock <IMediator>();
            _logger           = new Mock <LoggerMock <ExecutePaymentHandler> >();

            _command = new ExecutePayment
            {
                Amount      = 100,
                CardDetails = new CardDetails(),
                MerchantId  = Guid.NewGuid()
            };

            _handler = new ExecutePaymentHandler(
                _cardsService.Object,
                _bankAuthProvider.Object,
                _mediator.Object,
                _logger.Object);
        }
        public async Task <ActionResult> ExecutePayment(ExecutePayment command)
        {
            var transactionId = await _mediator.Send(command);

            return(RedirectToRoute(nameof(GetTransactionById), new { id = transactionId }));
        }