Example #1
0
        public async Task <TransactionDto> ProcessSaleAsync(TransactionDto transactionDto)
        {
            var paymentConfiguration = (await DbContext.MerchantPaymentConfigurations
                                        .Where(x => x.Acquirer == Acquirer.Cielo && x.Merchant.Id == transactionDto.MerchantId).ToListAsync())
                                       .Single();

            var request    = CieloRequestBuilder.BuildRequestFromTransactionDto(transactionDto);
            var credential = new CieloMerchantCredential(paymentConfiguration.AcquirerMerchantId,
                                                         paymentConfiguration.AcquirerMerchantKey);

            var cieloResponse = await CieloApiClient.PostSaleTransactionAsync(request, credential);

            FillTransactionDtoWithResponseData(transactionDto, cieloResponse);

            return(transactionDto);
        }
Example #2
0
        public async Task <CieloResponse> PostSaleTransactionAsync(CieloRequest request, CieloMerchantCredential credential)
        {
            var cieloSaleUrl = Configuration.GetSection("Endpoints")["CieloApiUrl"];

            var httpContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("MerchantId", credential.MerchantId.ToString());
                client.DefaultRequestHeaders.Add("MerchantKey", credential.MerchantKey.ToString());

                var httpResponseMessage = await client.PostAsync(cieloSaleUrl + "1/sales/", httpContent);

                var content = await httpResponseMessage.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <CieloResponse>(content));
            }
        }
Example #3
0
        public async Task <CieloResponse> PostSaleTransactionAsync(CieloRequest request, CieloMerchantCredential credential)
        {
            return(await Task.Run(() =>
            {
                var response = new CieloResponse
                {
                    ProofOfSale = "123",
                    Tid = "123456",
                    AuthorizationCode = "123456",
                    PaymentId = Guid.NewGuid()
                };

                if (request.Payment.CreditCard.Holder.Equals("Cielo Error"))
                {
                    response.Status = CieloStatus.Aborted;
                    response.ReturnCode = "70";
                    response.ReturnMessage = "Problemas com o Cartão de Crédito";
                    return response;
                }

                response.Status = CieloStatus.PaymentConfirmed;
                response.ReturnCode = "4";
                response.ReturnMessage = "Operação realizada com sucesso";
                return response;
            }));
        }