Zalopay QR đa năng
Tổng quan
ZaloPay QR Đa năng là một giải pháp thanh toán do Zalopay phát triển, cho phép người dùng thanh toán qua ứng dụng Zalopay hoặc các ứng dụng ngân hàng khác chỉ bằng một mã QR duy nhất, kết hợp với công nghệ VietQR.
Giải pháp này giúp các doanh nghiệp (merchant) tối ưu quy trình chấp nhận thanh toán, quản lý giao dịch hiệu quả và tiết kiệm chi phí vận hành.
Đối với người dùng, đây là phương thức thanh toán tiện lợi, an toàn và đa dạng, có thể dùng cho nhiều loại hình giao dịch khác nhau, từ mua sắm bán lẻ đến dịch vụ vận tải.
Lợi ích chính
Cho Doanh nghiệp:
- Tối ưu chi phí: Không cần nhiều hệ thống quản lý cho các mã QR khác nhau, giúp giảm chi phí đầu tư cơ sở hạ tầng.
- Quản lý hiệu quả: Hệ thống quản lý tích hợp thông báo giao dịch tự động, lưu trữ minh bạch, hỗ trợ hoàn tiền và đối soát dễ dàng.
- Tăng doanh thu: Khả năng chấp nhận thanh toán đa dạng giúp tiếp cận nhiều khách hàng hơn, từ đó gia tăng doanh số.
- Nâng cao trải nghiệm khách hàng: Cung cấp trải nghiệm thanh toán liền mạch và tiện lợi.
Cho Khách hàng:
- Tiện lợi và đa dạng: Thanh toán chỉ bằng một mã QR bằng nhiều ứng dụng khác nhau.
- An toàn: Hệ thống thanh toán đạt tiêu chuẩn ISO/IEC 27001, với cơ chế bảo mật cao, bảo vệ thông tin cá nhân và tài chính.
Lĩnh vực ứng dụng phổ biến
Zalopay QR Đa năng được áp dụng trong nhiều ngành, bao gồm bán lẻ, ăn uống, sàn thương mại điện tử và đặc biệt là các dịch vụ vận tải giao nhận.
Các doanh nghiệp đã triển khai Zalopay QR đa năng cho hệ thống cửa hàng bán lẻ và dịch vụ lớn trên cả nước, đặc biệt là các chuỗi mua sắm, ăn uống như: Viettel Store, Mykingdom, Decathlon, Coolmate, Lee&Tee, Sukiya, Tous les Jours, KFC, Pepper Lunch, Papa’s Chicken, Bonchon Chicken…
Các doanh nghiệp hoạt động dịch vụ vận tải, giao nhận đã triển khai Zalopay Qr đa năng cho giải pháp thu hộ đơn hàng (POD) như: Ahamove và BEST Express, BE ...
Phương thức triển khai
1. Doanh nghiệp kinh doanh offline
Cửa hàng không sử dụng máy POS: Doanh nghiệp không cần tích hợp kỹ thuật, Zalopay sẽ cung cấp mã Zalopay QR Đa năng đặt tại quầy để khách hàng thanh toán.Cửa hàng có sử dụng máy POS: Doanh nghiệp tích hợp kỹ thuật thông qua các APIs để tạo mã QR đa năng và hiển thị ngay trên máy POS
2. Doanh nghiệp kinh doanh online
Trên máy tính/laptop: Doanh nghiệp tích hợp kỹ thuật thông qua các APIs để tạo mã QR đa năng và tùy chọn hệ thống hay Cổng thanh toán Zalopay để hiển thị mã QR đa năng trên màn hình để người dùng quét thanh toán bằng ứng dụng Zalopay hoặc ngân hàng.Trên thiết bị di động: Doanh nghiệp tích hợp kỹ thuật thông qua các APIs để tạo mã QR đa năng, người dùng được chuyển hướng đến một trang trung gian do Zalopay tạo để tiếp tục các bước thanh toán với ứng dụng Zalopay hoặc ngân hàng.
Cách hoạt động
Sơ đồ:Diễn giải:
Bước 1: Khách hàng chọn thanh toán Zalopay QR đa năng (VietQR).
Bước 2: Doanh nghiệp tiến hành khởi tạo đơn hàng qua hệ thống Zalopay để khách hàng thực hiện thanh toán.
Bước 3: Sau khi xác thực thông tin Doanh nghiệp, Zalopay trả về URL để khách hàng thực hiện thanh toán (order_url), mã QR đa năng (qr_code).
Bước 4: Doanh nghiệp tùy chọn hiển thị một trong ba hình thức (tham khảo) bên dưới cho khách hàng thanh toán:Bước 5: Khách hàng tiến hành thực hiện thanh toán.
- Điều hướng đến Cổng thanh toán Zalopay.
- Hiển thị mã Zalopay QR đa năng (VietQR).
- Mở ứng dụng Ngân hàng.
Bước 6: Hệ thống Zalopay xử lý thanh toán, trả kết quả thanh toán và điều hướng về trang Doanh nghiệp.
Bước 7: Doanh nghiệp nhận kết quả thanh toán và hiển thị thông báo kết quả thanh toán cho khách hàng.
Hướng dẫn tích hợp kỹ thuật
Phần này hướng dẫn cơ bản cho các Doanh nghiệp tích hợp kỹ thuật mở thanh toán Zalopay QR đa năng (VietQR) thông qua các APIs do Zalopay cung cấp. Quy trình bao gồm các bước cơ bản sau:
- Hiển thị hình thức thanh toán Zalopay QR đa năng (VietQR) trên hệ thống của Doanh nghiệp.
- Gửi yêu cầu tạo đơn hàng qua Zalopay.
- Mở thanh toán Zalopay QR đa năng (VietQR) cho khách hàng thực hiện thanh toán.
- Xử lý kết quả thanh toán
1. Hiển thị hình thức thanh toán
Khi khách hàng thực hiện mua hàng, giao diện Doanh nghiệp cần hiển thị hình thức thanh toán Zalopay QR đa năng (VietQR), giao diện tham khảo như bên dưới:
2. Gửi yêu cầu tạo đơn hàng
Sau khi khách hàng chọn thanh toán, Doanh nghiệp gửi yêu cầu khởi tạo đơn hàng bằng API tạo đơn hàng qua hệ thống Zalopay.
Chú ý: sử dụng tham số bank_code và preferred_payment_menthod, như bên dưới:
- "bank_code": ""
- "embed_data": "{\"preferred_payment_method\": [\"vietqr\"]}"
Đây là một ví dụ về yêu cầu (request) tạo đơn hàng và phản hồi (response) nhận về:
Yêu cầu (request) tạo đơn hàng
{
"app_id": 123015,
"app_time": "1703664998490,
"app_trans_id": "231227_123015_1703664997117",
"app_user": "demo",
"bank_code": "",
"description": "Test",
"amount": 10000,
"embed_data": "{\"preferred_payment_method\": [\"vietqr\"]}",
"item": "[]",
"mac": "0336b57f74209f3b944c88b8fc8c878ae518d20b7e88763fb2ff9e14e6c3cac5"
}Phản hồi (response) nhận về
{
"return_code": 1,
"return_message": "Giao dịch thành công",
"sub_return_code": 1,
"sub_return_message": "Giao dịch thành công",
"zp_trans_token": "AC5TYXNLtPgMkO-IBA2_VoBA",
"order_url": "https://qcgateway.zalopay.vn/openinapp?order=eyJ6cHRyYW5zdG9rZW4iOiJBQzVUWVhOTHRQZ01rTy1JQkEyX1ZvQkEiLCJhcHBpZCI6MjU1M30=",
"order_token": "AC5TYXNLtPgMkO-IBA2_VoBA",
"qr_code": "00020101021226520010vn.zalopay0106180005020300103175672745585088359438620010A00000072701320006970454011899ZP23361O002489830208QRIBFTTA5204739953037045405100005802VN622108175672745585088359463044F20"
}
3. Mở thanh toán Zalopay QR đa năng (VietQR) cho khách hàng thanh toán
3.1 Điều hướng qua Cổng Zalopay
Khi Doanh nghiệp khởi tạo đơn hàng đến hệ thống Zalopay sẽ nhận được kết quả phản hồi có chứa giá trị order_url.
Doanh nghiệp sử dụng order_url này để điều hướng khách hàng đến Cổng thanh toán Zalopay.
Khách hàng tiến hành thanh toán trên Cổng thanh toán Zalopay.
3.2 Hiển thị mã Zalopay QR đa năng (VietQR)
Doanh nghiệp sử dụng giá trị qr_code trong phản hồi (response) trả về khi gọi API tạo đơn hàng để tạo mã Zalopay QR đa năng (VietQR) và hiển thị hệ thống (Web/App/POS) cho khách hàng thanh toán
3.3 Doanh nghiệp sử dụng deeplink của ứng dụng Ngân hàng do Zalopay cung cấp, cho phép người dùng trực tiếp mở ứng dụng Ngân hàng trên thiết bị di động để thực hiện thanh toán.
Bước 1: Doanh nghiệp lấy danh sách Ngân hàng hỗ trợ deep link bằng API Get List Bank Deeplinks qua hệ thống ZalopayĐây là một ví dụ về yêu cầu (request) lấy danh sách Ngân hàng hỗ trợ deep link và phản hồi (response) nhận về:
Yêu cầu (request) lấy danh sách Ngân hàng hỗ trợ deep link
{
"app_id":123015,
"bank_codes":"MSB,BIDV,VIB",
"os_type":"ios",
"order_token":"",
"mac":"d4873e011461e9db54db0b132a48dc86d63980cd224249d7fa8a2595732ba793"
}Phản hồi (response) nhận về
Bước 2: Hiển thị danh sách các ngân hàng hỗ trợ deep link trên ứng dụng của Doanh nghiệp. Người dùng chọn ứng dụng Ngân hàng và thực hiện thanh toán.{
"return_code": 1,
"return_message": "Thành công",
"sub_return_code": 1,
"sub_return_message": "Thành công.",
"data": [
{
"bank_code": "MSB",
"short_name": "MSB",
"full_name": "Ngân hàng Thương mại Cổ phần Hàng Hải Việt Nam",
"logo_url": "https://scdn.zalopay.vn/data/ofp/emvcoqr/banks/MSB.png",
"deep_link": "msbmbank://applink",
"is_auto_fill": true
},
{
"bank_code": "BIDV",
"short_name": "BIDV",
"full_name": "Ngân hàng TMCP Đầu tư và Phát triển Việt Nam",
"logo_url": "https://scdn.zalopay.vn/data/ofp/emvcoqr/banks/BIDV.png",
"deep_link": "bidv.smartbanking.partner://payment",
"is_auto_fill": true
},
{
"bank_code": "VIB",
"short_name": "VIB",
"full_name": "Ngân hàng TMCP Quốc tế Việt Nam",
"logo_url": "https://scdn.zalopay.vn/data/ofp/emvcoqr/banks/VIB.png",
"deep_link": "myvib2://",
"is_auto_fill": false
}
]
}Dữ liệu deep link của một Ngân hàng, bao gồm:
- bank_code: mã định danh Ngân hàng của hệ thống Zalopay
- short_name: tên rút gọn Ngân hàng
- full_name: tên đầy đủ Ngân hàng
- logo_url: đường dẫn chứa logo Ngân hàng
- deep_link: thông tin deep link của ứng dụng Ngân hàng
- is_auto_fill: true (hỗ trợ điền thông tin); false (không hỗ trợ điền thông tin)
Doanh nghiệp dựa vào các thông tin trên, để hiển thị giao diện phù hợp trên ứng dụng mobile
Zalopay cung cấp cho Doanh nghiệp 02 loại deep link:
- Không hỗ trợ tự động điền thông tin: mở ứng dụng Ngân hàng bằng deep link loại này, người dùng cần nhập thông tin chuyển khoản hoặc upload mã VietQR và xác nhận thanh toán.
- Hỗ trợ tự động điền thông tin: mở ứng dụng Ngân hàng bằng deep link loại này, ứng dụng Ngân hàng sẽ tự động điền thông tin thanh toán để cho khách hàng xác nhận thanh toán
4. Xử lý kết quả giao dịch
4.1 Xử lý callback từ Zalopay Server
Sau khi User hoàn thành các bước thanh toán, hệ thống Zalopay nhận tín hiệu thành công từ Ngân hàng, sẽ thông báo (callback/IPN) thông tin trạng thái thanh toán cho Merchant theo callback_url lúc đăng ký ứng dụng hoặc giá trị callback_url ở bước tạo đơn hàng.
4.2 Truy vấn trạng thái đơn hàng
Khi người dùng thanh toán thành công, hệ thống Zalopay sẽ gọi callback (IPN) đến Merchant. Tuy nhiên callback có thể bị miss do vấn đề Network/Service Unavailable/..., để trải nghiệm người dùng tốt nhất Merchant cần chủ động truy vấn trạng thái đơn hàng bằng API truy vấn trạng thái đơn hàng với tần suất 1 phút/lần cho đến khi nhận được callback hoặc hết thời hạn thanh toán đơn hàng.