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 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 void ProcessParsesResult() { var requestMock = new MockWebRequest(); requestMock.SetupResponse("responsetext"); var expected = new BluePayPost20ResponseV3(); var parserMock = new Mock <IBluePayResponseParser <BluePayPost20ResponseV3> >(); parserMock.Setup(p => p.Parse(It.Is((TextReader tr) => tr.ReadToEnd() == "responsetext"))) .Returns(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.Process(new BluePayMessage()); Assert.AreSame(expected, response); }
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); } }
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); } }
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); }
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); } }
public void ProcessWrapsException() { 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.Parse(It.Is((TextReader tr) => tr.ReadToEnd() == "response error"))) .Returns(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.Process(new BluePayMessage()); Assert.AreSame(expected, response); }
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); } }