Xử lý BOOKING JOURNEY

1. API commit

  • Khi gọi API Commit, sẽ được tính là bắt đầu một luồng đặt chỗ. Cần đảm bảo rằng hành trình đặt chỗ đã thực sự kết thúc trước khi tạo một luồng đặt chỗ mới.

  • API Commit chỉ có nhiệm vụ kích hoạt hai hành động: thanh toán và xuất vé. Không thể chỉ sử dụng API Commit để xác định kết thúc một hành trình đặt chỗ mà còn phải kết hợp với API booking-detail 3.API lấy chi tiết thông tin booking (mình sẽ chuyển sang sử dụng API final-booking-detail 5. API lấy chi tiết booking sau khi xuất vé theo khuyến cáo bên dưới trong document này).

2. API final booking detail

  • API final-detail-booking được sử dụng để xác định trạng thái của một booking thông qua các status sau:

    • Payment statuses

    • Issued statuses

  • API final-detail-booking này bổ sung thêm tính năng xử lý giữa các trường hợp thành công và thất bại. Cụ thể, trong trường hợp thành công (happy case), API sẽ ngay lập tức trả về kết quả. Trong trường hợp thất bại (failure case), API sẽ tự động thử lại để lấy trạng thái mới nhất của booking và trả về kết quả đến khi hết thời gian đặt sẵn.

  • Các trường hợp được coi là hành trình booking đã kết thúc và có thể bắt đầu một hành trình mới:

    • Thanh toán thất bại: paymentStatus = failed

    • Thanh toán thành công và xuất vé thành công: paymentStatus = Success issueStatus = Success

  • Các cases được consider là booking journey chưa kết thúc, cần hold và xử lý tiếp.

    • Thanh toán thành công: paymentStatus = Success and issueStatus != Success

3. Khuyến cáo

  • Khi gọi API Commit, có thể gặp một số thông báo lỗi ngoài bảng mã lỗi (ví dụ: lỗi không gọi được API, lỗi timeout, thời gian phản hồi quá lâu...). Người dùng cần sử dụng API final-booking-detail để xác định trạng thái của một booking.

  • Sau khi get-final-booking-detail nếu: paymentStatus = success issueStatus != success vẫn nên retry GET final-booking-detail để lấy được status đúng nhất.

Last updated