示例#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);
        }
示例#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);
        }
示例#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);
 }
示例#4
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));
        }