ofx istek yanıtının ayrıştırılması

OFX, Open Financial Exchange, dosyalar finansal bilgi alışverişi için kullanılır. İstemci-sunucu ve Bulut tabanlı sistemlerde kullanılır. Bu nedenle, finansal bilgi alışverişinde istek-yanıt modeli kullanılır. OFX isteğini ve yanıtını öğrenelim:

OFX İstek ve Yanıtını Ayrıştırma – C# API Kurulumu

Aspose.Finance for .NET API, finansal verileri işlemek ve ayrıştırmak için çeşitli özellikleri destekler. İndirilenler bölümünden indirebilir veya aşağıdaki komutla NuGet galerisi aracılığıyla yükleyebilirsiniz:

PM> Install-Package Aspose.Finance

Dahası, OFX’in evriminden burada bahsetmeye değer. OFX sürüm 1 ila 1.6, SGML sözdizimini temel alır. Daha sonraki sürümler, XML belirtimlerine dayanır. Daha iyi anlaşılması için her iki formatta (1.03 & 2.2) OFX istek ve yanıt dosyaları oluşturacağız.

C# kullanarak Programlı Olarak OFX İsteği Oluşturma

OFX protokolü, iki yönlü finansal veri alışverişi için bir standarttır. Aşağıdaki adımları takip ederek kolayca talep oluşturabilirsiniz:

  1. Ofx İstek Belgesi nesnesini başlat
  2. İstekte Oturum Aç örneği oluşturun
  3. Farklı özellikler ayarla
  4. OFX isteğini 1.03 ve 2.2 biçiminde kaydet

Aşağıdaki kod parçacığı, C# dilini kullanarak programlı olarak OFX İsteğinin nasıl oluşturulacağını açıklar:

// OfxRequestDocument nesnesini başlat
OfxRequestDocument document = new OfxRequestDocument();
document.SignonRequestMessageSetV1 = new SignonRequestMessageSetV1();

// SignonRequest'i başlatın ve farklı özellikleri ayarlayın
SignonRequest signonRequest = new SignonRequest();
document.SignonRequestMessageSetV1.SignonRequest = signonRequest;
signonRequest.ClientDate = "20200611000000";
signonRequest.UserId = "aspose";
signonRequest.UserPassword = "password";
FinancialInstitution fi = new FinancialInstitution();
fi.Organization = "aspose";
fi.FinancialInstitutionId = "1";
signonRequest.FinancialInstitution = fi;
signonRequest.AppVersion = "1.0";
signonRequest.AppId = "Aspose.Finance";
signonRequest.ClientUserId = "aaaaaaa";

document.BankRequestMessageSetV1 = new BankRequestMessageSetV1();
StatementTransactionRequest stmtTransRequest = new StatementTransactionRequest();
document.BankRequestMessageSetV1.StatementTransactionRequests.Add(stmtTransRequest);
stmtTransRequest.TransactionUniqueId = "1111111";
stmtTransRequest.StatementRequest = new StatementRequest();
stmtTransRequest.StatementRequest.BankAccountFrom = new BankAccount();
stmtTransRequest.StatementRequest.BankAccountFrom.BankId = "sssss";
stmtTransRequest.StatementRequest.BankAccountFrom.AccountId = "sfsdfsfsdf";
stmtTransRequest.StatementRequest.BankAccountFrom.AccountType = AccountEnum.CHECKING;
stmtTransRequest.StatementRequest.IncTransaction = new IncTransaction();
stmtTransRequest.StatementRequest.IncTransaction.StartDate = "20200601000000";
stmtTransRequest.StatementRequest.IncTransaction.EndDate = "20200611000000";
stmtTransRequest.StatementRequest.IncTransaction.Include = true;

// Her iki sürüm için OFX isteği oluştur
document.Save(outputDir + @"newOfxRequestBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxRequestBankStatement.sgml", OfxVersionEnum.V1x);

C# ile Programlı Olarak OFX Yanıtı Oluşturma

.NET tabanlı uygulamalarda programlı olarak C# kullanarak bir OFX yanıtı oluşturabilirsiniz. Aşağıdaki adımlar OFX yanıtı oluşturma sürecini açıklamaktadır:

  1. Ofx Response Document sınıf nesnesini başlat
  2. Sign on Response beyan edin ve değerleri ayarlayın
  3. Yanıtı Ofx Version Enum Numaralandırma ile kaydet

Aşağıdaki kod parçacığı, C# kullanarak programlı olarak OFX yanıtının nasıl oluşturulacağını gösterir:

// OfxResponseDocument nesnesini başlat
OfxResponseDocument document = new OfxResponseDocument();
document.SignonResponseMessageSetV1 = new SignonResponseMessageSetV1();

// SignonResponse örneğini başlat
SignonResponse signonResponse = new SignonResponse();
document.SignonResponseMessageSetV1.SignonResponse = signonResponse;
signonResponse.Status = new Status();
signonResponse.Status.Code = "0";
signonResponse.Status.Severity = SeverityEnum.INFO;
signonResponse.Status.Message = "SUCCESS";
signonResponse.ServerDate = "20200611";
signonResponse.ProfileUpdateDate = "20200611";
FinancialInstitution fi = new FinancialInstitution();
fi.Organization = "aspose";
fi.FinancialInstitutionId = "1";
signonResponse.FinancialInstitution = fi;
signonResponse.SessionCookie = "11111111111111111";

document.BankResponseMessageSetV1 = new BankResponseMessageSetV1();
StatementTransactionResponse stmtTransResponse = new StatementTransactionResponse();
document.BankResponseMessageSetV1.StatementTransactionResponses.Add(stmtTransResponse);
stmtTransResponse.TransactionUniqueId = "829631324";
stmtTransResponse.Status = new Status();
stmtTransResponse.Status.Code = "0";
stmtTransResponse.Status.Severity = SeverityEnum.INFO;
stmtTransResponse.StatementResponse = new StatementResponse();
stmtTransResponse.StatementResponse.Currency = CurrencyEnum.USD;
stmtTransResponse.StatementResponse.BankAccountFrom = new BankAccount();
stmtTransResponse.StatementResponse.BankAccountFrom.BankId = "1111111";
stmtTransResponse.StatementResponse.BankAccountFrom.AccountId = "1111111111111";
stmtTransResponse.StatementResponse.BankAccountFrom.AccountType = AccountEnum.CHECKING;
stmtTransResponse.StatementResponse.BankTransactionList = new BankTransactionList();
stmtTransResponse.StatementResponse.BankTransactionList.StartDate = "20200601000000";
stmtTransResponse.StatementResponse.BankTransactionList.EndDate = "20200611000000";
StatementTransaction transaction1 = new StatementTransaction();
transaction1.TransactionType = TransactionEnum.DEBIT;
transaction1.PostedDate = "20200611000000";
transaction1.TransactionAmount = "-12";
transaction1.FinancialInstitutionTransactionId = "1111111111111111111111111";
transaction1.Name = "bbbbbbbbbbbbbbbbbbbbbbb";
StatementTransaction transaction2 = new StatementTransaction();
transaction2.TransactionType = TransactionEnum.CREDIT;
transaction2.PostedDate = "20200611000000";
transaction2.TransactionAmount = "22222.11";
transaction2.FinancialInstitutionTransactionId = "2222222222222222222222222222";
transaction2.Name = "wwwwwwwwwwwwwwwwwwwwwwww";
stmtTransResponse.StatementResponse.BankTransactionList.StatementTransactions.Add(transaction1);
stmtTransResponse.StatementResponse.BankTransactionList.StatementTransactions.Add(transaction2);
stmtTransResponse.StatementResponse.LedgerBalance = new LedgerBalance();
stmtTransResponse.StatementResponse.LedgerBalance.BalanceAmount = "+2222.42";
stmtTransResponse.StatementResponse.LedgerBalance.DateAsOf = "20200611000000";
stmtTransResponse.StatementResponse.AvailableBalance = new AvailableBalance();
stmtTransResponse.StatementResponse.AvailableBalance.BalanceAmount = "+222222.42";
stmtTransResponse.StatementResponse.AvailableBalance.DateAsOf = "20200611000000";

// Yanıtı OFX 1.03 ve 2.2 biçim belirtiminde kaydet
document.Save(outputDir + @"newOfxResponseBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxResponseBankStatement.sgml", OfxVersionEnum.V1x);

Çözüm

OFX standardı platformdan bağımsızdır, bu nedenle kullanıcılar finansal işleme özelliklerini kullanmak için sistem ortamını veya platformu seçebilir. Bankaların, aracı kurumların ve bordro işleme şirketlerinin özel çözümler oluşturmasını sağlar. Ücretsiz Destek Forumu aracılığıyla iletişime geçebilirsiniz. Size yardımcı olmaktan memnuniyet duyarız!

Ayrıca bakınız