callback
API đối tác xây dựng sẽ nhận kết quả thanh toán từ Checkout SDK.
Khi và chỉ khi hoàn tất quá trình thanh toán thì Checkout SDK mới gọi API này để thông báo kết quả.
Merchant Server dựa vào kết quả này để thực hiện hoàn thành thanh toán cho người dùng.
Nếu sau 20 phút mà Merchant Server vẫn không nhận được kết quả, vui lòng gọi API getOrderStatus để tra cứu kết quả cuối cùng.
Đặc tả
Khi hoàn tất quá trình thanh toán, Checkout SDK Server callback cho Merchant Server theo CallbackURL . Merchant dùng PrivateKey để xác thực data do Checkout SDK Server POST qua.
Đối tác cần whitelist cho danh sách địa chỉ IP của Checkout SDK Server:
• 118.102.2.29
• 49.213.78.2
Dữ liệu nhận được từ callback
| Property | Type | Description |
|---|---|---|
| data | Object | Dữ liệu gởi về cho ứng dụng |
| mac | String | Thông tin xác thực của dữ liệu giao dịch, dùng PrivateKey được cung cấp để chứng thực dữ liệu giao dịch. Các dữ liệu sau được sử dụng để tạo mã hash cho thông tin:
|
| overallMac | String | Thông tin xác thực của toàn bộ dữ liệu, dùng PrivateKey được cung cấp để chứng thực toàn bộ dữ liệu. Các dữ liệu được sắp xếp theo thứ tự từ điển tăng dần để tạo mã hash cho thông tin |
- Đối tác vui lòng tham khảo cách tạo mã hash ở ví dụ phía dưới.
- Trường hợp đối tác sử dụng các dữ liệu như "method", "extradata", ..., vui lòng kiểm tra overallMac để đảm bảo tính đúng đắn của dữ liệu
Đối tác cần kiểm tra tính hợp lệ của mac/overallMac trong callback để đảm bảo kết quả của giao dịch. Lưu ý rằng amount ứng với orderId trong callback cần phải khớp với amount đối tác lưu tại hệ thống của đối tác.
Dữ liệu của trường data
| Property | Type | Description | Use to build mac |
|---|---|---|---|
| appId | String | Id định danh của mini app | true |
| orderId | String | Id của yêu cầu thanh toán đã tạo ở API createOrder | true |
| transId | String | Id của yêu cầu thanh toán từ hệ thống đối tác thanh toán | true |
| method | String | Phương thức thanh toán. Tham khảo mã tại đây | |
| transTime | Long | Thời gian giao dịch của đối tác thanh toán | |
| merchantTransId | String | Mã giao dịch của đối tác thanh toán | |
| amount | Long | Số tiền thanh toán | true |
| description | String | Thông tin đơn hàng | true |
| resultCode | Int | Trạng thái giao dịch của đơn hàng:
| true |
| message | String | Mô tả mã resultCode | true |
| extradata | String | Thông tin thêm Lưu ý: Dữ liệu này đã được encodeURIComponent | |
| paymentChannel | String | Giá trị bằng với trường method. Nên sử dụng method thay vì paymentChannel để lấy phương thức thanh toán. (Dùng cho mục đích tương thích cũ) |