public async Task ProcessCreditCardSale_EmptyRequest()
        {
            var client  = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest();

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("6042");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Request Format");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("XML request is not well-formed or request is incomplete.");
        }
        public async Task ProcessCreditCardSale_EmptyRequest()
        {
            var client = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest();

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("6042");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Request Format");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("XML request is not well-formed or request is incomplete.");
        }
예제 #3
0
        public async Task <CreditCardSaleResponse> ProcessCreditCardSale(CreditCardSaleRequest request)
        {
            var xml = SerializeForElavon(request);

            var result = await _baseUrl
                         .AppendPathSegment("processxml.do")
                         .PostUrlEncodedAsync(new
            {
                xmldata = xml
            })
                         .ReceiveStream();

            return(DeserializeFromElavon <CreditCardSaleResponse>(result));
        }
        public async Task ProcessCreditCardSale_InvalidCredentials()
        {
            var client  = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest()
            {
                MerchantId = "Test",
                UserId     = "Test",
                Pin        = "Test"
            };

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("4025");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Credentials");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("The credentials supplied in the authorization request are invalid.");
        }
        public async Task ProcessCreditCardSale_InvalidCredentials()
        {
            var client = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest()
            {
                MerchantId = "Test",
                UserId = "Test",
                Pin = "Test"
            };

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("4025");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Credentials");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("The credentials supplied in the authorization request are invalid.");
        }
예제 #6
0
        public TransactionResponse PayWithCreditCard(int peopleId, decimal amt, string cardnumber, string expires,
                                                     string description, int tranid, string cardcode, string email, string first, string last, string addr,
                                                     string addr2, string city, string state, string country, string zip, string phone)
        {
            var creditCardSaleRequest = new CreditCardSaleRequest(
                _userName,
                _password,
                new CreditCard
            {
                CardNumber     = cardnumber,
                Expiration     = expires,
                CardCode       = cardcode,
                BillingAddress = new BillingAddress
                {
                    FirstName = first,
                    LastName  = last,
                    Address1  = addr,
                    Address2  = addr2,
                    City      = city,
                    State     = state,
                    Country   = country,
                    Zip       = zip,
                    Email     = email,
                    Phone     = phone
                }
            },
                amt,
                tranid.ToString(CultureInfo.InvariantCulture),
                description,
                peopleId.ToString(CultureInfo.InvariantCulture));

            var response = creditCardSaleRequest.Execute();

            return(new TransactionResponse
            {
                Approved = response.ResponseStatus == ResponseStatus.Approved,
                AuthCode = response.AuthCode,
                Message = response.ResponseText,
                TransactionId = response.TransactionId
            });
        }
예제 #7
0
        public TransactionResponse PayWithCreditCard(int peopleId, decimal amt, string cardnumber, string expires, string description, int tranid, string cardcode, string email, string first, string last, string addr, string addr2, string city, string state, string country, string zip, string phone)
        {
            var creditCardSaleRequest = new CreditCardSaleRequest(
                _id,
                _key,
                new CreditCard
            {
                NameOnCard     = $"{first} {last}",
                CardNumber     = cardnumber,
                Expiration     = expires,
                CardCode       = cardcode,
                BillingAddress = new BillingAddress
                {
                    Address1 = addr,
                    City     = city,
                    State    = state,
                    Country  = country,
                    Zip      = zip,
                    Email    = email,
                    Phone    = phone
                }
            },
                amt,
                tranid.ToString(CultureInfo.InvariantCulture),
                peopleId.ToString(CultureInfo.InvariantCulture));

            var response = creditCardSaleRequest.Execute();

            return(new TransactionResponse
            {
                Approved = response.ApprovalIndicator == ApprovalIndicator.Approved,
                AuthCode = response.Code,
                Message = response.Message,
                TransactionId = response.Reference
            });
        }