NAV

Website - Cổng

Giới thiệu Demo Hướng dẫn tích hợp API

HƯỚNG DẪN TÍCH HỢP

SƠ ĐỒ LUỒNG XỬ LÝ
* CHÚ THÍCH
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.

center my-5 maxw-80

1. Chọn hình thức thanh toán

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:

QUY CÁCH 1
Với quy cách này, danh sách ngân hàng sẽ được hiển thị trên giao diện của ZaloPay Gateway ở bước sau
QUY CÁCH 2
Với quy cách này, danh sách ngân hàng được hiển thị trên giao diện Merchant Site

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)

2. Gửi yêu cầu tạo đơn hàng

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

2.1. Theo cấu trúc mới

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

2.1.1 Hình ảnh mô tả 1

2.1.2 Hình ảnh mô tả 2

2.1.3 Hình ảnh mô tả 3

2.1.4 Hình ảnh mô tả 4

2.1.5 Hình ảnh mô tả 5

2.1.6 Hình ảnh mô tả 6

2.1.7 Hình ảnh mô tả 7

Ví dụ (Tạo đơn hàng thanh toán bằng VietQR)

    {
      "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"
    }

2.2. Theo cấu trúc cũ

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

Ví dụ (Tạo đơn hàng thanh toán bằng Thẻ ATM trên ZaloPay Gateway)

    {
      "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"
    }

3. Redirect đến trang ZaloPay Gateway

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.

4. Truy vấn trạng thái đơn hàng

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.

5. Xử lý CallBack từ ZaloPay Server

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

6. ZaloPay Gateway chuyển hướng (redirect) về Merchant Site

- 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

Không tìm thấy kết quả phù hợp