Webhook nhận thông tin thanh toán

Lưu ý

Url webhook trên hệ thống của người dùng phải có SSL

Nhận kết quả phản hồi từ cổng thanh toán VZpay, kiểm tra dữ liệu, cập nhật kết quả và phản hồi lại mã lỗi và mô tả mã lỗi (respCode và message) cho server VZpay nhận biết để kết thúc luồng.

Tạo webhook

GET {url_merchant}/IPN

Query Parameters

NameTypeDescription

paymentCode*

String

Mã kênh thanh toán. Truy cập My VZpay và chọn kênh thanh toán để lấy

referenceId*

String

ClientId của cổng thanh toán. Truy cập My VZpay và chọn kênh thanh toán để lấy

clientId*

String

Mã đơn hàng gửi sang VZpay khi khởi tạo đơn hàng

transactionId*

String

Mã giao dịch từ hệ thống VZpay, ví dụ: 202310285H930Q

amount*

String

Số tiền thanh toán

currency

String

Đơn vị tiền tệ VND.

orderInfo*

String

Thông tin mô tả nội dung thanh toán

paymentDate*

String

Ngày thực hiện thanh toán, định dạng yyyyMMdd

paymentMessage*

String

Mã phản hồi kết quả thanh toán

paymentStatus*

String

Trạng thái đơn hàng INIT, SUCCESS, FAIL, CANCEL

bankCode*

String

Mã ngân hàng. Ví dụ ngân hàng Sacombank là STB

signature*

String

Chữ ký điện tử. Sử dụng để kiểm tra tính toàn vẹn của dữ liệu trong quá trình chuyển từ VZpay về hệ thống người dùng. Cần kiểm tra đúng chữ ký khi bắt đầu xử lý yêu cầu (trước khi thực hiện các yêu cầu khác). Tạo chữ ký tại đây.

- Lưu ý:

  • Hệ thống người dùng thực hiện kiểm tra sự toàn vẹn của dữ liệu (signature) trước khi thực hiện các thao tác khác

  • Thao tác cập nhật/xử lý kết quả sau khi thanh toán được thực hiện tại URL này

  • Đây là URL server - call - server (Server VZpay gọi Server của người dùng)

  • Người dùng trả dữ liệu lại cho VZpay bằng mã respCodemessage định dạng JSON: Trong đó: respCode là mã lỗi tình trạng cập nhật trạng thái thanh toán của giao dịch tại đầu IPN của người dùng. message là mô tả mã lỗi của respCode

  • Cơ chế retry IPN: Hệ thống VZpay căn cứ theo respCode phản hồi từ người dùng để kết thúc luồng hay bật cơ chế retry respCode: 0, 2 là mã lỗi IPN của người dùng phản hồi đã cập nhật được tình trạng giao dịch. VZpay kết thúc luồng respCode: 26, 32, 33 hoặc IPN timeout là mã lỗi IPN người dùng không cập nhật được tình trạng giao dịch. VZpay bật cơ chế retry IPN Tổng số lần gọi tối đa: 10 lần Khoảng cách giữa các lần gọi lại: 5 phút

Last updated