Truy cập Dịch vụ thông điệp
Hướng dẫn truy cập thông điệp
Dịch vụ thông điệp là một dịch vụ đẩy chủ động (Push service) được phát hành bởi nền tảng phát triển PandaPon, nội dung được đẩy hiện nay chỉ có các thông tin liên quan đến đơn đặt hàng. Dựa trên dịch vụ đẩy này, các ứng dụng thu thập dữ liệu phân phối sẽ không cần kiểm tra bằng cách liên tục gọi API nữa, nền tảng sẽ chủ động đẩy thông tin kinh doanh cho các nhà phát triển khi thông tin tương ứng với dữ liệu kinh doanh thay đổi, các nhà phát triển chỉ cần đăng ký tiếp nhận thông điệp và phân tích nội dung thông điệp. Điểm cần chú ý, vì thông điệp gửi đi không thể đảm bảo trật tự, một số thông điệp cần phải đồng bộ hóa dữ liệu thông qua giao diện truy vấn OpenAPI. Truy cập thông điệp có thể giảm tần suất gọi API và giảm áp lực cho hệ thống.
Các bước đăng ký tiếp nhận thông điệp
Vị trí: bảng điều khiển ứng dụng mở - dịch vụ tin nhắn
Các bước thực hiện: Nhà phát triển có thể cấu hình một địa chỉ (URL) gọi lại (callback) trên nền tảng mở để tiếp nhận yêu cầu thông điệp.
Đăng nhập vào nền tảng mở PandaPon bằng tài khoản nhà phát triển.
Chọn giao diện điều khiển;
Chọn dịch vụ thông điệp
Điền Địa chỉ gọi lại, chọn Verify (xác minh), nếu nhận lại kết quả là mã trạng thái HTTP 200 thì sẽ hiển thị "Xác minh thành công".
Chọn "Lưu".
Định dạng thông điệp
messageType:Kiểu thông điệp
messageBody:Nội dung Thông điệp
messagePlatform:Kênh thông điệp: 0 - Nền tảng taobao; 1 - Nền tảng 1688
timestamp:Thời gian đẩy tin nhắn
Mô tả cơ chế
Địa chỉ gọi lại
Mô tả: Các nhà phát triển cần cung cấp một kênh nhận thông điệp, trong đó hình thức nhận là một yêu cầu HTTPS POST.
Để sử dụng dịch vụ thông điệp, cần chuẩn bị một giao diện gọi lại để tiếp nhận thông điệp, vui lòng tuân thủ các yêu cầu sau đây:
Vui lòng sử dụng địa chỉ gọi lại của giao thức HTTPS.
Sau khi nhận được thông điệp hãy trả về mã trạng thái HTTP 200 để xác nhận đã nhận được thông điệp.
Thời gian chờ (Timeout) là 1000MS.
Thử lại và cách xử lý
Sau khi thất bại, thông điệp sẽ được gửi lại trong vòng nửa tiếng sau đó, tối đa có thể thử lại 5 lần.
Nếu hệ thống bị gián đoạn và thử lại quá 5 lần, vui lòng sử dụng các giao diện truy vấn tương ứng để lấy lại dữ liệu.
Chữ ký thông điệp
Mô tả: Dữ liệu sẽ được truyền tải dưới dạng văn bản thô. Vì lý do an toàn, nền tảng mở sẽ xử lý chữ ký tóm lược trên nội dung thông điệp. Kết quả chữ ký sẽ được đặt trong trường Authorization của tiêu đề yêu cầu (request headers) POST. Thuật toán chữ ký như sau:
##Tham số Yêu cầu chữ ký
Base = "{messageBody}"
Secret = "{AccessSecret}"
#Thuật toán Chữ ký
HMAC-SHA256
#Tạo chữ ký
Authorization = HEX_ENCODE(HMAC-SHA256(Base, Secret));
Đoạn code Java Chữ ký tham khảo:
Giải quyết các đề nghị
Sau khi nhận được một thông điệp, cần xác minh chữ ký để ngăn chặn các cuộc tấn công từ bên ngoài, khi tạo chữ ký không được chuyển đổi hay sửa đổi nội dung thông điệp ban đầu, nếu không việc xác minh chữ ký sẽ thất bại.
Lưu ý: MessageBody là kiểu chuỗi (String)
Do thời gian phản hồi của giao diện bị giới hạn (trong vòng 1000 mili giây), có thể lưu trữ thông điệp sau khi nhận được vào hàng đợi không đồng bộ để thực hiện xử lý kinh doanh.