Esempio n. 1
0
        public async Task <IActionResult> WithdrawAsync([FromBody] WithdrawTransactionRequest request)
        {
            var createTransactionRequest = new CreateTransactionRequest
            {
                Bundle = request.BundleId
            };

            var createTransactionResponse = await _cashierServiceClient.CreateTransactionAsync(createTransactionRequest);

            try
            {
                var createPaypalPayoutRequest = new CreatePaypalPayoutRequest
                {
                    Email       = request.Email,
                    Transaction = createTransactionResponse.Transaction
                };

                await _paymentServiceClient.CreatePaypalPayoutAsync(createPaypalPayoutRequest);

                return(this.Ok());
            }
            catch (RpcException exception)
            {
                var cancelTransactionRequest = new CancelTransactionRequest
                {
                    TransactionId = createTransactionResponse.Transaction.Id
                };

                await _cashierServiceClient.CancelTransactionAsync(cancelTransactionRequest);

                throw exception.Capture();
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> DepositAsync([FromBody] DepositTransactionRequest request)
        {
            var createTransactionRequest = new CreateTransactionRequest
            {
                Bundle = request.BundleId
            };

            var createTransactionResponse = await _cashierServiceClient.CreateTransactionAsync(createTransactionRequest);

            try
            {
                var createStripePaymentIntentRequest = new CreateStripePaymentIntentRequest
                {
                    PaymentMethodId = request.PaymentMethodId,
                    Transaction     = createTransactionResponse.Transaction
                };

                var createStripePaymentIntentResponse = await _paymentServiceClient.CreateStripePaymentIntentAsync(createStripePaymentIntentRequest);

                return(this.Ok(createStripePaymentIntentResponse.ClientSecret));
            }
            catch (RpcException exception)
            {
                var cancelTransactionRequest = new CancelTransactionRequest
                {
                    TransactionId = createTransactionResponse.Transaction.Id
                };

                await _cashierServiceClient.CancelTransactionAsync(cancelTransactionRequest);

                throw exception.Capture();
            }
        }
        public ActionResult CancelOrder()
        {
            var cancelTransactionRequest = new CancelTransactionRequest((string)Session["tid"], _configuration);
            CancelTransactionResponse response = _cieloService.CancelTransaction(cancelTransactionRequest);
            ViewBag.Status = response.Status.ToString();

            return RedirectToAction("CheckStatus");
        }
        public void CancelTransactionRequest_OnValidRequest_ReturnObject()
        {
            // arrange
            var request = new CancelTransactionRequest();

            // act
            var msg = request.ToMessage();

            // assert
            Assert.NotNull(msg);
            Assert.Equal("cancel_transaction", msg.EventName);
        }
Esempio n. 5
0
        public void ToXml_GivenACancelTransactionRequest_ShouldGenerateAXmlAsExpected()
        {
            var cancelTransactionRequest = new CancelTransactionRequest("10069930690864271001", new FakeConfiguration())
            {
                UniqueKey = Guid.Parse("4c38f150-b67d-4059-88d1-b53b13e54a8e")
            };

            cancelTransactionRequest
            .ToXml(false)
            .RemoveNewLinesAndSpaces()
            .Should()
            .Be(ExpectedXml.RemoveNewLinesAndSpaces());
        }
Esempio n. 6
0
        public CancelTransactionResponse CancelTransaction(CancelTransactionRequest request)
        {
            var responseContent = string.Empty;

            try {
                responseContent = Execute(request);
                CreateExceptionIfError(responseContent);
                return(new CancelTransactionResponse(responseContent));
            }
            catch (Exception ex) {
                throw new ResponseException(responseContent, ex);
            }
        }
Esempio n. 7
0
        public override async Task <CancelTransactionResponse> CancelTransaction(CancelTransactionRequest request, ServerCallContext context)
        {
            var httpContext = context.GetHttpContext();

            var userId = httpContext.GetUserId();

            var account = await _accountService.FindAccountOrNullAsync(userId);

            if (account == null)
            {
                throw context.NotFoundRpcException("User account not found.");
            }

            var result = await _accountService.MarkAccountTransactionAsCanceledAsync(account !, request.TransactionId.ParseEntityId <TransactionId>());

            if (result.IsValid)
            {
                var response = new CancelTransactionResponse();

                return(context.Ok(response));
            }

            throw context.FailedPreconditionRpcException(result);
        }