לנתח את תגובת הבקשה של ofx

OFX, Open Financial Exchange, קבצים משמשים להחלפת מידע פיננסי. הוא משמש במערכות שרת-לקוח כמו גם במערכות מבוססות ענן. אז מודל התגובה לבקשה משמש להחלפת מידע פיננסי. תן לנו ללמוד את הבקשה והתגובה של OFX:

ניתוח בקשת ותגובה של OFX - התקנת API של C#

Aspose.Finance for .NET API תומך במספר תכונות לעיבוד וניתוח נתונים פיננסיים. אתה יכול להוריד אותו מהקטע הורדות או להתקין דרך הגלריה NuGet עם הפקודה הבאה:

PM> Install-Package Aspose.Finance

יתר על כן, האבולוציה של OFX ראויה להזכיר כאן. OFX גרסה 1 עד 1.6 מבוססת על תחביר SGML. הגרסאות המאוחרות יותר מסתמכות על מפרטי XML. להבנה טובה יותר, ניצור קבצי בקשות ותגובה של OFX בשני הפורמטים (1.03 ו-2.2).

צור בקשת OFX באופן פרוגרמטי באמצעות C#

פרוטוקול OFX הוא תקן להחלפה דו-כיוונית של נתונים פיננסיים. תוכל ליצור בקשה בקלות על ידי ביצוע השלבים הבאים:

  1. אתחול האובייקט Ofx Request Document
  2. צור מופע Sign on Request
  3. הגדר מאפיינים שונים
  4. שמור בקשת OFX בפורמט 1.03 ו-2.2

קטע הקוד שלהלן מסביר כיצד ליצור OFX Request באופן תכנותי באמצעות שפת C#:

// אתחול אובייקט OfxRequestDocument
OfxRequestDocument document = new OfxRequestDocument();
document.SignonRequestMessageSetV1 = new SignonRequestMessageSetV1();

// אתחול SignonRequest והגדר מאפיינים שונים
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 עבור שתי הגרסאות
document.Save(outputDir + @"newOfxRequestBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxRequestBankStatement.sgml", OfxVersionEnum.V1x);

צור תגובת OFX באופן פרוגרמטי עם C#

אתה יכול ליצור תגובת OFX ביישומים מבוססי NET באופן תכנותי באמצעות C#. השלבים הבאים מסבירים את תהליך יצירת תגובת OFX:

  1. אתחול אובייקט המחלקה Ofx Response Document
  2. הצהיר על Sign on Response והגדר ערכים
  3. שמור את התגובה עם Ofx Version Enum ספירה

קטע הקוד הבא מראה כיצד ליצור תגובת OFX באופן פרוגרמטי באמצעות C#:

// אתחול אובייקט OfxResponseDocument
OfxResponseDocument document = new OfxResponseDocument();
document.SignonResponseMessageSetV1 = new SignonResponseMessageSetV1();

// אתחול מופע 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";

// שמור תגובה במפרט פורמט OFX 1.03 ו-2.2
document.Save(outputDir + @"newOfxResponseBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxResponseBankStatement.sgml", OfxVersionEnum.V1x);

סיכום

תקן OFX אינו תלוי בפלטפורמה כך שהמשתמשים יכולים לבחור את סביבת המערכת או הפלטפורמה לשימוש בתכונות העיבוד הפיננסי. זה מאפשר לבנקים, לברוקרים ולחברות עיבוד שכר ליצור פתרונות מותאמים אישית. אתה יכול ליצור קשר דרך פורום תמיכה בחינם. נשמח לעזור לך!

ראה גם