Tổng quan quy trình tích hợp
Tích hợp ZaloPay vào một website hoặc phần mềm bán hàng đi qua bốn giai đoạn chính, tương tự phần lớn cổng thanh toán tại Việt Nam: đăng ký tài khoản merchant, tích hợp và kiểm thử trên môi trường sandbox, xin duyệt lên môi trường thật (production), và vận hành có giám sát sau khi go-live.
- Đăng ký tài khoản merchant với ZaloPay, cung cấp giấy phép kinh doanh và thông tin doanh nghiệp để được cấp mã định danh (App ID) và khoá bí mật (secret key) dùng cho việc ký xác thực request.
- Tích hợp trên môi trường sandbox (môi trường thử nghiệm, không phát sinh giao dịch tiền thật) theo tài liệu kỹ thuật ZaloPay cung cấp, thường theo chuẩn REST API.
- Kiểm thử đầy đủ các kịch bản: thanh toán thành công, thanh toán thất bại, khách huỷ giữa chừng, hoàn tiền (refund), và đặc biệt là kịch bản mạng chập chờn khiến webhook gửi trùng.
- Gửi hồ sơ xin duyệt lên môi trường production, thường kèm demo luồng thanh toán hoàn chỉnh để ZaloPay xác nhận tích hợp đúng chuẩn trước khi cho nhận tiền thật.
Luồng thanh toán hoạt động thế nào
Ở mức tổng quan, không đi vào chi tiết endpoint cụ thể (các chi tiết này nên tra trực tiếp tài liệu chính thức vì có thể thay đổi theo phiên bản API), một luồng thanh toán ZaloPay điển hình gồm ba bước:
- Website gọi API tạo đơn hàng thanh toán (create order) sang ZaloPay, gửi kèm số tiền và mã đơn hàng nội bộ. ZaloPay trả về một đường dẫn hoặc mã QR để khách quét thanh toán.
- Khách thanh toán qua ứng dụng ZaloPay trên điện thoại, xác nhận giao dịch bằng mật khẩu hoặc vân tay trong app của họ.
- ZaloPay gửi webhook về server của doanh nghiệp để báo kết quả giao dịch (thành công hoặc thất bại). Đây là bước doanh nghiệp cần xử lý cẩn thận nhất, vì đây mới là nguồn xác nhận đáng tin cậy, không phải trạng thái hiển thị tạm trên trình duyệt của khách.
Checklist trước khi go-live
- Webhook endpoint đã xác thực chữ ký từ ZaloPay, không nhận và tin bất kỳ request nào gửi tới địa chỉ đó.
- Xử lý được trường hợp webhook gửi trùng (do ZaloPay thử gửi lại khi chưa nhận phản hồi xác nhận kịp thời), tránh cộng tiền hai lần hoặc giao hàng hai lần.
- Có luồng đối soát (reconciliation) định kỳ, so khớp giữa dữ liệu giao dịch trên hệ thống nội bộ và báo cáo giao dịch từ ZaloPay, để phát hiện sớm nếu có sai lệch.
- Có cơ chế xử lý hoàn tiền (refund) rõ ràng, kể cả hoàn một phần, vì đây là tình huống phát sinh thực tế khi khách đổi trả hàng.
- Đã kiểm thử trên sandbox đầy đủ các kịch bản lỗi, không chỉ kịch bản thành công.
- Khoá bí mật (secret key) được lưu ở nơi an toàn (biến môi trường, kho quản lý secret), không hardcode thẳng vào mã nguồn hoặc commit lên kho mã công khai.
Thời gian và nhân lực cần chuẩn bị
Với một đội kỹ thuật đã quen làm tích hợp thanh toán, việc tích hợp một cổng như ZaloPay vào một hệ thống bán hàng đã có sẵn (đã có đơn hàng, có trạng thái đơn) thường mất khoảng một đến hai tuần làm việc, tính cả thời gian kiểm thử và chờ ZaloPay duyệt hồ sơ lên production. Với đội chưa từng làm tích hợp cổng thanh toán nào, nên cộng thêm thời gian học tài liệu và làm quen với khái niệm webhook, chữ ký xác thực. Không nên cam kết mốc thời gian cụ thể với khách hàng hoặc ban lãnh đạo trước khi đội kỹ thuật đã đọc qua tài liệu chính thức của ZaloPay, vì quy trình duyệt hồ sơ production do ZaloPay xử lý, doanh nghiệp không chủ động hoàn toàn được thời gian này.