Exemplo n.º 1
0
        public void TestPaymentStringFromAccount()
        {
            Debug.WriteLine("paymentStringFromAccount");

            SmartPaymentParameters parameters = new SmartPaymentParameters();

            parameters.BankAccount = new CzechBankAccount("19", "123", "0800");
            SmartPaymentMap extendedParameters  = null;
            bool            transliterateParams = false;
            string          expResult           = "SPD*1.0*ACC:CZ2408000000190000000123";
            string          result = SmartPayment.PaymentStringFromAccount(parameters, extendedParameters, transliterateParams);

            Assert.AreEqual(expResult, result);
        }
Exemplo n.º 2
0
        public void TestPaymentStringFromAccountAmountAndAlternateAccounts()
        {
            Debug.WriteLine("paymentStringFromAccount");

            SmartPaymentParameters parameters = new SmartPaymentParameters();

            parameters.BankAccount = new CzechBankAccount("19", "123", "0800");

            List <BankAccount> alternateAccounts = new List <BankAccount>();

            alternateAccounts.Add(new CzechBankAccount(null, "19", "5500"));
            alternateAccounts.Add(new CzechBankAccount(null, "19", "0100"));
            parameters.AlternateAccounts = alternateAccounts;
            parameters.Amount            = 100.5m;
            SmartPaymentMap extendedParameters  = null;
            bool            transliterateParams = false;
            string          expResult           = "SPD*1.0*ACC:CZ2408000000190000000123*ALT-ACC:CZ9755000000000000000019,CZ7301000000000000000019*AM:100.5";
            string          result = SmartPayment.PaymentStringFromAccount(parameters, extendedParameters, transliterateParams);

            Debug.WriteLine(result);
            Assert.AreEqual(expResult, result);
        }
Exemplo n.º 3
0
 public static string PaymentStringFromAccount(SmartPaymentParameters parameters, SmartPaymentMap extendedParameters, bool transliterateParams)
 {
     string paymentString = "SPD*" + protocolVersion + "*";
     if (parameters.BankAccount.IBAN != null)
     {
         paymentString += "ACC:" + parameters.BankAccount.IBAN;
         if (parameters.BankAccount.BIC != null)
         {
             paymentString += "+" + parameters.BankAccount.BIC;
         }
         paymentString += "*";
     }
     if (parameters.AlternateAccounts != null && parameters.AlternateAccounts.Any())
     {
         paymentString += "ALT-ACC:";
         bool firstItem = true;
         foreach (BankAccount bankAccount in parameters.AlternateAccounts)
         {
             if (!firstItem)
             {
                 paymentString += ",";
             }
             else
             {
                 firstItem = false;
             }
             paymentString += bankAccount.IBAN;
             if (bankAccount.BIC != null)
             {
                 paymentString += "+" + bankAccount.BIC;
             }
         }
         paymentString += "*";
     }
     if (parameters.Amount.HasValue)
     {
         paymentString += string.Format(enUS, "AM:{0}*", parameters.Amount.Value);
     }
     if (parameters.Currency != null)
     {
         paymentString += "CC:" + parameters.Currency + "*";
     }
     if (parameters.SendersReference != null)
     {
         paymentString += "RF:" + parameters.SendersReference + "*";
     }
     if (parameters.RecipientName != null)
     {
         if (transliterateParams)
         {
             paymentString += "RN:"
                     + EscapeDisallowedCharacters(parameters.RecipientName.ToUpper()) // TODO diacritics removing
                     + "*";
         }
         else
         {
             paymentString += "RN:"
                     + EscapeDisallowedCharacters(parameters.RecipientName)
                     + "*";
         }
     }
     if (parameters.Date.HasValue)
     {
         paymentString += string.Format("DT:{0:yyyyMMdd}*", parameters.Date.Value); // TODO validate format
     }
     if (parameters.Message != null)
     {
         if (transliterateParams)
         {
             paymentString += "MSG:"
                     + EscapeDisallowedCharacters(parameters.Message.ToUpper()) // TODO diacritics removing
                     + "*";
         }
         else
         {
             paymentString += "MSG:"
                     + EscapeDisallowedCharacters(parameters.Message)
                     + "*";
         }
     }
     if (parameters.NotificationType.HasValue)
     {
         switch (parameters.NotificationType.Value)
         {
             case SmartPaymentParameters.PaymentNotificationType.Email:
                 paymentString += "NT:E*";
                 break;
             case SmartPaymentParameters.PaymentNotificationType.Phone:
                 paymentString += "NT:P*";
                 break;
             default:
                 throw new ArgumentOutOfRangeException();
         }
     }
     if (parameters.NotificationValue != null)
     {
         paymentString += "NTA:" + EscapeDisallowedCharacters(parameters.NotificationValue) + "*";
     }
     if (extendedParameters != null && extendedParameters.Any())
     {
         paymentString += extendedParameters.ToExtendedParams();
     }
     return paymentString.Substring(0, paymentString.Length - 1);
 }