public void Test_019_MasterCard_Level3_Sale() { var commercialData = new CommercialData(TaxType.NOTUSED) { PoNumber = "9876543210" }; commercialData.AddLineItems( new CommercialLineItem { CommodityCode = "030", Description = "Misc Good", UPC = "012345678901", Quantity = 5.1m, UnitOfMeasure = "lbs", UnitCost = 0.6m, //DiscountAmount = 0.61m, TotalAmount = 0.62m, TaxAmount = 0.63m, ExtendedAmount = 0.64m, CreditDebitIndicator = CreditDebitIndicator.Credit, NetGrossIndicator = NetGrossIndicator.Gross } ); Transaction response = MasterCardManual.Charge(0.52m) .WithCurrency("USD") .WithCommercialData(commercialData) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); }
public void Sale_Level3() { var commercialData = new CommercialData(TaxType.SALESTAX, CommercialIndicator.Level_III) { Description = "Misc Goods", DiscountAmount = 1.01m, FreightAmount = 1.02m, DutyAmount = 1.03m, DestinationPostalCode = "06033", DestinationCountryCode = "840", OriginPostalCode = "01887", PoNumber = "17801", TaxAmount = 0m }; commercialData.AddLineItems( new CommercialLineItem { CommodityCode = "030", Description = "Misc Good", UPC = "012345678901", Quantity = 5.1m, UnitOfMeasure = "lbs", UnitCost = 0.6m, DiscountAmount = 0.61m, TotalAmount = 0.62m, TaxAmount = 0.63m, ExtendedAmount = 0.64m, CreditDebitIndicator = CreditDebitIndicator.Credit, NetGrossIndicator = NetGrossIndicator.Gross }, new CommercialLineItem { CommodityCode = "031", Description = "Misc Good2", UPC = "012345678901", Quantity = 5.1m, UnitOfMeasure = "lbs", UnitCost = 0.6m, DiscountAmount = 0.61m, TotalAmount = 0.62m, TaxAmount = 0.63m, ExtendedAmount = 0.64m, CreditDebitIndicator = CreditDebitIndicator.Credit, NetGrossIndicator = NetGrossIndicator.Gross } ); var response = card.Charge(1.05m) .WithCurrency("USD") .WithAddress(address) .WithInvoiceNumber("1556") .WithCommercialData(commercialData) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); }
public void Test_019_MasterCard_Level3_Sale() { Logger.AppendText("\r\nTest_019_MasterCard_Level3_Sale"); var commercialData = new CommercialData(TaxType.NOTUSED, CommercialIndicator.Level_III) { PoNumber = "9876543210", TaxAmount = 0.01m, DestinationPostalCode = "85212", DestinationCountryCode = "USA", OriginPostalCode = "22193", SummaryCommodityCode = "SCC", CustomerVAT_Number = "123456789", VAT_InvoiceNumber = "UVATREF162", OrderDate = DateTime.Now, FreightAmount = 0.01m, DutyAmount = 0.01m, AdditionalTaxDetails = new AdditionalTaxDetails { TaxType = "VAT", TaxAmount = 0.01m, TaxRate = 0.04m, TaxCategory = TaxCategory.VAT } }; commercialData.AddLineItems( new CommercialLineItem { ProductCode = "PRDCD1", Name = "PRDCD1NAME", UnitCost = 0.01m, Quantity = 1m, UnitOfMeasure = "METER", Description = "PRODUCT 1 NOTES", CommodityCode = "12DIGIT ACCO", AlternateTaxId = "1234567890", CreditDebitIndicator = CreditDebitIndicator.Credit, DiscountDetails = new DiscountDetails { DiscountName = "Indep Sale 1", DiscountAmount = 0.50m, DiscountPercentage = 0.10m, DiscountType = "SALE" } } ); Response = MasterCardManual.Charge(0.53m) .WithCurrency("USD") .WithCommercialData(commercialData) .WithClientTransactionId(ClientTransactionId) .WithAddress(Address) .Execute(); }
public ManagementBuilder WithCommercialData(CommercialData data) { CommercialData = data; if (data.CommercialIndicator.Equals(CommercialIndicator.Level_II)) { TransactionModifier = TransactionModifier.Level_II; } else { TransactionModifier = TransactionModifier.Level_III; } return(this); }
public void MasterCard_Level3_Sale() { var commercialData = new CommercialData(TaxType.SALESTAX, CommercialIndicator.Level_III) { PoNumber = "9876543210", TaxAmount = 0.01m, DestinationPostalCode = "85212", DestinationCountryCode = "USA", OriginPostalCode = "22193", SummaryCommodityCode = "SCC", VAT_InvoiceNumber = "UVATREF162", OrderDate = DateTime.Now, FreightAmount = 0.01m, DutyAmount = 0.01m, AdditionalTaxDetails = new AdditionalTaxDetails { TaxAmount = 0.01m, TaxRate = 0.04m, } }; commercialData.AddLineItems( new CommercialLineItem { ProductCode = "PRDCD1", UnitCost = 0.01m, Quantity = 1m, UnitOfMeasure = "METER", Description = "PRODUCT 1 NOTES", // CommodityCode = "12DIGIT ACCO", DiscountDetails = new DiscountDetails { DiscountAmount = 0.50m } } ); var response = MasterCardManual.Charge(0.53m) .WithCurrency("USD") .WithCommercialRequest(true) .WithClientTransactionId(ClientTransactionId) .WithAddress(Address) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); var edit = response.Edit() .WithCommercialData(commercialData) .Execute(); Assert.IsNotNull(edit); Assert.AreEqual("00", edit.ResponseCode); }
public void Test_001_Visa_Level_II_Sale() { var commercialData = new CommercialData(TaxType.NOTUSED) { PoNumber = "9876543210" }; Transaction response = VisaManual.Charge(0.52m) .WithCurrency("USD") .WithCommercialData(commercialData) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); }
public void Test_002_MasterCard_Level_II_Sale() { var commercialData = new CommercialData(TaxType.SALESTAX) { TaxAmount = 0.02m, PoNumber = "9876543210" }; Transaction response = MasterCardManual.Charge(0.52m) .WithCurrency("USD") .WithCommercialData(commercialData) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); }
public void Test_002_MasterCard_Level_II_Sale() { Logger.AppendText("\r\nTest_002_MasterCard_Level_II_Sale"); var commercialData = new CommercialData(TaxType.SALESTAX) { TaxAmount = 0.02m, PoNumber = "9876543210" }; Response = MasterCardManual.Charge(0.52m) .WithCurrency("USD") .WithCommercialData(commercialData) .WithClientTransactionId(ClientTransactionId) .WithAddress(Address) .Execute(); }
public void Test_003_Amex_Level_II_Sale() { var commercialData = new CommercialData(TaxType.NOTUSED) { SupplierReferenceNumber = "123456", CustomerReferenceId = "987654", DestinationPostalCode = "85284", Description = "AMEX LEVEL 2 TEST CASE" }; Transaction response = AmexManual.Charge(1.5m) .WithCurrency("USD") .WithCommercialData(commercialData) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); }
public void Test_001_Visa_Level_II_Sale() { Logger.AppendText("Test_001_Visa_Level_II_Sale"); var commercialData = new CommercialData(TaxType.NOTUSED) { PoNumber = "9876543210", TaxAmount = 0m }; Response = VisaManual.Charge(0.52m) .WithCurrency("USD") .WithCommercialData(commercialData) .WithAddress(Address) .WithClientTransactionId(ClientTransactionId) .WithDescription("Test_001_Visa_Level_II_Sale") .Execute(); }
public void Test_003_Amex_Level_II_Sale() { Logger.AppendText("\r\nTest_003_Amex_Level_II_Sale"); var commercialData = new CommercialData(TaxType.NOTUSED) { SupplierReferenceNumber = "123456", CustomerReferenceId = "987654", DestinationPostalCode = "85284", Description = "AMEX LEVEL 2 TEST CASE", TaxAmount = 0m }; Response = AmexManual.Charge(1.5m) .WithCurrency("USD") .WithCommercialData(commercialData) .WithClientTransactionId(ClientTransactionId) .WithAddress(Address) .Execute(); }
public void CreditServiceCommercialEdit() { Transaction response = service.Charge(13m) .WithCurrency("USD") .WithPaymentMethod(card) .WithCommercialRequest(true) .Execute(); Assert.IsNotNull(response); Assert.AreEqual("00", response.ResponseCode); var commercialData = new CommercialData(TaxType.SALESTAX) { TaxAmount = 1m }; Transaction editResponse = service.Edit(response.TransactionId) .WithCommercialData(commercialData) .Execute(); Assert.IsNotNull(editResponse); Assert.AreEqual("00", editResponse.ResponseCode); }
public AuthorizationBuilder WithCommercialData(CommercialData value) { CommercialData = value; return(this); }
public Transaction ProcessAuthorization(AuthorizationBuilder builder) { ElementTree et = new ElementTree(); IPaymentMethod paymentMethod = builder.PaymentMethod; var transaction = et.Element(MapRequestType(builder)) .Set("xmlns", "http://schemas.merchantwarehouse.com/merchantware/v45/"); // Credentials var credentials = et.SubElement(transaction, "Credentials"); et.SubElement(credentials, "MerchantName").Text(MerchantName); et.SubElement(credentials, "MerchantSiteId").Text(MerchantSiteId); et.SubElement(credentials, "MerchantKey").Text(MerchantKey); // Payment Data var paymentData = et.SubElement(transaction, "PaymentData"); if (paymentMethod is CreditCardData) { CreditCardData card = paymentMethod as CreditCardData; if (card.Token != null) { if (card.MobileType != null) { et.SubElement(paymentData, "Source").Text("Wallet"); et.SubElement(paymentData, "WalletId", MapWalletId(card.MobileType)); et.SubElement(paymentData, "EncryptedPaymentData", card.Token); } else { et.SubElement(paymentData, "Source").Text("Vault"); et.SubElement(paymentData, "VaultToken", card.Token); } } else { et.SubElement(paymentData, "Source").Text("Keyed"); et.SubElement(paymentData, "CardNumber", card.Number); et.SubElement(paymentData, "ExpirationDate", card.ShortExpiry); et.SubElement(paymentData, "CardHolder", card.CardHolderName); et.SubElement(paymentData, "CardVerificationValue", card.Cvn); } } else if (paymentMethod is CreditTrackData) { et.SubElement(paymentData, "Source").Text("READER"); CreditTrackData track = paymentMethod as CreditTrackData; et.SubElement(paymentData, "TrackData", track.Value); } // AVS et.SubElement(paymentData, "AvsStreetAddress", builder.BillingAddress?.StreetAddress1); et.SubElement(paymentData, "AvsZipCode", builder.BillingAddress?.PostalCode); // Request var request = et.SubElement(transaction, "Request"); et.SubElement(request, "Amount", builder.Amount.ToCurrencyString()); et.SubElement(request, "CashbackAmount", builder.CashBackAmount.ToCurrencyString()); et.SubElement(request, "SurchargeAmount", builder.ConvenienceAmount.ToCurrencyString()); //et.SubElement(request, "TaxAmount", builder..ToCurrencyString()); et.SubElement(request, "AuthorizationCode", builder.OfflineAuthCode); if (builder.AutoSubstantiation != null) { var healthcare = et.SubElement(request, "HealthCareAmountDetails"); AutoSubstantiation auto = builder.AutoSubstantiation; et.SubElement(healthcare, "CopayAmount", auto.CopaySubTotal.ToCurrencyString()); et.SubElement(healthcare, "ClinicalAmount", auto.ClinicSubTotal.ToCurrencyString()); et.SubElement(healthcare, "DentalAmount", auto.DentalSubTotal.ToCurrencyString()); et.SubElement(healthcare, "HealthCareTotalAmount", auto.TotalHealthcareAmount.ToCurrencyString()); et.SubElement(healthcare, "PrescriptionAmount", auto.PrescriptionSubTotal.ToCurrencyString()); et.SubElement(healthcare, "VisionAmount", auto.VisionSubTotal.ToCurrencyString()); } et.SubElement(request, "InvoiceNumber", builder.InvoiceNumber); et.SubElement(request, "RegisterNumber", RegisterNumber); et.SubElement(request, "MerchantTransactionId", builder.ClientTransactionId); et.SubElement(request, "CardAcceptorTerminalId", TerminalId); et.SubElement(request, "EnablePartialAuthorization", builder.AllowPartialAuth); et.SubElement(request, "ForceDuplicate", builder.AllowDuplicates); // Level III if (builder.CommercialData != null) { var invoice = et.SubElement(request, "Invoice"); CommercialData cd = builder.CommercialData; et.SubElement(invoice, "TaxIndicator", MapTaxType(cd.TaxType)); et.SubElement(invoice, "ProductDescription", cd.Description); et.SubElement(invoice, "DiscountAmount", cd.DiscountAmount); et.SubElement(invoice, "ShippingAmount", cd.FreightAmount); et.SubElement(invoice, "DutyAmount", cd.DutyAmount); et.SubElement(invoice, "DestinationPostalCode", cd.DestinationPostalCode); et.SubElement(invoice, "DestinationCountryCode", cd.DestinationCountryCode); et.SubElement(invoice, "ShipFromPostalCode", cd.OriginPostalCode); if (cd.LineItems.Count > 0) { var lineItemsElement = et.SubElement(invoice, "LineItems"); foreach (var item in cd.LineItems) { var lineItem = et.SubElement(lineItemsElement, "LineItem"); et.SubElement(lineItem, "CommodityCode", item.CommodityCode); et.SubElement(lineItem, "Description", item.Description); et.SubElement(lineItem, "Upc", item.UPC); et.SubElement(lineItem, "Quantity", item.Quantity); et.SubElement(lineItem, "UnitOfMeasure", item.UnitOfMeasure); et.SubElement(lineItem, "UnitCost", item.UnitCost); et.SubElement(lineItem, "DiscountAmount", item.DiscountAmount); et.SubElement(lineItem, "TotalAmount", item.TotalAmount); et.SubElement(lineItem, "TaxAmount", item.TaxAmount); et.SubElement(lineItem, "ExtendedAmount", item.ExtendedAmount); et.SubElement(lineItem, "DebitOrCreditIndicator", item.CreditDebitIndicator.ToString()); et.SubElement(lineItem, "NetOrGrossIndicator", item.NetGrossIndicator.ToString()); } } } var response = DoTransaction(BuildEnvelope(et, transaction)); return(MapResponse(builder, response)); }