public void DynamicWithTipIndicatedByUser() { var globalUniqueIdentifier = Guid.NewGuid().ToString().Replace("-", string.Empty); var merchantPayload = MerchantPayload.CreateDynamic( globalUniqueIdentifier, 4111, Iso4217Currency.MexicoPeso.Value.NumericCode, Iso3166Countries.Mexico, "My Super Shop", "Mexico City") .WithTransactionAmount(100) .WithTipByUser(); var payload = merchantPayload.GeneratePayload(); payload = AssertUtils.AssertThatContainsAndRemove(payload, "000201"); payload = AssertUtils.AssertThatContainsAndRemove(payload, "010212"); // dynamic payload = AssertUtils.AssertThatContainsAndRemove(payload, $"26360032{globalUniqueIdentifier}"); payload = AssertUtils.AssertThatContainsAndRemove(payload, "52044111"); payload = AssertUtils.AssertThatContainsAndRemove(payload, $"5303{Iso4217Currency.MexicoPeso.Value.NumericCode}"); payload = AssertUtils.AssertThatContainsAndRemove(payload, $"5802{Iso3166Countries.Mexico}"); payload = AssertUtils.AssertThatContainsAndRemove(payload, "5913My Super Shop"); payload = AssertUtils.AssertThatContainsAndRemove(payload, "6011Mexico City"); payload = AssertUtils.AssertThatContainsAndRemove(payload, "5406100.00"); payload = AssertUtils.AssertThatContainsAndRemove(payload, "550201"); payload = AssertUtils.AssertThatContainsAndRemove(payload, "6304"); Assert.True(4 == payload.Length); }
public void FullEncodeAndDecode() { var globalUniqueIdentifier = Guid.NewGuid().ToString().Replace("-", string.Empty); var merchantPayload = MerchantPayload .CreateDynamic(globalUniqueIdentifier, 4111, Iso4217Currency.MexicoPeso.Value.NumericCode, Iso3166Countries.Mexico, "Chocolate Powder", "Mexico City") .WithAlternateLanguage(Iso639Languages.SpanishCastilian, "Chocolate en Polvo", "CDMX") .WithTransactionAmount(34.95m) .WithTipByUser() .WithAdditionalData( billNumber: "1234", mobileNumber: "5512341234", storeLabel: "The large store", loyaltyNumber: "A12341234", referenceLabel: "***", terminalLabel: "T12341", purposeOfTransaction: "We do commerce", additionalConsumerDataRequest: "AME") .WithUnreservedTemplate(globalUniqueIdentifier, new Dictionary <int, string> { { 1, "Some value" }, { 2, "Another value" } }); merchantPayload.PostalCode = "12345"; var qr = merchantPayload.GeneratePayload(); merchantPayload = MerchantPayload.FromQR(qr); Assert.Equal(globalUniqueIdentifier, merchantPayload.MerchantAccountInformation.First().Value.GlobalUniqueIdentifier); Assert.Equal(4111, merchantPayload.MerchantCategoryCode); Assert.Equal(Iso4217Currency.MexicoPeso.Value.NumericCode, merchantPayload.TransactionCurrency); Assert.Equal(Iso3166Countries.Mexico, merchantPayload.CountyCode); Assert.Equal("Chocolate Powder", merchantPayload.MerchantName); Assert.Equal("Mexico City", merchantPayload.MerchantCity); Assert.Equal(Iso639Languages.SpanishCastilian, merchantPayload.MerchantInformation.LanguagePreference); Assert.Equal("Chocolate en Polvo", merchantPayload.MerchantInformation.MerchantNameAlternateLanguage); Assert.Equal("CDMX", merchantPayload.MerchantInformation.MerchantCityAlternateLanguage); Assert.Equal(34.95m, merchantPayload.TransactionAmount); Assert.Equal(1, merchantPayload.TipOrConvenienceIndicator); Assert.Equal("1234", merchantPayload.AdditionalData.BillNumber); Assert.Equal("5512341234", merchantPayload.AdditionalData.MobileNumber); Assert.Equal("The large store", merchantPayload.AdditionalData.StoreLabel); Assert.Equal("A12341234", merchantPayload.AdditionalData.LoyaltyNumber); Assert.Equal("***", merchantPayload.AdditionalData.ReferenceLabel); Assert.Equal("T12341", merchantPayload.AdditionalData.TerminalLabel); Assert.Equal("We do commerce", merchantPayload.AdditionalData.PurposeOfTransaction); Assert.Equal("AME", merchantPayload.AdditionalData.AdditionalConsumerDataRequest); Assert.Equal(globalUniqueIdentifier, merchantPayload.UnreservedTemplate.First().Value.GlobalUniqueIdentifier); Assert.Equal("Some value", merchantPayload.UnreservedTemplate.First().Value.ContextSpecificData[1]); Assert.Equal("Another value", merchantPayload.UnreservedTemplate.First().Value.ContextSpecificData[2]); Assert.Equal("12345", merchantPayload.PostalCode); Assert.NotNull(merchantPayload.CRC); }