Các bước tích hợp
Bước 1: Chọn hình thức thanh toán
Bước 2: Gửi yêu cầu tạo đơn hàng
Bước 3: Redirect đến trang ZaloPay Gateway
Bước 4: Truy vấn trạng thái đơn hàng
Bước 5: Xử lý CallBack từ ZaloPay Server
Bước 6: ZaloPay Gateway chuyển hướng (redirect) về Merchant Site
Giá trị | Ghi chú |
---|---|
MerchantSite | Ứng dụng web của Merchant. |
MerchantServer | Hệ thống back-end của Merchant. |
ZaloPayGateway | Giao diện website Cổng ZaloPay. |
ZaloPayServer | Hệ thống back-end của ZaloPay. |
Khi End-user thực hiện thao tác thanh toán đơn hàng, giao diện Merchant Site cần hiển thị các hình thức thanh toán của ZaloPay như: Ví ZaloPay, Thẻ Visa/Master/JCB, Thẻ ATM theo một trong các quy cách sau:
Tải về:
Download source HTML (quy cách 1)
Download source HTML (quy cách 2)
Tiếp theo, End-user bấm nút Thanh Toán để gửi yêu cầu tạo đơn hàng (bước 2)
Sau khi End-user bấm Thanh Toán, Merchant Site gửi yêu cầu tạo đơn hàng thanh toán (Tạo đơn hàng) sang cho Merchant Server
Merchant Server sẽ gọi API tạo đơn hàng của ZaloPay Server.
API liên quan: Tạo đơn hàng
Lưu ý: Cách sử dụng tham số bank_code trong API tạo đơn hàng, tương ứng với từng tùy chọn hình thức thanh toán
bank_code | preferred_payment_method | Nội dung truyền thông tin | Kết quả hiển thị trên trang cổng thanh toán | Ghi chú |
---|---|---|---|---|
Rỗng ("") | [] |
"bank_code": "", "embed_data": {"preferred_payment_method": []} |
Danh sách tất cả các hình thức và ngân hàng được hỗ trợ (ATM, CC, ZaloPay, ZaloPay QR đa năng, Apple Pay ...) | Hình ảnh mô tả 1 |
Rỗng ("") | ["domestic_card", "account"] |
"bank_code": "", "embed_data": {"preferred_payment_method": ["domestic_card", "account"]} |
Danh sách tất cả Ngân hàng hỗ trợ, người dùng chọn và nhập thông tin thẻ ATM hoặc tài khoản Ngân hàng tương ứng | Hình ảnh mô tả 2 |
Rỗng ("") | ["zalopay_wallet"] |
"bank_code": "", "embed_data": {"preferred_payment_method": ["zalopay_wallet"]} |
Hiển thị ZaloPay QR code để thanh toán bằng Zalo/ZaloPay | Hình ảnh mô tả 3 |
Rỗng ("") | ["vietqr"] |
"bank_code": "", "embed_data": {"preferred_payment_method": ["vietqr"]} |
Hiển thị ZaloPay QR đa năng để thanh toán bằng các ứng dụng Ngân hàng và Zalo/ZaloPay | Hình ảnh mô tả 4 |
Rỗng ("") | ["international_card"] |
"bank_code": "", "embed_data": {"preferred_payment_method": ["international_card"]} |
Form hiển thị cho việc nhập thông tin thẻ tín dụng | Hình ảnh mô tả 5 |
Rỗng ("") | ["applepay"] |
"bank_code": "", "embed_data": {"preferred_payment_method": ["applepay"]} |
Form hiển thị cho việc chọn phương thức Apple Pay | Hình ảnh mô tả 6 |
Mã ngân hàng ATM (VTB, VCB, ...) | [] |
"bank_code": "specific bank code", "embed_data": {"preferred_payment_method": []} |
Form nhập thông tin thẻ của ngân hàng tương ứng Merchant sử dụng API Getlistmerchantbanks để lấy giá trị specific bankcode. (**) Sử dụng API lấy danh sách các ngân hàng được hỗ trợ tại đây | Hình ảnh mô tả 7 |
{
"app_id": 2553,
"app_user": "ZaloPayDemo",
"app_time": 1692808549757,
"amount": 10000,
"app_trans_id": "230823_1692808549757",
"bank_code": "",
"embed_data": "{\"preferred_payment_method\":[\"vietqr\"]}",
"item": "[]",
"callback_url": "https://example.com/zalopay-callback",
"description": "ZaloPayDemo - Thanh toán cho đơn hàng #230823_1692808549757",
"mac": "e5f54209e13398f9c0889c663bda7ec8a424c826a41750c787ec34b8e0becc73"
}
{
"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": "ACyQpbxesWOnY1cCq-ThZHww",
"order_url": "https://qcgateway.zalopay.vn/openinapp?order=eyJ6cHRyYW5zdG9rZW4iOiJBQ3lRcGJ4ZXNXT25ZMWNDcS1UaFpId3ciLCJhcHBpZCI6MjU1M30=",
"order_token": "ACyQpbxesWOnY1cCq-ThZHww",
"qr_code": "00020101021226520010vn.zalopay0203001010618000503173851346261102069938620010A00000072701320006970454011899ZP23235O000007950208QRIBFTTA5204739953037045405100005802VN622108173851346261102069963044149"
}
bank_code | Kết quả hiển thị trên trang cổng thanh toán |
---|---|
Rỗng ("" ) (*) |
Danh sách tất cả các hình thức và ngân hàng được hỗ trợ (CC , ATM , zalopayapp , ...) |
zalopayapp |
Hiển thị QR code để thanh toán bằng ví ZaloPay/ Mở ứng dụng ZaloPay để thanh toán qua ví đối với mobile |
CC |
Form nhập thông tin Credit Card |
Mã ngân hàng ATM (VTB , VCB , ...) |
Form nhập thông tin thẻ của ngân hàng tương ứng |
{
"app_id": 2553,
"app_user": "ZaloPayDemo",
"app_time": 1692811526592,
"amount": 10000,
"app_trans_id": "230824_1692811526592",
"bank_code": "",
"embed_data": "{\"bankgroup\":\"ATM\"}",
"item": "[]",
"callback_url": "https://example.com/zalopay-callback",
"description": "ZaloPayDemo - Thanh toán cho đơn hàng #230824_1692811526592",
"mac": "058d31a95d891821a58fb0577707ac614dd30d47f45e397c9e1cf9789ceda014"
}
{
"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": "ACajRfciufEJ5JBMWk8-wlOQ",
"order_url": "https://qcgateway.zalopay.vn/openinapp?order=eyJ6cHRyYW5zdG9rZW4iOiJBQ2FqUmZjaXVmRUo1SkJNV2s4LXdsT1EiLCJhcHBpZCI6MjU1M30=",
"order_token": "ACajRfciufEJ5JBMWk8-wlOQ"
}
Khi MerchantServer gọi request tạo đơn hàng tới ZaloPayServer (ở bước 2) sẽ nhận được kết quả có chứa giá trị order_url. MerchantSite sử dụng order_url này để redirect người dùng đến cổng thanh toán ZaloPay.
Ngay sau khi thanh toán thành công, ZaloPay sẽ gọi Callback
đến Merchant Server (Callback
chỉ được gọi trong trường hợp thanh toán thành công). 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 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
API liên quan: Truy vấn trạng thái đơn hàng
Ghi chú:
- API Truy vấn trạng thái đơn hàng chỉ có hiệu lực trong vòng 48h kể từ lúc ZaloPay Server ghi nhận đơn hàng.
- API Truy vấn trạng thái đơn hàng chỉ nên gọi sau khi hệ thống của Merchant nhận callback hoặc redirect hoặc 15 phút sau khi tạo đơn hàng.
Sau khi End-user hoàn thành các bước thanh toán trên ZaloPay Gateway, nếu trừ tiền user thành công ZaloPayServer sẽ trả về (callback/notify) thông tin trạng thái thanh toán cho MerchantServer theo callback_url lúc đăng ký ứng dụng hoặc giá trị callback_url ở bước tạo đơn hàng (chỉ áp dụng cho tài liệu v2).
API liên quan: callback
- Sau khi End-user thanh toán, ZaloPay Server sẽ trả về trạng thái giao dịch cho ZaloPay Gateway.
- ZaloPay Gateway chuyển hướng (redirect) về Merchant Site để hiển thị kết quả giao dịch trên giao diện.
API liên quan: redirect