parse ofx begäran svar

OFX, Open Financial Exchange, filer används för att utbyta finansiell information. Det används i såväl klient-server som molnbaserade system. Så begäran-svar-modellen används för att utbyta finansiell information. Låt oss lära oss OFX-begäran och svaret:

Analysera OFX-förfrågan och svar – C# API-installation

Aspose.Finance for .NET API stöder flera funktioner för bearbetning och analys av finansiell data. Du kan ladda ner det från avsnittet Nedladdningar eller installera via galleriet NuGet med följande kommando:

PM> Install-Package Aspose.Finance

Dessutom är utvecklingen av OFX värd att nämna här. OFX version 1 till 1.6 är baserad på SGML-syntax. De senare versionerna förlitar sig på XML-specifikationer. För bättre förståelse kommer vi att skapa OFX-förfrågnings- och svarsfiler i båda formaten (1.03 & 2.2).

Skapa OFX-förfrågan programmatiskt med C#

OFX-protokollet är en standard för ett tvåvägsutbyte av finansiell data. Du kan enkelt skapa en förfrågan genom att följa stegen nedan:

  1. Initiera Ofx Request Document objekt
  2. Skapa Sign on Request instans
  3. Ställ in olika egenskaper
  4. Spara OFX-förfrågan i format 1.03 och 2.2

Kodavsnittet nedan förklarar hur man skapar OFX Request programmatiskt med C#-språket:

// Initiera OfxRequestDocument-objekt
OfxRequestDocument document = new OfxRequestDocument();
document.SignonRequestMessageSetV1 = new SignonRequestMessageSetV1();

// Initiera SignonRequest och ställ in olika egenskaper
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;

// Skapa OFX-begäran för båda versionerna
document.Save(outputDir + @"newOfxRequestBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxRequestBankStatement.sgml", OfxVersionEnum.V1x);

Skapa OFX-svar programmatiskt med C#

Du kan skapa ett OFX-svar i .NET-baserade applikationer programmatiskt med C#. Följande steg förklarar processen för att skapa OFX-svar:

  1. Initiera klassobjektet Ofx Response Document
  2. Deklarera Sign on Response och ställ in värden
  3. Spara svar med Ofx Version Enum Uppräkning

Följande kodavsnitt visar hur man skapar OFX-svar programmatiskt med C#:

// Initiera OfxResponseDocument-objekt
OfxResponseDocument document = new OfxResponseDocument();
document.SignonResponseMessageSetV1 = new SignonResponseMessageSetV1();

// Initiera SignonResponse-instansen
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";

// Spara svar i OFX 1.03 och 2.2 formatspecifikation
document.Save(outputDir + @"newOfxResponseBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxResponseBankStatement.sgml", OfxVersionEnum.V1x);

Slutsats

OFX-standarden är plattformsoberoende så att användarna kan välja systemmiljö eller plattform för att använda finansiella bearbetningsfunktioner. Det gör det möjligt för banker, mäklarfirmor och lönehanteringsföretag att skapa skräddarsydda lösningar. Du kan komma i kontakt via Free Support Forum. Vi hjälper dig gärna!

Se även