Nhảy tới nội dung

API đối tác xây dựng sẽ nhận kết quả thanh toán từ Checkout SDK.

Khi và chỉ khi đối tác thanh toán đã thu tiền khách hàng thành công 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.

Đặc tả

Nếu trừ tiền người dùng thành công, Checkout SDK Server callback cho Merchant Server theo CallbackURL . Merchant dùng PrivateKey để xác thực data do Checkout SDK Server POST qua.

Dữ liệu nhận được từ callback

PropertyTypeDescription
dataObjectDữ liệu giao dịch gọi về cho ứng dụng
macStringThông tin chứng thực của đơn hàng, dùng PrivateKey được cung cấp để chứng thực đơn hàng

Dữ liệu của trường data

PropertyTypeDescriptionUse to build mac
appIdStringId định danh của mini apptrue
orderIdStringId của yêu cầu thanh toán đã tạo ở API createOrdertrue
transIdStringId của yêu cầu thanh toán từ hệ thống đối tác thanh toántrue
methodStringPhương thức thanh toán
transTimeLongThời gian giao dịch của đối tác thanh toán
merchantTransIdStringMã giao dịch của đối tác thanh toán
amountLongSố tiền thanh toántrue
descriptionStringThông tin đơn hàngtrue
resultCodeIntTrạng thái giao dịch của đơn hàng:
  • 1 : Thành công
  • -1 : Thất bại
true
messageStringMô tả mã resultCodetrue
extradataStringThông tin thêm

Kiểm tra callback hợp lệ

data =
'appId={appId}&amount={amount}&description={description}&orderId={orderId}&message={message}&resultCode={resultCode}&transId={transId}';
reqmac = HMAC('HmacSHA256', privateKey, data);
if (reqmac == mac) {
// callback hợp lệ
} else {
// callback không hợp lệ
}
  • HmacSHA256: Là phương thức bảo mật HmacSHA256
  • PrivateKey: Do Checkout SDK cung cấp cho ứng dụng lúc đăng ký ứng dụng
  • Data: Là dữ liệu do Checkout SDK request tới callback API của Merchant khi đối tác thanh toán đã thu tiền khách hàng thành công.

Thông tin AppServer trả về cho Checkout SDK Server khi nhận callback

PropertyTypeDescription
returnCodeintCó các giá trị sau:
  • 1 : thành công
  • 2 : trùng mã giao dịch transId (đã cung cấp dịch vụ cho người dùng trước đó)
  • != : thất bại (không callback lại)
returnMessageStringMô tả chi tiết mã trạng thái