Xác thực URL thông báo trả về
Khi khách hàng thanh toán thành công, VNPay sẽ chuyển hướng khách hàng đến URL thông báo trả về (vnp_ReturnUrl) mà bạn đã cung cấp.
Xác thực URL trả về
import { VerifyReturnUrl } from 'vnpay';
/* ... */
const verify: VerifyReturnUrl = vnpay.verifyReturnUrl(req.query);
Thuộc tính của đối tượng VerifyReturnUrl
Thông tin sau khi xác thực và được trả về từ VNPay:
thông tin
Tương tự như các thuộc tính của đối tượng VerifyIpnCall
Cách sử dụng
Sử dụng Logger
- Tương tự như khi tạo URL thanh toán, bạn có thể sử dụng logger để ghi log thông tin xác thực URL trả về xem tại đây.
Với Express MVC
Các bước xác thực URL trả về trong Express với MVC:
- Tạo một route để xử lý URL trả về
- Xác thực URL trả về
- Xử lý thông tin trả về từ VNPay
controllers/payment.controller.ts
// Route xử lý URL trả về
// Thay vì hiển thị văn bản, bạn có thể render một template hoặc chuyển hướng khách hàng đến trang cần thiết
app.get('/vnpay-return', (req, res) => {
let verify: VerifyReturnUrl;
try {
// Sử dụng try-catch để bắt lỗi nếu query không hợp lệ hoặc thiếu dữ liệu
verify = vnpay.verifyReturnUrl(req.query);
if (!verify.isVerified) {
return res.send('Xác thực tính toàn vẹn dữ liệu thất bại');
}
if (!verify.isSuccess) {
return res.send('Đơn hàng thanh toán thất bại');
}
} catch (error) {
return res.send('Dữ liệu không hợp lệ');
}
// Kiểm tra thông tin đơn hàng và xử lý tương ứng
// Chỉ xử lý liên quan đến UI ở đây, không xử lý logic kinh doanh
// Logic kinh doanh quan trọng phải được xử lý ở phía server bằng IPN
return res.send('Xác thực URL trả về thành công');
});