Nhảy tới nội dung
Phiên bản: Lastest

Xử lý kết quả thanh toán

Sau khi khách hàng hoàn tất quá trình thanh toán, hệ thống AppotaPay thông báo kết quả cho hệ thống của đối tác qua IPN

Lưu ý
  • Cần kiểm tra kĩ thông số trường status, amount & signature phải hợp lệ trước khi xác nhận giao dịch thành công
  • Nên gọi api check trạng thái giao dịch để đảm bảo kết quả được cập nhật chính xác nhất
  • Sử dụng tham số signature để kiểm tra tính toàn vẹn của dữ liệu nhận được, phía đối tác tạo ra signature từ dữ liệu nhận được từ AppotaPay sau đó so sánh với tham số signature AppotaPay gửi sang.
  • IPN sẽ trả khi giao dịch có trạng thái cuối: success, void, error

EndPoint

POST URL-IPN-PARTNER

Header Params

Tham sốYêu cầuKiểu dữ liệuMô tả
Content-TyperequiredStringGiá trị: application/json
{
"Content-Type": "application/json"
}

Request Params

Tham sốYêu cầuKiểu dữ liệuMô tả
datarequiredStringThông tin giao dịch ở dạng base64encode & json_encode
signaturerequiredStringHMAC_SECRETSHA256(data,SECRET_KEY)

Giải mã dữ liệu

  1. Đối tác sử dụng hàm Base64Decode để giải mã dữ liệu ở dạng string
  2. Sử dụng hàm JSON_Decode để giải mã giữ liệu lần 2 ở dạng json
Tham sốKiểu dữ liệuMô tảLưu ý
transactionObjectThông tin giao dịch
transaction.transaction_idStringMã giao dịch AppotaPay
transaction.order_idStringMã đơn hàng
transaction.partner_ref_idStringMã tham chiếu Partner
transaction.order_infoStringThông tin đơn hàng
transaction.statusStringTrạng thái GD

pending = Giao dịch đang chờ xử lý.

processing = Giao dịch đang tiến hành xử lý.

success = Giao dịch thành công.

error = Giao dịch thất bại.

void = Giao dịch hoàn tiền.

transaction.amountIntegerSố tiền thanh toán
transaction.bank_codeStringMã bank *APPOTA: payment method = QR
transaction.bank_typeString*EWALLET: payment method = QR
transaction.error_codeIntegerMã lỗi giao dịch (Lưu ý: chỉ trả về trong trường hợp status != success)
transaction.error_messageStringThông tin chi tiết trạng thái giao dịch (Lưu ý: chỉ trả về trong trường hợp status != success)
transaction.payment_methodStringPhương thức thanh toán
transaction.created_atStringThời gian tạo giao dịch (định dạng chuẩn ISO_8601)
transaction.paid_atStringThời gian thanh toán (định dạng chuẩn ISO_8601)
versionStringVersion IPN
TimestringThời gian thanh confirm (định dạng chuẩn ISO_8601)

Thành công

HTTP Code: 200

Body: {"status": "ok"}

Thất bại

HTTP Status Code != 200

Tham sốKiểu dữ liệuMô tả
error_codeStringMã lỗi
error_messageStringChi tiết mã lỗi