0
0
Lập trình
TT

Hướng Dẫn Xử Lý Lỗi Timeout (504) Khi Giao Dịch Trực Tuyến: Câu Chuyện Về Việc 'Hack' 500K Trên Sàn Giao Dịch S

Đăng vào 3 ngày trước

• 4 phút đọc

Lưu ý: Bài viết này mang tính cảnh báo. Việc lợi dụng lỗi nêu trên để gây thiệt hại cho cá nhân hoặc tổ chức là vi phạm pháp luật, và tác giả bài viết không chịu trách nhiệm về những hành vi sai trái.

1. Câu Chuyện Về Việc 'Hack' 500K Trên Sàn Giao Dịch S

Mỗi năm, vào dịp đặc biệt như 11/11 hoặc 12/12, nhiều người thường tranh thủ săn sale để mua sắm. Hôm 12/12/2023, tôi đã đặt một đơn hàng trên sàn S với tổng giá trị hơn 500k, thanh toán qua thẻ tín dụng của VPBank. Sau khi chọn hàng và phương thức thanh toán, tôi đã nhập OTP được gửi qua tin nhắn. Mọi thứ diễn ra bình thường cho đến khi tôi nhận được thông báo SESSION TIMEOUT sau vài phút chờ đợi.

Ban đầu, tôi nghĩ rằng tôi sẽ phải thực hiện lại thanh toán. Tuy nhiên, khi quay lại ứng dụng, tôi bất ngờ thấy đơn hàng của mình đã ở trạng thái thanh toán thành công. Là người làm trong lĩnh vực công nghệ tài chính, tôi tự hỏi làm sao điều này có thể xảy ra. Sau khi mua hàng vào lúc 9:25AM, tôi nhận tin nhắn trừ tiền từ ngân hàng vào lúc 9:28AM, nhưng ngay sau đó, ngân hàng lại nhắn tin hủy giao dịch và hoàn lại tiền.

Hàng vẫn tiếp tục được giao và tôi đã xác nhận đã nhận hàng mà không thấy bất kỳ sự phản hồi nào từ sàn S. Tôi quyết định mở case để thông báo lỗi cho họ, nhưng phản hồi mà tôi nhận được khá mơ hồ sau khi họ yêu cầu nhiều thông tin từ tôi.

2. Tìm Hiểu Về Xử Lý Lỗi Timeout (504)

Như đã nêu ở phần trước, tôi sẽ giải thích về lỗi Timeout trong giao dịch, một trường hợp thường gặp trong các hệ thống giao dịch tài chính.

Tại Sao Cần Phải Xử Lý Lỗi Timeout?

Nhiều người cho rằng chỉ cần biết kết quả giao dịch là thành công hay thất bại đã đủ. Tuy nhiên, trong thực tế, tình trạng TIMEOUT có thể gây ra phiền phức, nhất là trong các giao dịch quan trọng. Dưới đây là một số nguyên nhân chính dẫn đến trạng thái TIMEOUT:

  1. Mạng quá tải: Đôi khi, nhà cung cấp dịch vụ mạng không thể đảm bảo kết nối.
  2. Server quá tải: Nhiều người truy cập cùng lúc có thể khiến server không xử lý kịp.
  3. Code không tối ưu: Nếu mã lập trình không hiệu quả, server sẽ xử lý lâu hơn.
  4. Thời gian chờ quá ngắn: Một số ứng dụng có thể thiết lập thời gian chờ ngắn dẫn đến TIMEOUT.
  5. Dữ liệu không chính xác: Dữ liệu thử nghiệm và dữ liệu thực tế có thể khác nhau nhiều.

Phân Biệt Giữa TIMEOUT Thành Công và TIMEOUT Thất Bại

Trong giao dịch tài chính, rất quan trọng để phân biệt giữa TIMEOUT thành công và TIMEOUT thất bại. Trong trường hợp của tôi, dù giao dịch không thành công, nhưng sàn S lại ghi nhận là thành công, điều này rất có thể dẫn đến thiệt hại cho người dùng.

Giải Pháp Cho Vấn Đề Timeout

Để giảm thiểu rủi ro do timeout, dưới đây là một số cách xử lý hiệu quả:

  • Kiểm Tra Trạng Thái Giao Dịch: Ngay khi gặp TIMEOUT, cách nhanh nhất là kiểm tra lại trạng thái giao dịch qua API để biết kết quả chính xác.

    • Nhược điểm: Nếu bên thanh toán chưa xử lý xong, bạn có thể gặp khó khăn trong việc xác nhận.
  • Tạo Job Quét Timeout: Bạn có thể để lại trạng thái Timeout và kiểm tra lại khi tình hình bớt tải hơn.

    • Nhược điểm: Có thể gây nhầm lẫn cho người dùng nếu không thông báo rõ ràng.

Việc lựa chọn cách xử lý phụ thuộc vào đặc thù của sản phẩm và hệ thống. Nếu ai có thêm phương pháp hay, hãy chia sẻ với tôi trong phần bình luận dưới bài viết.

Kết Luận

Bài viết này mong muốn chia sẻ kinh nghiệm và kiến thức về vấn đề xử lý lỗi Timeout trong giao dịch tài chính. Tôi hy vọng rằng thông tin trong bài viết sẽ hữu ích cho những ai đang làm việc trong lĩnh vực này. Chúc bạn có một năm mới tràn đầy may mắn và ít lỗi bug khi lập trình.

Lưu ý lần nữa: Việc khai thác lỗi gây thiệt hại cho tổ chức, cá nhân là vi phạm pháp luật và có thể dẫn đến hậu quả pháp lý nghiêm trọng.

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào