minevn/dotman

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

@SinonCute

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.

@SinonCute

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.

Do task phức tên nên tạm ngưng. Giải pháp thay thế: #43

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