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
Name | Type | Description |
---|---|---|
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 |
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ã respCode và message đị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