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); }
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 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); } }
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); } }
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 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); } }
public void DynamicGetMissingFieldIsNull() { dynamic resp = new BluePayMessage(new Dictionary <string, object>()); Assert.IsNull(resp.Field); }