analisi di risposta alla richiesta di x

OFX, Open Financial Exchange, i file vengono utilizzati per lo scambio di informazioni finanziarie. Viene utilizzato nei sistemi client-server e basati su cloud. Quindi il modello richiesta-risposta viene utilizzato per lo scambio di informazioni finanziarie. Impariamo la richiesta e la risposta OFX:

Analizza la richiesta e la risposta OFX – Installazione dell’API C#

L’API Aspose.Finance for .NET supporta diverse funzionalità per l’elaborazione e l’analisi dei dati finanziari. Puoi scaricarlo dalla sezione Download o installarlo tramite la galleria NuGet con il seguente comando:

PM> Install-Package Aspose.Finance

Inoltre, vale la pena menzionare qui l’evoluzione di OFX. OFX dalla versione 1 alla 1.6 si basa sulla sintassi SGML. Le versioni successive si basano su specifiche XML. Per una migliore comprensione, creeremo file di richiesta e risposta OFX in entrambi i formati (1.03 e 2.2).

Crea richiesta OFX a livello di codice usando C#

Il protocollo OFX è uno standard per uno scambio bidirezionale di dati finanziari. Puoi facilmente creare una richiesta seguendo i passaggi seguenti:

  1. Inizializza l’oggetto Ofx Request Document.
  2. Crea un’istanza Richiesta di accesso.
  3. Imposta proprietà diverse
  4. Salva la richiesta OFX nel formato 1.03 e 2.2

Il frammento di codice seguente spiega come creare una richiesta OFX a livello di codice utilizzando il linguaggio C#:

// Inizializza l'oggetto OfxRequestDocument
OfxRequestDocument document = new OfxRequestDocument();
document.SignonRequestMessageSetV1 = new SignonRequestMessageSetV1();

// Inizializza SignonRequest e imposta proprietà diverse
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;

// Crea richiesta OFX per entrambe le versioni
document.Save(outputDir + @"newOfxRequestBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxRequestBankStatement.sgml", OfxVersionEnum.V1x);

Crea una risposta OFX a livello di codice con C#

È possibile creare una risposta OFX in applicazioni basate su .NET a livello di codice usando C#. I seguenti passaggi spiegano il processo di creazione della risposta OFX:

  1. Inizializza l’oggetto classe Ofx Response Document.
  2. Dichiara Sign on Response e imposta i valori
  3. Salvare la risposta con Ofx Version Enum Enumeration

Il frammento di codice seguente mostra come creare una risposta OFX a livello di codice usando C#:

// Inizializza l'oggetto OfxResponseDocument
OfxResponseDocument document = new OfxResponseDocument();
document.SignonResponseMessageSetV1 = new SignonResponseMessageSetV1();

// Inizializza l'istanza di SignonResponse
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";

// Salva la risposta nella specifica del formato OFX 1.03 e 2.2
document.Save(outputDir + @"newOfxResponseBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxResponseBankStatement.sgml", OfxVersionEnum.V1x);

Conclusione

Lo standard OFX è indipendente dalla piattaforma, quindi gli utenti possono scegliere l’ambiente di sistema o la piattaforma per utilizzare le funzionalità di elaborazione finanziaria. Consente alle banche, agli intermediari e alle società di elaborazione delle buste paga di creare soluzioni su misura. Puoi metterti in contatto tramite il Forum di supporto gratuito. Saremo lieti di aiutarvi!

Guarda anche