public static void Run()
        {
            Console.WriteLine("VELOCITY");
            Console.WriteLine("=====================================");

            /* Criação do Token de Acesso OAUTH via Braspag Auth */
            var braspagAuthClient = new BraspagAuthClient(new BraspagAuthClientOptions
            {
                Environment = Environment.Sandbox
            });

            var authRequest = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "5d85902e-592a-44a9-80bb-bdda74d51bce",
                ClientSecret = "mddRzd6FqXujNLygC/KxOfhOiVhlUr2kjKPsOoYHwhQ=",
                Scope        = "VelocityApp"
            };

            var authResponse = braspagAuthClient.CreateAccessTokenAsync(authRequest).Result;

            /* Criação do Cliente Velocity */
            var velocityClient = new VelocityClient(new VelocityClientOptions
            {
                Environment = Environment.Sandbox,
                Credentials = new MerchantCredentials
                {
                    MerchantId  = "94E5EA52-79B0-7DBA-1867-BE7B081EDD97",
                    AccessToken = authResponse.Token
                }
            });

            /* Analisando uma transação com Velocity */
            var analysisResponse = PerformAnalysisAsync(velocityClient).Result;

            Console.WriteLine("Transaction analyzed");
            Console.WriteLine($"Score: {analysisResponse.AnalysisResult.Score}");
            Console.WriteLine($"Status: {analysisResponse.AnalysisResult.Status}");
            Console.WriteLine($"Accept By WhiteList: {analysisResponse.AnalysisResult.AcceptByWhiteList}");
            Console.WriteLine($"Reject By BlackList: {analysisResponse.AnalysisResult.RejectByBlackList}");
            Console.WriteLine();
        }
Beispiel #2
0
        public async Task PerformAnalysisAsync_ForValidCreditCard_ReturnsAuthorized(VelocityClient sut, BraspagAuthClient authClient)
        {
            var authRequest = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "5d85902e-592a-44a9-80bb-bdda74d51bce",
                ClientSecret = "mddRzd6FqXujNLygC/KxOfhOiVhlUr2kjKPsOoYHwhQ=",
                Scope        = "VelocityApp"
            };

            var authResponse = await authClient.CreateAccessTokenAsync(authRequest);

            Assert.Equal(HttpStatusCode.OK, authResponse.HttpStatus);

            var request = new AnalysisRequest
            {
                Transaction = new TransactionData
                {
                    OrderId = DateTime.Now.Ticks.ToString(),
                    Date    = "2018-09-15 13:30:00.860",
                    Amount  = 1000
                },
                Card = new CardData
                {
                    Holder     = "BJORN IRONSIDE",
                    Brand      = "visa",
                    Number     = "1000100010001000",
                    Expiration = "10/2025"
                },
                Customer = new CustomerData
                {
                    Name      = "Bjorn Ironside",
                    Identity  = "762.502.520-96",
                    IpAddress = "127.0.0.1",
                    Email     = "*****@*****.**"
                }
            };

            var response = await sut.PerformAnalysisAsync(request, new MerchantCredentials { AccessToken = authResponse.Token, MerchantId = "94E5EA52-79B0-7DBA-1867-BE7B081EDD97" });

            Assert.Equal(HttpStatusCode.Created, response.HttpStatus);
        }
        public async Task PerformAnalysisAsync_ForValidCreditCard_ReturnsAuthorized(VelocityClient sut, BraspagAuthClient authClient)
        {
            var authRequest = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "5d85902e-592a-44a9-80bb-bdda74d51bce",
                ClientSecret = "mddRzd6FqXujNLygC/KxOfhOiVhlUr2kjKPsOoYHwhQ=",
                Scope        = "VelocityApp"
            };

            var authResponse = await authClient.CreateAccessTokenAsync(authRequest);

            Assert.Equal(HttpStatusCode.OK, authResponse.HttpStatus);

            var request = new AnalysisRequest
            {
                Transaction = new TransactionData
                {
                    OrderId = DateTime.Now.Ticks.ToString(),
                    Date    = DateTime.UtcNow.ToString("O"),
                    Amount  = 1000
                },
                Card = new CardData
                {
                    Holder     = "BJORN IRONSIDE",
                    Brand      = "visa",
                    Number     = "1000100010001000",
                    Expiration = "10/2025"
                },
                Customer = new CustomerData
                {
                    Name      = "Bjorn Ironside",
                    Identity  = "76250252096",
                    IpAddress = "127.0.0.1",
                    Email     = "*****@*****.**",
                    BirthDate = "1982-06-30",
                    Phones    = new List <PhoneData>
                    {
                        new PhoneData
                        {
                            Type   = "Cellphone",
                            Number = "999999999",
                            Ddi    = "55",
                            Ddd    = "11"
                        }
                    },
                    Billing = new AddressData
                    {
                        Street       = "Alameda Xingu",
                        Number       = "512",
                        Neighborhood = "Alphaville",
                        City         = "Barueri",
                        State        = "SP",
                        Country      = "BR",
                        ZipCode      = "06455-030"
                    }
                }
            };

            var response = await sut.PerformAnalysisAsync(request, new MerchantCredentials { AccessToken = authResponse.Token, MerchantId = "94E5EA52-79B0-7DBA-1867-BE7B081EDD97" });

            Assert.Equal(HttpStatusCode.Created, response.HttpStatus);
            Assert.NotNull(response.AnalysisResult);
            Assert.NotNull(response.Transaction);
            Assert.NotNull(response.RequestId);
            Assert.Null(response.ErrorDataCollection);
        }
        public async Task CreateAccessTokenAsync_WhenClientSecretIsInvalid_ReturnsInvalidClientError(BraspagAuthClient sut)
        {
            var request = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "b7554867-c69a-4fd2-b059-40c08f6f924a",
                ClientSecret = "43VtT15I5l7BocriFWPAlhTjd55VupXq5jVVbu99999="
            };

            var response = await sut.CreateAccessTokenAsync(request);

            Assert.Equal(HttpStatusCode.BadRequest, response.HttpStatus);
            Assert.Equal("invalid_client", response.Error);
            Assert.NotNull(response.Error);
            Assert.NotNull(response.ErrorDescription);
        }
        public async Task CreateAccessTokenAsync_ForValidCredentials_ReturnsAccessToken(BraspagAuthClient sut)
        {
            var request = new AccessTokenRequest
            {
                GrantType    = OAuthGrantType.ClientCredentials,
                ClientId     = "b7554867-c69a-4fd2-b059-40c08f6f924a",
                ClientSecret = "9tV4mICf6YmKiRkfPce8+jHc4M2hLGgBdMCxnlj3LDY="
            };

            var response = await sut.CreateAccessTokenAsync(request);

            Assert.Equal(HttpStatusCode.OK, response.HttpStatus);
            Assert.NotNull(response.Token);
        }