Пример #1
0
        public void ParseDynamic()
        {
            dynamic resp = BluePayMessage.Parse(new StringReader("TRANS_ID=1234&STATUS=E"));

            Assert.AreEqual("1234", resp.TRANS_ID);
            Assert.AreEqual("E", resp.STATUS);
        }
Пример #2
0
        public static void Main()
        {
            var accountID = "Merchant's Account ID Here";
            var secretKey = "Merchant's Secret Key Here";
            var mode      = Mode.TEST;
            var token     = GetAuthToken(accountID, secretKey, mode);

            var payment = BluePayMessage.Build(accountID, mode)
                          //Override duplicate just for tests
                          .WithFields(builder => builder.DuplicateOverride(true))
                          // Sale Amount: $3.00
                          .Sale(amount: 3.00m, transactionId: token);

            var client = new BluePay20PostClient();

            // Makes the API Request with BluePay
            var result = client.Process(payment.ToMessage(secretKey));

            if (!result.IsError && result.IsApproved)
            {
                // Reads the responses from BluePAy
                Console.WriteLine("Transaction Status: " + result.Status);
                Console.WriteLine("Transaction ID: " + result.TransId);
                Console.WriteLine("Transaction Message: " + result.Message);
                Console.WriteLine("AVS Response: " + result.Avs);
                Console.WriteLine("CVV2 Response: " + result.Cvv2);
                Console.WriteLine("Masked Payment Account: " + result.PaymentAccountMask);
                Console.WriteLine("Card Type: " + result.CardType);
                Console.WriteLine("Authorization Code: " + result.AuthCode);
            }
            else
            {
                Console.WriteLine("Error: " + result.Message);
            }
        }
Пример #3
0
        public void DynamicGetWorks()
        {
            dynamic resp = new BluePayMessage(new Dictionary <string, object>
            {
                { "Field", "Value" }
            });

            Assert.AreEqual("Value", resp.Field);
        }
        public static void Main()
        {
            var accountID = "Merchant's Account ID Here";
            var secretKey = "Merchant's Secret Key Here";
            var mode      = Mode.TEST;

            var payment = BluePayMessage.Build(accountID, mode)
                          //Override duplicate just for tests
                          .WithFields(builder => builder.DuplicateOverride(true))
                          .ForCustomer(
                name1: "Bob",
                name2: "Tester",
                addr1: "1234 Test St.",
                addr2: "Apt #500",
                city: "Testville",
                state: "IL",
                zip: "54321",
                country: "USA",
                phone: "123-123-12345",
                email: "*****@*****.**"
                )
                          .FromCreditCard(
                ccNumber: "4111111111111111",
                expiration: DateTime.Today.AddYears(1),
                cvv2: "123"
                )
                          // Sale Amount: $3.00
                          .Sale(amount: 3.00m);

            var client = new BluePay20PostClient();

            // Makes the API Request with BluePay
            var result = client.Process(payment.ToMessage(secretKey));

            if (!result.IsError && result.IsApproved)
            {
                result = client.Process(BluePayMessage.Build(accountID, mode)
                                        .Refund(
                                            transactionId: result.TransId, // id of previous transaction to refund
                                            amount: 1.75m                  //partial refund of $1.75
                                            )
                                        .ToMessage(secretKey));

                Console.WriteLine("Transaction Status: " + result.Status);
                Console.WriteLine("Transaction ID: " + result.TransId);
                Console.WriteLine("Transaction Message: " + result.Message);
                Console.WriteLine("AVS Response: " + result.Avs);
                Console.WriteLine("CVV2 Response: " + result.Cvv2);
                Console.WriteLine("Masked Payment Account: " + result.PaymentAccountMask);
                Console.WriteLine("Card Type: " + result.CardType);
                Console.WriteLine("Authorization Code: " + result.AuthCode);
            }
            else
            {
                Console.WriteLine("Error: " + result.Message);
            }
        }
        public BluePayPost20ResponseV3 Process(BluePayMessage msg)
        {
            try
            {
                var req = _webRequestProvider(_endpoint);
                using (var writer = new StreamWriter(req.GetRequestStream()))
                {
                    var isFirst = true;
                    foreach (var kvp in msg.GetFields())
                    {
                        if (!isFirst)
                        {
                            writer.Write("&");
                        }
                        else
                        {
                            isFirst = false;
                        }

                        writer.Write(HttpUtility.UrlEncode(kvp.Key));
                        writer.Write('=');
                        writer.Write(HttpUtility.UrlEncode(kvp.Value?.ToString()));
                    }
                }
                var response = req.GetResponse();
                using (var reader = new StreamReader(response.GetResponseStream()))
                {
                    return(_parser.Parse(reader));
                }
            }
            catch (WebException e)
            {
                using (var response = e.Response)
                {
                    if (response == null)
                    {
                        throw;
                    }

                    using (var stream = response.GetResponseStream())
                    {
                        if (stream == null)
                        {
                            throw new BluePayException(e.Message, e);
                        }
                        ;

                        using (var reader = new StreamReader(stream))
                        {
                            return(_parser.Parse(reader));
                        }
                    }
                }
            }
        }
        public async Task <BluePayPost20ResponseV3> ProcessAsync(BluePayMessage msg)
        {
            try
            {
                var req = _webRequestProvider(_endpoint);
                using (var writer = new StreamWriter(req.GetRequestStream()))
                {
                    var delimeter = "";
                    foreach (var kvp in msg.GetFields())
                    {
                        var key   = HttpUtility.UrlEncode(kvp.Key);
                        var value = HttpUtility.UrlEncode(kvp.Value?.ToString());

                        await writer.WriteAsync($"{delimeter}{key}={value}");

                        delimeter = "&";
                    }
                }
                var response = await req.GetResponseAsync();

                using (var reader = new StreamReader(response.GetResponseStream()))
                {
                    return(await _parser.ParseAsync(reader));
                }
            }
            catch (WebException e)
            {
                using (var response = e.Response)
                {
                    if (response == null)
                    {
                        throw;
                    }

                    using (var stream = response.GetResponseStream())
                    {
                        if (stream == null)
                        {
                            throw new BluePayException(e.Message, e);
                        }
                        ;

                        using (var reader = new StreamReader(stream))
                        {
                            return(await _parser.ParseAsync(reader));
                        }
                    }
                }
            }
        }
        public static void Main()
        {
            var accountID = "Merchant's Account ID Here";
            var secretKey = "Merchant's Secret Key Here";
            var mode      = Mode.TEST;

            var payment = BluePayMessage.Build(accountID, mode)
                          //Override duplicate just for tests
                          .WithFields(builder => builder.DuplicateOverride(true))
                          .ForCustomer(
                name1: "Bob",
                name2: "Tester",
                addr1: "1234 Test St.",
                addr2: "Apt #500",
                city: "Testville",
                state: "IL",
                zip: "54321",
                country: "USA",
                phone: "123-123-12345",
                email: "*****@*****.**"
                )
                          .FromAch(
                routingNumber: "123123123",
                accountNumber: "123456789",
                accountType: AccountType.Checking,
                docType: DocType.WEB
                )
                          // Sale Amount: $3.00
                          .Sale(amount: 3.00m);

            var client = new BluePay20PostClient();

            // Makes the API Request with BluePay
            var result = client.Process(payment.ToMessage(secretKey));

            if (!result.IsError && result.IsApproved)
            {
                // Reads the responses from BluePAy
                Console.WriteLine("Transaction Status: " + result.Status);
                Console.WriteLine("Transaction ID: " + result.TransId);
                Console.WriteLine("Transaction Message: " + result.Message);
                Console.WriteLine("Masked Payment Account: " + result.PaymentAccountMask);
                Console.WriteLine("Customer Bank Name: " + result.BankName);
            }
            else
            {
                Console.WriteLine("Error: " + result.Message);
            }
        }
Пример #8
0
        public static void Main()
        {
            var accountID = "Merchant's Account ID Here";
            var secretKey = "Merchant's Secret Key Here";
            var mode      = Mode.TEST;

            var payment = BluePayMessage.Build(accountID, mode)
                          //Override duplicate just for tests
                          .WithFields(builder => builder.DuplicateOverride(true))
                          .ForCustomer(
                name1: "Bob",
                name2: "Tester",
                addr1: "1234 Test St.",
                addr2: "Apt #500",
                city: "Testville",
                state: "IL",
                zip: "54321",
                country: "USA",
                phone: "123-123-12345",
                email: "*****@*****.**"
                )
                          // Set payment information for a swiped credit card transaction
                          .FromSwipe("%B4111111111111111^TEST/BLUEPAY^1911101100001100000000667000000?;4111111111111111=191110110000667?")

                          // Sale Amount: $3.00
                          .Sale(amount: 3.00m);

            var client = new BluePay20PostClient();

            // Makes the API Request with BluePay
            var result = client.Process(payment.ToMessage(secretKey));

            if (!result.IsError && result.IsApproved)
            {
                // Reads the responses from BluePAy
                Console.WriteLine("Transaction Status: " + result.Status);
                Console.WriteLine("Transaction ID: " + result.TransId);
                Console.WriteLine("Transaction Message: " + result.Message);
                Console.WriteLine("AVS Response: " + result.Avs);
                Console.WriteLine("CVV2 Response: " + result.Cvv2);
                Console.WriteLine("Masked Payment Account: " + result.PaymentAccountMask);
                Console.WriteLine("Card Type: " + result.CardType);
                Console.WriteLine("Authorization Code: " + result.AuthCode);
            }
            else
            {
                Console.WriteLine("Error: " + result.Message);
            }
        }
Пример #9
0
        private static string GetAuthToken(string accountID, string secretKey, Mode mode)
        {
            var payment = BluePayMessage.Build(accountID, mode)
                          //Override duplicate just for tests
                          .WithFields(builder => builder.DuplicateOverride(true))
                          .ForCustomer(
                name1: "Bob",
                name2: "Tester",
                addr1: "1234 Test St.",
                addr2: "Apt #500",
                city: "Testville",
                state: "IL",
                zip: "54321",
                country: "USA",
                phone: "123-123-12345",
                email: "*****@*****.**"
                )
                          .FromCreditCard(
                ccNumber: "4111111111111111",
                expiration: DateTime.Today.AddYears(1),
                cvv2: "123"
                )
                          // Sale Amount: $3.00
                          .Auth(amount: 3.00m);

            var client = new BluePay20PostClient();

            // Makes the API Request with BluePay
            var result = client.Process(payment.ToMessage(secretKey));

            if (!result.IsError && result.IsApproved)
            {
                return(result.TransId);
            }
            else
            {
                Console.WriteLine("Error: " + result.Message);
                return(result.TransId);
            }
        }
Пример #10
0
        public static void Main()
        {
            var accountID = "Merchant's Account ID Here";
            var secretKey = "Merchant's Secret Key Here";
            var mode      = Mode.TEST;

            var payment = BluePayMessage.Build(accountID, mode)
                          //Override duplicate just for tests
                          .WithFields(builder => builder.DuplicateOverride(true))
                          .ForCustomer(
                name1: "Bob",
                name2: "Tester",
                addr1: "1234 Test St.",
                addr2: "Apt #500",
                city: "Testville",
                state: "IL",
                zip: "54321",
                country: "USA",
                phone: "123-123-12345",
                email: "*****@*****.**"
                )
                          .FromCreditCard(
                ccNumber: "4111111111111111",
                expiration: DateTime.Today.AddYears(1),
                cvv2: "123"
                )
                          // Optional fields users can set
                          .WithFields(builder => builder
                                      .CustomId("12345")
                                      .CustomId2("09866")
                                      .InvoiceId("500000")
                                      .OrderId("10023145")
                                      .AmountTip(6.00m)
                                      .AmountTax(3.50m)
                                      .AmountFood(3.11m)
                                      .AmountMisc(5.00m)
                                      .Memo("Enter any comments about the transaction here.")
                                      )

                          // Sale Amount: $15.00
                          .Sale(amount: 15.00m);

            var client = new BluePay20PostClient();

            // Makes the API Request with BluePay
            var result = client.Process(payment.ToMessage(secretKey));

            if (!result.IsError && result.IsApproved)
            {
                // Reads the responses from BluePAy
                Console.WriteLine("Transaction Status: " + result.Status);
                Console.WriteLine("Transaction ID: " + result.TransId);
                Console.WriteLine("Transaction Message: " + result.Message);
                Console.WriteLine("AVS Response: " + result.Avs);
                Console.WriteLine("CVV2 Response: " + result.Cvv2);
                Console.WriteLine("Masked Payment Account: " + result.PaymentAccountMask);
                Console.WriteLine("Card Type: " + result.CardType);
                Console.WriteLine("Authorization Code: " + result.AuthCode);
            }
            else
            {
                Console.WriteLine("Error: " + result.Message);
            }
        }
Пример #11
0
        public void DynamicGetMissingFieldIsNull()
        {
            dynamic resp = new BluePayMessage(new Dictionary <string, object>());

            Assert.IsNull(resp.Field);
        }