OFX, Open Financial Exchange, Dateien werden zum Austausch von Finanzinformationen verwendet. Es wird sowohl in Client-Server- als auch in Cloud-basierten Systemen verwendet. Für den Austausch von Finanzinformationen wird also das Request-Response-Modell verwendet. Lassen Sie uns die OFX-Anforderung und -Antwort lernen:
- Parsen von OFX-Anforderung und -Antwort – C# API Installation
- Erstellen Sie OFX-Anforderungen programmgesteuert mit C#
- Erstellen Sie OFX-Antworten programmgesteuert mit C#
Parsen von OFX-Anforderung und -Antwort – C# API Installation
Die Aspose.Finance for .NET-API unterstützt mehrere Funktionen zum Verarbeiten und Analysieren von Finanzdaten. Sie können es aus dem Abschnitt Downloads herunterladen oder über die Galerie NuGet mit dem folgenden Befehl installieren:
PM> Install-Package Aspose.Finance
Außerdem ist hier die Entwicklung von OFX erwähnenswert. Die OFX-Versionen 1 bis 1.6 basieren auf der SGML-Syntax. Die neueren Versionen stützen sich auf XML-Spezifikationen. Zum besseren Verständnis erstellen wir OFX-Request und Response Dateien in beiden Formaten (1.03 & 2.2).
Erstellen Sie OFX-Anforderungen programmgesteuert mit C#
Das OFX-Protokoll ist ein Standard für den bidirektionalen Austausch von Finanzdaten. Sie können ganz einfach eine Anfrage erstellen, indem Sie die folgenden Schritte ausführen:
- Initialisiere das Objekt Ofx Request Document.
- Erstellen Sie die Instanz Sign on Request.
- Legen Sie verschiedene Eigenschaften fest
- Speichern Sie die OFX-Anforderung im 1.03 und 2.2-Format
Das folgende code snippet erläutert, wie Sie eine OFX-Anforderung programmgesteuert mit der Sprache C# erstellen:
// Initialisiert das OfxRequestDocument objekt
OfxRequestDocument document = new OfxRequestDocument();
document.SignonRequestMessageSetV1 = new SignonRequestMessageSetV1();
// Initialisieren Sie SignonRequest und setzen Sie verschiedene Eigenschaften
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;
// OFX-Request für beide Versionen erstellen
document.Save(outputDir + @"newOfxRequestBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxRequestBankStatement.sgml", OfxVersionEnum.V1x);
Erstellen Sie OFX-Antworten programmgesteuert mit C#
Sie können eine OFX-Antwort in .NET-basierten Anwendungen programmgesteuert mit C# erstellen. Die folgenden Schritte erläutern den Erstellungsprozess für OFX-Antworten:
- Initialisieren Sie das Klassenobjekt Ofx-Antwortdokument.
- Deklarieren Sie Sign on Response und legen Sie Werte fest
- Speichern Sie die Antwort mit der Enumeration Ofx Version Enum.
Das folgende code snippet zeigt, wie eine OFX-Antwort programmgesteuert mit C# erstellt wird:
// Initialisiert das OfxResponseDocument objekt
OfxResponseDocument document = new OfxResponseDocument();
document.SignonResponseMessageSetV1 = new SignonResponseMessageSetV1();
// SignonResponse-Instanz initialisieren
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";
// Speichern Sie die Antwort in den Formatspezifikationen OFX 1.03 und 2.2
document.Save(outputDir + @"newOfxResponseBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxResponseBankStatement.sgml", OfxVersionEnum.V1x);
Fazit
Der OFX-Standard ist plattformunabhängig, sodass die Benutzer die Systemumgebung oder Plattform auswählen können, um Finanzverarbeitungsfunktionen zu verwenden. Es ermöglicht den Banken, Maklern und Lohnabrechnungsunternehmen, maßgeschneiderte Lösungen zu erstellen. Sie können sich über das kostenlose Support-Forum mit uns in Verbindung setzen. Wir werden uns freuen, Ihnen zu helfen!