OFX, Open Financial Exchange ไฟล์ใช้สำหรับแลกเปลี่ยนข้อมูลทางการเงิน มันถูกใช้ในไคลเอนต์เซิร์ฟเวอร์รวมถึงระบบบนคลาวด์ ดังนั้นรูปแบบการตอบสนองคำขอจึงใช้สำหรับการแลกเปลี่ยนข้อมูลทางการเงิน ให้เราเรียนรู้คำขอและการตอบสนอง OFX:
- แยกวิเคราะห์คำขอและตอบกลับ OFX – การติดตั้ง C# API
- สร้างคำขอ OFX โดยทางโปรแกรมโดยใช้ C#
- สร้างการตอบสนอง OFX โดยทางโปรแกรมด้วย C#
แยกวิเคราะห์คำขอและตอบกลับ OFX – การติดตั้ง C# API
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 เป็นมาตรฐานสำหรับการแลกเปลี่ยนข้อมูลทางการเงินแบบสองทาง คุณสามารถสร้างคำขอได้อย่างง่ายดายโดยทำตามขั้นตอนด้านล่าง:
- เริ่มต้นวัตถุ เอกสารคำขอ Ofx
- สร้างอินสแตนซ์ 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 โดยทางโปรแกรมด้วย C#
คุณสามารถสร้างการตอบสนอง OFX ในแอปพลิเคชันที่ใช้ .NET โดยทางโปรแกรมโดยใช้ C# ขั้นตอนต่อไปนี้จะอธิบายกระบวนการสร้างการตอบกลับ OFX:
- เริ่มต้น เอกสารตอบกลับ Ofx วัตถุคลาส
- ประกาศ Sign on Response และตั้งค่า
- บันทึกการตอบสนองด้วย Offx 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 ไม่ขึ้นกับแพลตฟอร์ม ดังนั้นผู้ใช้จึงสามารถเลือกสภาพแวดล้อมของระบบหรือแพลตฟอร์มเพื่อใช้คุณสมบัติการประมวลผลทางการเงินได้ ช่วยให้ธนาคาร นายหน้า และบริษัทประมวลผลเงินเดือนสามารถสร้างโซลูชันที่ปรับให้เหมาะกับแต่ละบุคคลได้ คุณสามารถติดต่อผ่าน ฟอรัมสนับสนุนฟรี เรายินดีที่จะช่วยเหลือคุณ!