Cập nhật API MBBank
Closed this issue · 6 comments
MBBank cập nhập API gây ra log lỗi sau:
[20:18:15] [Craft Scheduler Thread - 13100 - DotMan/WARN]: [DotMan] Đăng nhập vào ngân hàng thất bại: Thông tin đăng nhập sai hoặc ngân hàng đang bảo trì?
[20:18:15] [Craft Scheduler Thread - 13100 - DotMan/WARN]: [DotMan] Plugin DotMan v1.6-premium generated an exception while executing task 16366
java.lang.IllegalStateException: Đăng nhập thất bại: Đã có APP MBBank phiên bản mới. Vui lòng cập nhật APP MBBank trên Chợ ứng dụng để tiếp tục giao dịch. (mã lỗi: GW930)
at net.minevn.dotman.banking.providers.MBBankBP.login(MBBankBP.kt:105) ~[?:?]
at net.minevn.dotman.banking.Banking.login(Banking.kt:186) ~[?:?]
at net.minevn.dotman.banking.providers.MBBankBP.fetch(MBBankBP.kt:120) ~[?:?]
MBBank đã chuyển sang sử dụng wasm để encrypt data từ lúc client login và gửi nó đến server. MBBank cho tải file wasm ở client và dùng Go để chạy nó, cách duy nhất hiện tại là chạy file đó ở plugin
Hiện tại có các phương án sau:
- 1: Chạy wasm bên trong DotMan
MBBank cho tải file wasm ở client và dùng Go để chạy nó, cách duy nhất hiện tại là chạy file đó ở plugin
- 2: Chạy web scraper (headless browser) bên trong DotMan
- 3: Phía MineVN cung cấp API, API sẽ chạy headless browser để lấy token đăng nhập
Trong đó phương án 1 & 2 chi phí quá lớn (tải dev & dung lượng plugin & xử lý quá nhiều), phương án 3 thì có code sẵn bên payment service và không cần thêm thư viện vào plugin nên anh đề xuất chọn phương án 3.
Em xem xét phương án 1 & 2, nếu dung lượng phát sinh thêm <1MB thì có thể làm, còn không thì mình làm phương án 3, phát triển tiếp API MBBank trước mình làm nha.
Hiện tại có các phương án sau:
- 1: Chạy wasm bên trong DotMan
MBBank cho tải file wasm ở client và dùng Go để chạy nó, cách duy nhất hiện tại là chạy file đó ở plugin
- 2: Chạy web scraper (headless browser) bên trong DotMan
- 3: Phía MineVN cung cấp API, API sẽ chạy headless browser để lấy token đăng nhập
Trong đó phương án 1 & 2 chi phí quá lớn (tải dev & dung lượng plugin & xử lý quá nhiều), phương án 3 thì có code sẵn bên payment service và không cần thêm thư viện vào plugin nên anh đề xuất chọn phương án 3.
Em xem xét phương án 1 & 2, nếu dung lượng phát sinh thêm <1MB thì có thể làm, còn không thì mình làm phương án 3, phát triển tiếp API MBBank trước mình làm nha.
Nếu anh muốn dưới 1MB thì phương án 3 nha vì file wasm đã rất nặng + cách access nó là de obfuscate ra nên code như tô cháo lòng, em thấy việc mình sử dụng server side sẽ tiết kiệm cũng như đảm bảo up-to-date.
Khởi động lại task: Chạy API ở phía MineVN để lấy token đăng nhập
Bankapi viết bằng thư viện KTor: https://github.com/minevn/bank-api