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

Instant Payment Notification

Partner xây dựng một URL IPN để nhận kết quả thanh toán. AppotaPay thực hiện request kèm params đến IPN của Partner khi có giao dịch thanh toán.

IPN

Lưu ý

Kiểm tra kĩ thông số các trường amount & signature

cảnh báo

Mỗi giao dịch đều có một mã transactionId duy nhất. Hãy đảm bảo rằng mỗi giao dịch chỉ được xử lý một lần duy nhất dựa trên mã này.

Method: POST

Header:

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

Dữ liệu truyền sang IPN URL

Đối tác sử dụng hàm JSON_Decode để giải mã dữ liệu ở dạng json trước khi thực hiện kiểm tra

Tham sốKiểu dữ liệuMô tả
apiKeyStringMã api key
partnerCodeStringMã số đối tác
billCodeStringMã đơn hàng
amountIntegerSố tiền thanh toán
bankAccountNumberStringSố tài khoản
bankAccountNameStringTên tài khoản
bankCodeStringMã ngân hàng
requestTimeIntegerThời gian send IPN
transactionTimeIntegerThời gian thanh toán giao dịch
transactionIdStringMã giao dịch
extraDataStringThông tin thêm
versionStringPhiên bản hiện tại IPN
memoStringNội dung chuyển khoản
signatureStringChữ ký các tham số trả về từ API, các tham số được đưa vào chữ ký theo thứ tự bao gồm: amount + apiKey + bankAccountName + bankAccountNumber + bankCode + billCode + extraData + memo + partnerCode + requestTime + transactionId + transactionTime + version (xem thêm phần cách tạo signature)

Ví dụ

Response

{
"apiKey": "oMhJpkz7K6HDcR6S",
"partnerCode": "TEST",
"billCode": "123456",
"amount": 100000,
"bankAccountNumber": "902098898909",
"bankAccountName": "NGUYEN VAN A",
"bankCode": "WOORIBANK",
"requestTime": 1577811600,
"transactionTime": 1577811600,
"transactionId": "AP1212121212",
"extraData": "test",
"version": "1.0",
"memo": "test chuyen tien",
"signature": "b10294bae53e89919b3efd62a763bf3228e260ef1a329..."
}

Thông tin từ IPN trả về

StatusCode (String)StatusDetail (String)
00Success
11Signature not match
15Duplicate transactionId
16Unknow Error
99Timeout

Ví dụ

{
"statusCode": 00,
"statusDetail": "Success"
}

Response format

  • Khi xác nhận giao dịch thành công thông qua IPN, đối tác cần phản hồi lại cho AppotaPay xác nhận đã nhận được kết quả
  • Trường hợp phía Partner không phản hồi lại thành công, phía AppotaPay sẽ phản hồi thêm tối đa 3 lần, mỗi lần cách nhau 5 phút
  • Phản hồi được coi là thành công khi HTTP code = 200

Example success response

HTTP Code: 200

Body:

{
"statusCode": 00,
"statusDetail": "Success"
}