OFX، Open Financial Exchange، فایلها برای تبادل اطلاعات مالی استفاده میشوند. در سیستم های کلاینت-سرور و همچنین سیستم های مبتنی بر ابر استفاده می شود. بنابراین از مدل درخواست-پاسخ برای تبادل اطلاعات مالی استفاده می شود. اجازه دهید درخواست و پاسخ OFX را یاد بگیریم:
- تجزیه درخواست و پاسخ OFX – نصب API C#
- ایجاد درخواست OFX به صورت برنامه ریزی شده با استفاده از سی شارپ
- ایجاد پاسخ OFX به صورت برنامه ای با سی شارپ
تجزیه درخواست و پاسخ OFX – نصب API C#
Aspose.Finance for .NET API از چندین ویژگی برای پردازش و تجزیه داده های مالی پشتیبانی می کند. می توانید آن را از قسمت Downloads دانلود کنید یا از طریق گالری NuGet با دستور زیر نصب کنید:
PM> Install-Package Aspose.Finance
علاوه بر این، تکامل OFX در اینجا قابل ذکر است. OFX نسخه 1 تا 1.6 بر اساس نحو SGML است. نسخه های بعدی به مشخصات XML متکی هستند. برای درک بهتر، فایل های درخواست و پاسخ OFX را در هر دو فرمت (1.03 و 2.2) ایجاد خواهیم کرد.
ایجاد درخواست OFX به صورت برنامه ریزی شده با استفاده از سی شارپ
پروتکل OFX استانداردی برای تبادل دو طرفه داده های مالی است. با انجام مراحل زیر می توانید به راحتی درخواست ایجاد کنید:
- شیء Ofx Request Document را مقداردهی کنید
- نمونه Sign on Request ایجاد کنید
- ویژگی های مختلف را تنظیم کنید
- درخواست OFX را در فرمت های 1.03 و 2.2 ذخیره کنید
قطعه کد زیر نحوه ایجاد درخواست OFX را به صورت برنامه نویسی با استفاده از زبان 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 به صورت برنامه ای با سی شارپ
می توانید یک پاسخ OFX در برنامه های مبتنی بر دات نت به صورت برنامه نویسی با استفاده از C# ایجاد کنید. مراحل زیر فرآیند ایجاد پاسخ OFX را توضیح می دهد:
- شیء کلاس Ofx Response Document را راه اندازی کنید
- Sign on Response را اعلام کنید و مقادیر را تنظیم کنید
- پاسخ را با Ofx Version Enum Enumeration ذخیره کنید
قطعه کد زیر نحوه ایجاد پاسخ 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 مستقل از پلتفرم است، بنابراین کاربران می توانند محیط یا پلتفرم سیستم را برای استفاده از ویژگی های پردازش مالی انتخاب کنند. بانکها، کارگزاریها و شرکتهای پردازش حقوق و دستمزد را قادر میسازد تا راهحلهای مناسبی را ایجاد کنند. می توانید از طریق تالار گفتمان پشتیبانی رایگان در تماس باشید. ما خوشحال میشیم به شما کمک کنیم!