Chuyển tới nội dung chính

VNPay IPN processing notification

Lưu ý:

Mục đích của webhook này là cung cấp cho đối tác đầy đủ thông tin cần thiết để hoàn tất hồ sơ kiểm thử trong môi trường Sandbox (SIT Test) theo yêu cầu của VNPay.

Để cập nhật trạng thái đơn hàng, đối tác vui lòng sử dụng callback.

Webhook VNPay IPN processing notification được thiết kế để thông báo cho đối tác về kết xử lý IPN từ VNPay. Khi VNPay gửi một IPN đến máy chủ của chúng tôi, chúng tôi sẽ xác thực thông tin giao dịch, sau đó kích hoạt webhook này để chuyển tiếp các thông tin sau đến đối tác:

  • Kết quả xử lý IPN: Trạng thái thành công hoặc lỗi sau khi xử lý IPN.
  • Dữ liệu nhận được từ IPN: Thông tin chi tiết về giao dịch mà VNPay gửi trong IPN.
  • Địa chỉ IP của IPN: Địa chỉ IP của máy chủ VNPay gửi yêu cầu IPN.

Request

Endpoint của đối tác phải có thể truy cập được bởi máy chủ Zalo Mini App.

  • Phương thức: POST
  • Content-Type: application/json

Cấu trúc dữ liệu:

PropertyTypeDescription
ipnResponseDataObjectDữ liệu trả về cho IPN
ipnReceivedDataObjectDữ liệu nhận được từ IPN
ipnRequestIPStringĐịa chỉ IP gọi vào IPN

Ví dụ:

{
"ipnResponseData": {
"Message": "Confirm Success",
"RspCode": "00"
},
"ipnReceivedData": {
"vnp_BankCode": "NCB",
"vnp_PayDate": "20250305143258",
"vnp_TransactionNo": "14831393",
"vnp_TmnCode": "LPU8PRXE",
"vnp_SecureHash": "5702ed898482dc3e78c9fce63dcb41f59645c0c1284a2162a798ec9e9f64e24c6341eef6d4d56e899fd4b708b533f1405e11a12db4b854cbecc12019c7f2f7ee",
"vnp_OrderInfo": "thanh+toan+don+hang+1+the+cao+++menh+gia+20+000d",
"vnp_TxnRef": "250305_1432585721468908815683379030181",
"vnp_Amount": "2000000",
"vnp_CardType": "ATM",
"vnp_TransactionStatus": "00",
"vnp_ResponseCode": "00"
},
"ipnRequestIP": "203.205.17.226"
}

Response

Đối tác nên trả về phản hồi như sau:

  • Content-Type: application/json

Cấu trúc dữ liệu:

PropertyTypeDescription
returnCodeintCó các giá trị sau:
  • 1 : thành công
  • Giá trị khác: thất bại
returnMessageStringMô tả chi tiết mã trạng thái

Ví dụ:

{
"returnCode": 1,
"returnMessage": "Success"
}