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

Xử lý kết quả giao dịch pending

Đối với các giao dịch AppotaPay trả về mã errorCode: 35 - Giao dịch pending, sau khi AppotaPay nhận được kết quả từ phía Ngân hàng sẽ callback lại cho Partner thông qua IPN URL(Partner đã gửi qua AppotaPay để đăng ký). Server phía đối tác kiểm tra tính toàn vẹn dữ liệu qua tham số signature sau đó cập nhật lại trạng giao dịch trên hệ thống.

Method: POST

Header:

{
"Content-Type": "application/json"
}

Tham số

Tham sốKiểu dữ liệuMô tả
errorCodeIntegerMã lỗi trả về
messageStringMô tả chi tiết mã lỗi
transactionObjectThông tin giao dịch
transaction.amountIntegerSố tiền giao dịch
transaction.transferAmountIntegerSố tiền thực tế chuyển cho người nhận, sẽ ít hơn nếu phí chuyển tiền người nhận chịu.
transaction.transferStatusstringTrạng thái giao dịch chuyển tiền (success, error)
transaction.appotapayTransIdStringMã giao dịch phía AppotaPay
transaction.partnerRefIdStringMã giao dịch phía Partner
transaction.timeStringThời gian giao dịch ở format: d-m-Y H:i:s
signatureStringChữ ký các tham số truyền lên API, các tham số được đưa vào chữ ký theo thứ tự bao gồm: amount + appotapayTransId + errorCode + partnerRefId + time + transferAmount + transferStatus (xem thêm phần cách tạo signature)

Ví dụ

Request

{
"errorCode": 0,
"message": "Thành công",
"transaction": {
"amount": 50000,
"transferAmount": 50000,
"transferStatus": "success",
"appotapayTransId": "AP19992831832",
"partnerRefId": "615fb520099dq4",
"time": "27-10-2021 10:03:59"
},
"signature": "681b80d9dff4bc8d17c8b07ee3ef0fb8e3f1a12148184507c7d80a0bee6efe6d"
}

signature = HMAC_SHA256(data, secretKey)

data sign đc sắp xếp theo thứ tự khóa tăng dần, ví dụ: data: amount={amount}&appotapayTransId={appotapayTransId}&errorCode={errorCode}&partnerRefId={partnerRefId}&time={time}&transferAmount={transferAmount}&transferStatus={transferStatus}

Response

HTTP Code: 200
Body: {"status": "ok"}

Request được xác định thành công khi nhận được mã HTTP Code = 200, request không thành công sẽ được gửi lại tối đa 3 lần, mỗi lần cách nhau 5 phút.

Trạng thái giao dịch.

Sử dụng tham số transferStatus để xác định trạng thái của giao dịch

Transfer StatusTrạng thái
successGiao dịch thành công
errorGiao dịch không thành công

Kiểm tra tính toàn vẹn dữ liệu

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.