Chuyển đến nội dung chính

Cổng thanh toán

Tổng quan

Zalopay Gateway là một trong những cổng thanh toán hàng đầu tại Việt Nam, nổi bật với đa dạng các phương thức thanh toán và cam kết bảo mật hàng đầu, tạo ra một trải nghiệm thanh toán thuận tiện và an toàn cho cả người dùng và doanh nghiệp. Dưới đây là một số đặc điểm quan trọng của cổng thanh toán Zalopay:

Đa dạng phương thức thanh toán: Zalopay Gateway cung cấp các phương thức thanh toán, từ Ví Zalopay, Thẻ ATM, Internet Banking, Thẻ Visa, VietQR đến Apple Pay. Sự đa dạng này giúp người dùng lựa chọn phương thức thanh toán phù hợp với nhu cầu cá nhân và thuận lợi cho doanh nghiệp khi mở rộng cơ hội kinh doanh.
Bảo mật thông tin người dùng: Được chứng nhận các tiêu chuẩn quốc tế về bảo mật thông tin (PCI DSS và ISO 27001) bởi các tổ chức độc lập và uy tín. Thông tin thanh toán của người dùng được mã hóa với độ an toàn và tin cậy cao.
Thuận tiện cho Doanh nghiệp: Quá trình tích hợp Zalopay Gateway vào hệ thống thanh toán của doanh nghiệp được thiết kế để đơn giản và linh hoạt. Giao diện API dễ sử dụng giúp doanh nghiệp tích hợp nhanh chóng, mở rộng khả năng tiếp cận và tối ưu hóa quy trình thanh toán trực tuyến.
Zalopay QR đa năng - Cầu nối thông minh giữa khác hàng và dịch vụ: Zalopay QR đa năng (VietQR) không chỉ giúp người dùng thanh toán nhanh chóng mà còn mang lại lợi ích lớn cho doanh nghiệp. Việc sử dụng Zalopay QR đa năng giúp tối ưu hóa quá trình thanh toán và kết nối khách hàng với sản phẩm và dịch vụ của doanh nghiệp một cách hiệu quả.
Apple Pay - Thanh toán dễ dàng cho người dùng iOS: Zalopay tích hợp Apple Pay vào cổng thanh toán, tạo cơ hội thanh toán tiện lợi cho người dùng sử dụng thiết bị iOS. Việc này không chỉ mở rộng đối tượng khách hàng mà còn tăng cường trải nghiệm thanh toán cho cộng đồng người dùng Apple.
Zalopay Gateway không chỉ là cổng thanh toán, mà là một hệ sinh thái tích hợp thông minh, với việc kết hợp giữa đa dạng phương thức thanh toán, bảo mật vững chắc và tích hợp dễ dàng. Điều này không chỉ tạo ra một môi trường thanh toán hiện đại mà còn mang lại nhiều cơ hội kinh doanh cho doanh nghiệp và sự thuận lợi cho người dùng.
Trong các phần tiếp theo, chúng tôi sẽ hướng dẫn bạn từng bước để tích hợp Cổng thanh toán Zalopay vào hệ thống thanh toán.

Lợi ích chính

Cho Doanh nghiệp:

  • Giải pháp thanh toán toàn diện cho website, app bán hàng, tích hợp mã QR đa năng giúp thu hút khách hàng.
  • Doanh nghiệp có thể tích hợp Zalopay để đa dạng hóa kênh thanh toán và nâng cao trải nghiệm mua sắm.

Cho Khách hàng:

  • Đa dạng phương thức thanh toán.
  • Thanh toán nhanh chóng và linh hoạt, được bảo mật thông tin an toàn.

Cách hoạt động

Sơ đồ:

Payment flow

Diễn giải:
Bước 1: Khách hàng tiến hành thanh toán bằng phương thức thanh toán qua Cổng thanh toán Zalopay.
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ề link thanh toán (order_url).
Bước 4: Doanh nghiệp điều hướng khách hàng đến Cổng thanh toán Zalopay thông qua link thanh toán (order_url).
Bước 5: Cổng thanh toán Zalopay hiển thị thông tin đơn hàng và yêu cầu khách hàng thanh toán.
Bước 6: Khách hàng lựa chọn hình thức và tiến hành thực hiện thanh toán.
Bước 7: Cổng thanh toán 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 8: 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 thanh toán Cổng Zalopay 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ị các hình thức thanh toán trên hệ thống của Doanh nghiệp.
  • Gửi yêu cầu tạo đơn hàng qua Zalopay.
  • Điều hướng khách hàng đến Cổng thanh toán Zalopay.
  • Xử lý kết quả thanh toán.

1. Hiển thị các hình thức thanh toán

Khi khách hàng thực hiện thao tác thanh toán đơn hàng, giao diện trên hệ thống bán hàng của Doanh nghiệp cần hiển thị các hình thức thanh toán của Zaloay như: Ứng dụng Zalopay, Thẻ Visa/Master/JCB, Thẻ ATM, Zalopay QR đa năng; theo quy cách tham khảo như bên dưới:

Payment flow

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.

Đâ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. Điều hướng khách hàng đến Cổng thanh toán Zalopay

Doanh nghiệp điều hướng khách hàng đến Cổng Zalopay theo giá trị order_url nhận được trong phản hồi (response) khi gửi yêu cầu tạo đơn hàng thành công. Daonh nghiệp có thể tùy chỉnh để Cổng Zalopay hiển thị giao diện theo từng hình thức bên dưới:

Cho khách hàng lựa chọn hình thức thanh toán

Đối với tùy chọn này, Cổng thanh toán Zalopay sẽ hiển thị danh sách tất cả các hình thức thanh toán được hỗ trợ, người dùng có thể tùy chọn một trong các hình thức để thực hiện thanh toán.

Các hình thức thanh toán mà Zalopay cung cấp cho Doanh nghiệp, bao gồm:

  • Thẻ ATM nội địa
  • Thẻ tín dụng
  • Chuyển khoản ngân hàng qua mã Zalopay QR đa năng (VietQR)
  • Thanh toán mã Zalopay QR bằng ứng dụng Zalo/Zalopay
  • Thanh toán mã Zalopay QR bằng ứng dụng Zalo/Zalopay và nguồn tiền thanh toán ưu tiên Tài khoản trả sau

Tùy vào hợp đồng cung cấp dịch vụ giữa Zalopay và Doanh nghiệp, hình thức thanh toán nào được ký kết sẽ hiển thị tương ứng.

Chú ý: Với hình thức này sử dụng tham số bank_code và preferred_payment_menthod khi gửi yêu cầu tạo đơn hàng, như bên dưới:

  • "bank_code": ""
  • "embed_data": "{\"preferred_payment_method\": []}"

Payment flow

Cho khách hàng thanh toán Zalopay QR đa năng (VietQR)

Đối với tùy chọn này, Cổng Zalopay sẽ hiển thị Zalopay QR đa năng để thanh toán bằng các ứng dụng Ngân hàng và Zalopay

Chú ý: Với hình thức này sử dụng tham số bank_code và preferred_payment_menthod khi gửi yêu cầu tạo đơn hàng, như bên dưới:

  • "bank_code": ""
  • "embed_data": "{\"preferred_payment_method\": [\"vietqr\"]}"

Payment flow

Cho khách hàng thanh toán thẻ tín dụng

Đối với tùy chọn này, Cổng Zalopay sẽ hiển thị Form cho người dùng nhập thông tin thẻ tín dụng để thanh toán

Chú ý: Với hình thức này sử dụng tham số bank_code và preferred_payment_menthod khi gửi yêu cầu tạo đơn hàng, như bên dưới:

  • "bank_code": ""
  • "embed_data": "{\"preferred_payment_method\": [\"international_card\"]}"

Payment flow

Cho khách hàng thanh toán thẻ ATM

Đối với tùy chọn này, Cổng Zalopay sẽ hiển thị Form cho người dùng nhập thông tin thẻ ATM để thanh toán

Chú ý: Với hình thức này sử dụng tham số bank_code và preferred_payment_menthod khi gửi yêu cầu tạo đơn hàng, như bên dưới:

  • "bank_code": ""
  • "embed_data": "{\"preferred_payment_method\": [\"domestic_card\",\"account\"]}"

Payment flow

Cho khách hàng thanh toán Zalopay QR

Đối với tùy chọn này, Cổng Zalopay sẽ hiển thị Zalopay QR để thanh toán bằng Zalopay/Zalopay trên Zalo

Chú ý: Với hình thức này sử dụng tham số bank_code và preferred_payment_menthod khi gửi yêu cầu tạo đơn hàng, như bên dưới:

  • "bank_code": ""
  • "embed_data": "{\"preferred_payment_method\": [\"zalopay_wallet\"]}"

Payment flow

Cho khách hàng thanh toán Zalopay QR bằng tài khoản trả sau

Đối với tùy chọn này, Cổng Zalopay sẽ hiển thị Zalopay QR để thanh toán bằng Zalopay/Zalopay trên Zalo và ưu tiên nguồn tiền là Tài khoản trả sau

Chú ý: Với hình thức này sử dụng tham số bank_code và preferred_payment_menthod khi gửi yêu cầu tạo đơn hàng, như bên dưới:

  • "bank_code": ""
  • "embed_data": "{\"preferred_payment_method\": [\"bnpl\"]}"

Payment flow

4. Xử lý kết quả giao dịch

Khi người mua hoàn tất thanh toán, Cổng thanh toán Zalopay sẽ chuyển hướng trở lại ứng dụng web/app của Doanh nghiệp theo thông tin redirecturl lúc đăng ký ứng dụng hoặc giá trị redirecturl ở bước tạo đơn hàng. Và bước tiếp theo là kiểm tra trạng thái đơn hàng thông qua callback hoặc API Query Order.

Xử lý callback từ Zalopay Server

Sau khi khách hàng hoàn thành các bước thanh toán trên Cổng thanh toán Zalopay, nếu khách hàng thanh toán thành công, hệ thống Zalopay sẽ trả về (callback/IPN) thông tin trạng thái thanh toán cho Doanh nghiệp theo callback_url lúc đăng ký ứng dụng hoặc giá trị callback_url ở bước khởi khởi tạo đơn hàng.

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.

Điều hướng (redirect) về hệ thống Merchant

Sau khi người dùng hoàn thành thanh toán, Cổng Zalopay sẽ redirect về trang hiển thị kết quả của Doanh nghiệp (theo redirecturl mà Doanh nghiệp đã cung cấp cho Zalopay).

Dữ liệu truyền vào query string khi Cổng Zalopay redirect về trang của Doanh nghiệp.

Tham sốMô tả
appidThông tin app_id của đơn hàng
apptransidThông tin app_trans_id của đơn hàng
pmcidThông tin kênh thanh toán
bankcodeThông tin bank_code
amountGiá trị đơn hàng
discountamountGiá trị giảm giá
statusMã trạng thái
checksumDùng để kiểm tra redirect có hợp lệ hay không. Kiểm tra hmac hợp lệ: HMAC(hmac_algorithm, callback key, appid + "\|"+ apptransid +"\|"+ pmcid +"\|"+ bankcode +"\|"+ amount +"\|"+ discountamount +"\|"+ status)

Ví dụ: https://www.merchant-server.com/result/?amount=10000&discountamount=0&appid=165000&checksum=a179866d5dfc98d486ed51f5e53113776d2eb387049f07bd17e31c95ef5aaf3e&apptransid=231227_165000_1703670602601&pmcid=38&bankcode=&status=1

Chú ý: Khi nhận được redirect hợp lệ, Doanh nghiệp cần kiểm tra xem đã nhận được callback hay chưa, nếu chưa Doanh nghiệp sử dụng API truy vấn trạng thái đơn hàng để lấy kết quả cuối cùng.