phân tích cú pháp ofx yêu cầu phản hồi

OFX, Open Financial Exchange, các tệp được sử dụng để trao đổi thông tin tài chính. Nó được sử dụng trong máy khách-máy chủ cũng như các hệ thống dựa trên đám mây. Vì vậy, mô hình yêu cầu-phản hồi được sử dụng để trao đổi thông tin tài chính. Hãy để chúng tôi tìm hiểu yêu cầu và phản hồi của OFX:

Phân tích cú pháp yêu cầu và phản hồi OFX - Cài đặt API C#

API Aspose.Finance cho .NET hỗ trợ một số tính năng để xử lý và phân tích dữ liệu tài chính. Bạn có thể tải xuống từ phần Tải xuống hoặc cài đặt qua thư viện NuGet bằng lệnh sau:

PM> Install-Package Aspose.Finance

Hơn nữa, sự phát triển của OFX là điều đáng nói ở đây. OFX phiên bản 1 đến 1.6 dựa trên cú pháp SGML. Các phiên bản sau dựa trên các đặc tả XML. Để hiểu rõ hơn, chúng tôi sẽ tạo các tệp yêu cầu và phản hồi OFX ở cả hai định dạng (1.03 & 2.2).

Tạo yêu cầu OFX theo chương trình bằng C#

Giao thức OFX là một tiêu chuẩn để trao đổi dữ liệu tài chính hai chiều. Bạn có thể dễ dàng tạo yêu cầu bằng cách làm theo các bước bên dưới:

  1. Khởi tạo đối tượng Tài liệu yêu cầu Ofx
  2. Tạo phiên bản Đăng nhập khi yêu cầu
  3. Đặt các thuộc tính khác nhau
  4. Lưu yêu cầu OFX ở định dạng 1.03 và 2.2

Đoạn mã bên dưới giải thích cách tạo Yêu cầu OFX theo chương trình bằng ngôn ngữ C#:

// Khởi tạo đối tượng OfxRequestDocument
OfxRequestDocument document = new OfxRequestDocument();
document.SignonRequestMessageSetV1 = new SignonRequestMessageSetV1();

// Khởi tạo SignonRequest và thiết lập các thuộc tính khác nhau
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;

// Tạo yêu cầu OFX cho cả hai phiên bản
document.Save(outputDir + @"newOfxRequestBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxRequestBankStatement.sgml", OfxVersionEnum.V1x);

Tạo phản hồi OFX theo chương trình với C#

Bạn có thể tạo phản hồi OFX trong các ứng dụng dựa trên .NET theo lập trình bằng C#. Các bước sau giải thích quy trình tạo phản hồi OFX:

  1. Khởi tạo đối tượng lớp Tài liệu phản hồi Ofx
  2. Khai báo Đăng nhập khi phản hồi và đặt giá trị
  3. Lưu câu trả lời với Ofx Version Enum Enumeration

Đoạn mã sau cho biết cách tạo phản hồi OFX theo chương trình bằng C#:

// Khởi tạo đối tượng OfxResponseDocument
OfxResponseDocument document = new OfxResponseDocument();
document.SignonResponseMessageSetV1 = new SignonResponseMessageSetV1();

// Khởi tạo phiên bản 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";

// Lưu phản hồi trong đặc tả định dạng OFX 1.03 và 2.2
document.Save(outputDir + @"newOfxResponseBankStatement.xml", OfxVersionEnum.V2x);
document.Save(outputDir + @"newOfxResponseBankStatement.sgml", OfxVersionEnum.V1x);

Sự kết luận

Tiêu chuẩn OFX độc lập với nền tảng nên người dùng có thể chọn môi trường hệ thống hoặc nền tảng để sử dụng các tính năng xử lý tài chính. Nó cho phép các ngân hàng, công ty môi giới và các công ty xử lý tiền lương tạo ra các giải pháp phù hợp. Bạn có thể liên hệ qua Diễn đàn hỗ trợ miễn phí. Chúng tôi rất vui lòng được giúp đỡ bạn!

Xem thêm