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ơ đồ: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:
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\": []}"
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\"]}"
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\"]}"
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\"]}"
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\"]}"
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\"]}"
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.
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.
Tham số Mô tả appid Thông tin app_id của đơn hàng apptransid Thông tin app_trans_id của đơn hàng pmcid Thông tin kênh thanh toán bankcode Thông tin bank_code amount Giá trị đơn hàng discountamount Giá trị giảm giá status Mã trạng thái checksum Dù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)