Esempio n. 1
0
        public void ProcessParsesResultAsync()
        {
            var requestMock = new MockWebRequest();

            requestMock.SetupResponse("responsetext");

            var expected = new BluePayPost20ResponseV3();

            var parserMock = new Mock <IBluePayResponseParser <BluePayPost20ResponseV3> >();

            parserMock.Setup(p => p.ParseAsync(It.Is((TextReader tr) => tr.ReadToEnd() == "responsetext")))
            .ReturnsAsync(expected);

            var proxy = new BluePay20PostClient(
                endpoint: "https://example.org",
                parser: parserMock.Object,
                webRequestProvider: (url) => {
                Assert.AreEqual("https://example.org", url);
                return(requestMock.Object);
            });

            var response = proxy.ProcessAsync(new BluePayMessage()).Result;

            Assert.AreSame(expected, response);
        }
Esempio n. 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);
            }
        }
        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 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);
            }
        }
Esempio n. 5
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);
            }
        }
Esempio n. 6
0
        public void ProcessSendsUrlEncodedMessage()
        {
            var requestMock = new MockWebRequest();

            requestMock.SetupResponse("");

            var proxy = new BluePay20PostClient(
                endpoint: "https://example.org",
                parser: new Mock <IBluePayResponseParser <BluePayPost20ResponseV3> >().Object,
                webRequestProvider: (url) => { Assert.AreEqual("https://example.org", url);
                                               return(requestMock.Object); }
                );

            proxy.Process(new BluePayMessage(new Dictionary <string, object>
            {
                { "My Field", "My Value!#" }
            }));

            Assert.AreEqual("My+Field=My+Value!%23", requestMock.RequestText);
        }
Esempio n. 7
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);
            }
        }
Esempio n. 8
0
        public void ProcessWrapsExceptionAsync()
        {
            var responseMock = new Mock <WebResponse>();

            responseMock.Setup(r => r.GetResponseStream())
            .Returns(new MemoryStream(Encoding.UTF8.GetBytes("response error")));

            var expected   = new BluePayPost20ResponseV3();
            var parserMock = new Mock <IBluePayResponseParser <BluePayPost20ResponseV3> >();

            parserMock.Setup(p => p.ParseAsync(It.Is((TextReader tr) => tr.ReadToEnd() == "response error")))
            .ReturnsAsync(expected);

            var inner = new WebException("inner", null, WebExceptionStatus.UnknownError, responseMock.Object);

            var proxy = new BluePay20PostClient(
                endpoint: "https://example.org",
                parser: parserMock.Object,
                webRequestProvider: (url) => { throw inner; });

            var response = proxy.ProcessAsync(new BluePayMessage()).Result;

            Assert.AreSame(expected, response);
        }
Esempio n. 9
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);
            }
        }