analyse de la réponse à la requête ofx

OFX, Open Financial Exchange, les fichiers sont utilisés pour échanger des informations financières. Il est utilisé dans les systèmes client-serveur ainsi que dans les systèmes basés sur le cloud. Ainsi, le modèle demande-réponse est utilisé pour échanger des informations financières. Apprenons la requête et la réponse OFX :

Analyser la requête et la réponse OFX - Installation de l’API C#

L’API Aspose.Finance for .NET prend en charge plusieurs fonctionnalités de traitement et d’analyse des données financières. Vous pouvez le télécharger depuis la section Téléchargements ou l’installer via la galerie NuGet avec la commande suivante :

PM> Install-Package Aspose.Finance

De plus, l’évolution d’OFX mérite d’être mentionnée ici. OFX version 1 à 1.6 est basé sur la syntaxe SGML. Les versions ultérieures s’appuient sur les spécifications XML. Pour une meilleure compréhension, nous allons créer des fichiers de requête et de réponse OFX dans les deux formats (1.03 & 2.2).

Créer une requête OFX par programmation à l’aide de C#

Le protocole OFX est une norme d’échange bidirectionnel de données financières. Vous pouvez facilement créer une demande en suivant les étapes ci-dessous :

  1. Initialiser l’objet Ofx Request Document
  2. Créer une instance Sign on Request
  3. Définir différentes propriétés
  4. Enregistrer la requête OFX au format 1.03 et 2.2

L’extrait de code ci-dessous explique comment créer une requête OFX par programmation à l’aide du langage C# :

// Initialiser l'objet OfxRequestDocument
OfxRequestDocument document = new OfxRequestDocument();
document.SignonRequestMessageSetV1 = new SignonRequestMessageSetV1();

// Initialiser SignonRequest et définir différentes propriétés
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;

// Créer une demande OFX pour les deux versions
document.Save(outputDir + @"newOfxRequestBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxRequestBankStatement.sgml", OfxVersionEnum.V1x);

Créer une réponse OFX par programmation avec C#

Vous pouvez créer une réponse OFX dans des applications basées sur .NET par programmation à l’aide de C#. Les étapes suivantes expliquent le processus de création de réponse OFX :

  1. Initialiser l’objet de classe Ofx Response Document
  2. Déclarez Sign on Response et définissez les valeurs
  3. Enregistrer la réponse avec Ofx Version Enum Énumération

L’extrait de code suivant montre comment créer une réponse OFX par programmation à l’aide de C# :

// Initialiser l'objet OfxResponseDocument
OfxResponseDocument document = new OfxResponseDocument();
document.SignonResponseMessageSetV1 = new SignonResponseMessageSetV1();

// Initialiser l'instance 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";

// Enregistrer la réponse dans les spécifications de format OFX 1.03 et 2.2
document.Save(outputDir + @"newOfxResponseBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxResponseBankStatement.sgml", OfxVersionEnum.V1x);

Conclusion

La norme OFX est indépendante de la plate-forme afin que les utilisateurs puissent choisir l’environnement système ou la plate-forme pour utiliser les fonctionnalités de traitement financier. Il permet aux banques, aux sociétés de courtage et aux sociétés de traitement de la paie de créer des solutions sur mesure. Vous pouvez entrer en contact via le Forum d’assistance gratuit. On sera ravis de vous aider!

Voir également