Example #1
0
        public void Create(ref AcquirerSale acquirerSale)
        {
            // Arrange post
            CreateSaleContract CreateSaleContract = new CreateSaleContract();

            // Call endpoint
            NameValueCollection headers = new NameValueCollection();

            headers.Add("MerchantKey", acquirerSale.Store.MerchantKey);
            headers.Add("MerchantId", acquirerSale.Store.Id.ToString());
            headers.Add("Content-Type", "application/json");

            HttpResponse <CreateSaleContract> Response = this.HttpUtility.SubmitRequest <CreateSaleContract, CreateSaleContract>(CreateSaleContract,
                                                                                                                                 acquirerSale.Acquirer.ServiceUri, HttpVerbEnum.Post, HttpContentTypeEnum.Json, headers);

            // Arrange return
            if (Response.HttpStatusCode == HttpStatusCode.Created)
            {
                acquirerSale.AcquirerSuccess     = true;
                acquirerSale.AcquirerRawResponse = Response.RawResponse;
                acquirerSale.StatusCode          = Response.HttpStatusCode.ToString();
            }
            else
            {
                acquirerSale.AcquirerSuccess = false;
            }
        }
Example #2
0
        private IAcquirerClientSaleService GetIAcquirerClientSaleService()
        {
            AcquirerSale test = new AcquirerSale();

            test.Authorized = true;
            var AcquirerClientSaleService = new Mock <IAcquirerClientSaleService>();

            AcquirerClientSaleService
            .Setup(c => c.Create(ref test));
            return(AcquirerClientSaleService.Object);
        }
Example #3
0
        public void DoErrorCreditCardSale()
        {
            // Arrange
            AcquirerClientSaleService Service = new AcquirerClientSaleService();
            AcquirerSale    AcquirerSale      = this.GetNewAcquirerSale();
            string          ErrorRawResponse;
            HttpUtilityMock HttpUtilityMock = new HttpUtilityMock();

            // Act
            ErrorRawResponse = "{    \"MerchantOrderId\": \"2014111706\",    \"Customer\": {        \"Name\": \"Comprador crédito simples\"    },    \"Payment\": {        \"ServiceTaxAmount\": 0,        \"Installments\": 1,        \"Interest\": \"ByMerchant\",        \"Capture\": false,        \"Authenticate\": false,        \"CreditCard\": {            \"CardNumber\": \"455187******0183\",            \"Holder\": \"Teste Holder\",            \"ExpirationDate\": \"12/2030\",            \"SaveCard\": false,            \"Brand\": \"Visa\"        },        \"ProofOfSale\": \"674532\",        \"Tid\": \"0305023644309\",        \"AuthorizationCode\": \"123456\",        \"PaymentId\": \"24bc8366-fc31-4d6c-8555-17049a836a07\",        \"Type\": \"CreditCard\",        \"Amount\": 15700,        \"Currency\": \"BRL\",        \"Country\": \"BRA\",        \"ExtraDataCollection\": [],        \"Status\": 1,        \"ReturnCode\": \"4\",        \"ReturnMessage\": \"Operation Successful\",        \"Links\": [            {                \"Method\": \"GET\",                \"Rel\": \"self\",                \"Href\": \"https://apiquerysandbox.cieloecommerce.cielo.com.br/1/sales/{PaymentId}\"        },            {                \"Method\": \"PUT\",                \"Rel\": \"capture\",                \"Href\": \"https://apisandbox.cieloecommerce.cielo.com.br/1/sales/{PaymentId}/capture\"            },            {                \"Method\": \"PUT\",                \"Rel\": \"void\",                \"Href\": \"https://apisandbox.cieloecommerce.cielo.com.br/1/sales/{PaymentId}/void\"            }        ]    }}";
            HttpUtilityMock.MockRawResponse = ErrorRawResponse;
            HttpUtilityMock.MockStatusCode  = System.Net.HttpStatusCode.BadRequest;
            Service.HttpUtility             = HttpUtilityMock;
            Service.Create(ref AcquirerSale);
            // Assert
            Assert.True(AcquirerSale.AcquirerSuccess == false);
        }
        public void DoErrorCreditCardSale()
        {
            // Arrange
            AcquirerClientSaleService Service = new AcquirerClientSaleService();
            AcquirerSale    AcquirerSale      = this.GetNewAcquirerSale();
            string          ErrorRawResponse;
            HttpUtilityMock HttpUtilityMock = new HttpUtilityMock();

            // Act
            ErrorRawResponse = "{  \"ErrorReport\": {    \"Category\": \"RequestError\",    \"ErrorItemCollection\": [      {        \"Description\": \"A bandeira Invalida atualmente não é suportada.\",        \"ErrorCode\": 400,        \"ErrorField\": \"CreditCardBrand\",        \"SeverityCode\": \"Error\"      }    ]  },  \"InternalTime\": 0,  \"MerchantKey\": \"F2A1F485-CFD4-49F5-8862-0EBC438AE923\",  \"RequestKey\": \"fb0f6d14-3564-4ac2-bc88-9d319816b966\",  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",}";
            HttpUtilityMock.MockRawResponse = ErrorRawResponse;
            HttpUtilityMock.MockStatusCode  = System.Net.HttpStatusCode.BadRequest;
            Service.HttpUtility             = HttpUtilityMock;
            Service.Create(ref AcquirerSale);
            // Assert
            Assert.True(AcquirerSale.AcquirerSuccess == false);
        }
        public void DoSuccessCreditCardSale()
        {
            // Arrange
            AcquirerClientSaleService Service = new AcquirerClientSaleService();
            AcquirerSale    AcquirerSale      = this.GetNewAcquirerSale();
            string          SuccessRawResponse;
            HttpUtilityMock HttpUtilityMock = new HttpUtilityMock();

            // Act
            SuccessRawResponse = "{\"ErrorReport\": null,  \"InternalTime\": 137,  \"MerchantKey\": \"F2A1F485-CFD4-49F5-8862-0EBC438AE923\",  \"RequestKey\": \"857a5a07-ff3c-46e3-946e-452e25f149eb\",  \"BoletoTransactionResultCollection\": [],  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",  \"CreditCardTransactionResultCollection\": [    {      \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",      \"AcquirerName\": \"Simulator\",      \"AcquirerReturnCode\": \"0\",      \"AffiliationCode\": \"000000000\",      \"AmountInCents\": 10000,      \"AuthorizationCode\": \"168147\",      \"AuthorizedAmountInCents\": 10000,      \"CapturedAmountInCents\": 10000,      \"CapturedDate\": \"2015-12-04T19:51:11\",      \"CreditCard\": {        \"CreditCardBrand\": \"Visa\",        \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",        \"IsExpiredCreditCard\": false,        \"MaskedCreditCardNumber\": \"411111****1111\"      },      \"CreditCardOperation\": \"AuthAndCapture\",      \"CreditCardTransactionStatus\": \"Captured\",      \"DueDate\": null,      \"ExternalTime\": 0,      \"PaymentMethodName\": \"Simulator\",      \"RefundedAmountInCents\": null,      \"Success\": true,      \"TransactionIdentifier\": \"246844\",      \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",      \"TransactionKeyToAcquirer\": \"20ba05207d0944f8\",      \"TransactionReference\": \"1c65eaf7-df3c-4c7f-af63-f90fb6200996\",      \"UniqueSequentialNumber\": \"636606\",      \"VoidedAmountInCents\": null    }  ],  \"OrderResult\": {    \"CreateDate\": \"2015-12-04T19:51:11\",    \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\",    \"OrderReference\": \"NúmeroDoPedido\"  }}";
            HttpUtilityMock.MockRawResponse = SuccessRawResponse;
            HttpUtilityMock.MockStatusCode  = System.Net.HttpStatusCode.Created;
            Service.HttpUtility             = HttpUtilityMock;
            Service.Create(ref AcquirerSale);
            // Assert
            Assert.True(AcquirerSale.AcquirerSuccess == true);
        }
Example #6
0
        public void DoDeniedAuthorization()
        {
            // Arrange
            AntifraudClientService Service      = new AntifraudClientService();
            AcquirerSale           AcquirerSale = this.GetNewAcquirerSale();
            string          SuccessRawResponse;
            HttpUtilityMock HttpUtilityMock = new HttpUtilityMock();

            // Act
            SuccessRawResponse = "{\"Orders\": [{                \"ID\": \"1\",\"Status\":\"RPM\",\"Score\": \"1\"}],\"TransactionID\":\"BRA\"}";
            HttpUtilityMock.MockRawResponse = SuccessRawResponse;
            HttpUtilityMock.MockStatusCode  = System.Net.HttpStatusCode.OK;
            Service.HttpUtility             = HttpUtilityMock;
            Service.Execute(ref AcquirerSale);
            // Assert
            Assert.True(AcquirerSale.Authorized == false);
        }
        public void Execute(ref AcquirerSale acquirerSale)
        {
            // Arrange post
            ClearRequest ClearRequest = new ClearRequest()
            {
                ApiKey = "",
                Orders = new List <Order>()
                {
                    new Order()
                    {
                        Payments = new List <Payment>()
                        {
                            new Payment()
                            {
                                Amount     = acquirerSale.CreditCardPayments[0].AmountInCents,
                                CardBin    = acquirerSale.CreditCardPayments[0].CreditCard.CreditCardNumber,
                                CardNumber = acquirerSale.CreditCardPayments[0].CreditCard.CreditCardNumber
                            }
                        }
                    }
                }
            };

            // Call endpoint
            NameValueCollection headers = new NameValueCollection();

            headers.Add("MerchantKey", acquirerSale.Store.MerchantKey);
            headers.Add("Content-Type", "application/json");

            HttpResponse <ClearResponse> Response = this.HttpUtility.SubmitRequest <ClearRequest, ClearResponse>(ClearRequest,
                                                                                                                 acquirerSale.Store.Antifraud.ServiceUri, HttpVerbEnum.Get, HttpContentTypeEnum.Json, headers);

            // Arrange return
            acquirerSale.Authorized = false;
            if (Response.HttpStatusCode == HttpStatusCode.OK)
            {
                if (Response.Response.Orders[0].Status == Clear.DTO.Status.APA.ToString())
                {
                    acquirerSale.Authorized = true;
                    acquirerSale.AuthorizationRawResponse = Response.RawResponse;
                    acquirerSale.AuthStatusCode           = Response.HttpStatusCode.ToString();
                }
            }
        }
Example #8
0
        public void CreateSale(Sale sale)
        {
            CreditCard    CreditCard    = CreditCardService.Search(c => c.CreditCardNumber == sale.CreditCardNumber, nameof(CreditCard.CreditCardBrand)).First();
            Store         Store         = StoreService.Search(c => c.Id == sale.StoreId, nameof(Store.Antifraud)).First();
            StoreAcquirer StoreAcquirer = StoreAcquirerService.Search(c => c.IdCreditCardBrand == CreditCard.Id && c.IdStore == Store.Id, nameof(StoreAcquirer.Acquirer)).First();

            // Instancia o client configurado
            if (AcquirerClientSaleService.GetType() == typeof(AcquirerClient.Null.AcquirerClientSaleService))
            {
                AcquirerClientSaleService = AcquirerClientSaleServiceFactory.CreateInstance(StoreAcquirer.Acquirer.Assembly);
            }

            AcquirerSale AcquirerSale = new AcquirerSale()
            {
                Store              = StoreAcquirer.Store,
                Acquirer           = StoreAcquirer.Acquirer,
                CreditCardPayments = new List <CreditCardPayment>()
                {
                    new CreditCardPayment()
                    {
                        AmountInCents = sale.AmmountInCents,
                        CreditCard    = CreditCard
                    }
                }
            };

            // Verificar se acquirer usa autorizacao
            if (StoreAcquirer.Store.AntifraudEnabled)
            {
                // Antifraud
                AntifraudClientService.Execute(ref AcquirerSale);

                if (!AcquirerSale.Authorized)
                {
                    return;
                }
            }

            AcquirerClientSaleService.Create(ref AcquirerSale);

            // Registra resultado da operação
            AcquirerSaleService.Add(AcquirerSale);
        }
 public void Create(ref AcquirerSale acquirerSale)
 {
     throw new NotImplementedException();
 }