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ệu | Mô tả |
---|---|---|
errorCode | Integer | Mã lỗi trả về |
message | String | Mô tả chi tiết mã lỗi |
transaction | Object | Thông tin giao dịch |
transaction.amount | Integer | Số tiền giao dịch |
transaction.transferAmount | Integer | Số 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.transferStatus | string | Trạng thái giao dịch chuyển tiền (success, error) |
transaction.appotapayTransId | String | Mã giao dịch phía AppotaPay |
transaction.partnerRefId | String | Mã giao dịch phía Partner |
transaction.time | String | Thời gian giao dịch ở format: d-m-Y H:i:s |
signature | String | Chữ 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 Status | Trạng thái |
---|---|
success | Giao dịch thành công |
error | Giao 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.