Ач обработка, добавление специальных символов в файл - PullRequest
0 голосов
/ 04 декабря 2018

Я должен создать файл ACH (мой код ниже).всякий раз, когда банк обрабатывает это.это добавляет некоторые специальные символы перед файлом.Невозможно определить

Какой может быть правильный способ создания файла ACH в формате NACHA, чтобы его можно было обрабатывать без ошибок

try
            {
                //Set this flag to fix the issue
                ChoETLFrxBootstrap.IsSandboxEnvironment = false;
                ChoNACHAConfiguration config = new ChoNACHAConfiguration();
                config.DestinationBankRoutingNumber = "xxxxxxxxxx";                
                config.OriginatingCompanyId = "xxxxxxxxxx";
                config.DestinationBankName = ("SOME Bank").ToUpper();
                config.OriginatingCompanyName = ("Organisation Name").ToUpper();
                config.ReferenceCode = ("mgmt").ToUpper();
                config.BlockingFactor = 10;
                var unitowners = Achbll.GetUnitOwnerPaymentList(Dt).ToList();
                var FileName = "ACH_" + ((DateTime.Now.ToString("dd-MM-yyy hh:mm:ss")).Replace(" ", "_").Replace(":", "_")) + ".txt";
                var backpath = "~/CondoDocuments/DocumentLibrary/AchFiles/" + FileName;
                var path = Server.MapPath(backpath); //HttpRuntime.AppDomainAppPath + backpath;

                using (var fs = System.IO.File.Create(path))
                {
                    fs.Close();
                    fs.Dispose();
                }

                using (var nachaWriter = new ChoNACHAWriter(path, config))
                {
                    using (var bw2 = nachaWriter.CreateBatch(200, "PPD", "DIR DEBIT", DateTime.Now, DateTime.Now.AddDays(1), null, null, '1', null, null))
                    {
                        foreach (var owner in unitowners)
                        {
                            if (!string.IsNullOrEmpty(owner.AccountNo) && !string.IsNullOrEmpty(owner.BankRoutingCode))
                            {

                                var UA = Cipher.decrypt(owner.AccountNo);
                                var BR = Cipher.decrypt(owner.BankRoutingCode);
                                var Name = owner.UnitOwnerName.Split(' ');
                                if (Name.Length > 1)
                                {
                                    using (var entry = bw2.CreateDebitEntryDetail(27, BR.ToString(), UA.ToString(), 5, " 18H00A " + owner.UnitNo.ToString(), (Name[1] + ", " + Name[0]).ToUpper().ToString()))
                                    {
                                        //entry.CheckDigit = '0';
                                    }
                                }
                                else
                                {
                                    using (var entry = bw2.CreateDebitEntryDetail(
                                                                                    27,
                                                                                    BR.ToString(),
                                                                                    UA.ToString(),
                                                                                    new decimal(5.25),
                                                                                    " 18H00B " + owner.UnitNo.ToString(),
                                                                                    (Name[0]).ToUpper().ToString()))

                                    {
                                        //entry.CheckDigit = '0';
                                    }
                                }
                            }
                        }
                    }
                }

                AchFiles obj = new AchFiles
                {
                    FileName = FileName,
                    Path = "../CondoDocuments/DocumentLibrary/AchFiles/" + FileName
                };

                Achbll.AddAchFiles(obj);

            }
            catch (System.Exception ex)
            {

            }

IПрилагаю снимок экрана обработанных данных enter image description here

...