Skip to main content
Overlay checkout mở một cửa sổ modal phía trên trang của bạn. Khách hàng nhập thông tin thanh toán trong modal, trong khi trang của bạn vẫn hiển thị phía sau. Khi đóng modal, quyền điều khiển được trả về trang của bạn. Khi hoàn tất thanh toán, họ sẽ được chuyển hướng đến return_url.
Modal overlay checkout hiển thị phía trên trang sản phẩm

Interactive Demo

Xem overlay checkout hoạt động qua bản demo trực tiếp của chúng tôi.

Bắt đầu nhanh

Cài đặt SDK, khởi tạo SDK và mở checkout bằng URL checkout từ create checkout session API:

Tích hợp từng bước

1

Install the SDK

Cài đặt qua npm, yarn hoặc pnpm:
2

Initialize the SDK

Gọi Initialize một lần khi ứng dụng tải, thường là trong component chính hoặc entry point của ứng dụng:
Luôn khởi tạo SDK trước khi mở checkout. Chỉ khởi tạo một lần khi ứng dụng tải, không khởi tạo trước mỗi lần thử checkout.
3

Create a Checkout Button

Tạo một component để mở modal checkout:
4

Add the Button to Your Page

Sử dụng component nút checkout trong ứng dụng của bạn:
5

Handle Redirects

Tạo các trang để xử lý việc chuyển hướng checkout sau thanh toán:
6

Test Your Integration

  1. Khởi động development server:
  1. Kiểm thử quy trình checkout:
    • Nhấp vào nút checkout
    • Xác minh modal xuất hiện
    • Kiểm thử quy trình thanh toán bằng thông tin xác thực test
    • Xác nhận các chuyển hướng hoạt động chính xác
Bạn sẽ thấy các sự kiện checkout được ghi trong console của trình duyệt.
7

Go Live

Khi sẵn sàng cho production:
  1. Thay đổi mode thành 'live':
  1. Cập nhật các URL checkout để sử dụng checkout session trực tiếp từ backend của bạn
  2. Kiểm thử toàn bộ quy trình trong production
  3. Theo dõi các sự kiện và lỗi

Tham chiếu API

Khởi tạo

Gọi Initialize một lần để thiết lập SDK:

Mở Checkout

Mở modal checkout:

Đóng Checkout

Đóng modal bằng lập trình:

Kiểm tra trạng thái

Kiểm tra xem modal hiện có đang mở hay không:

Sự kiện

Lắng nghe các sự kiện checkout thông qua callback onEvent được truyền vào Initialize:

Triển khai CDN

Để tích hợp nhanh mà không cần build step, hãy tải SDK từ CDN:

Tùy chỉnh Theme

Tùy chọn themeConfig phía client đã deprecated và sẽ bị xóa trong major version tiếp theo của Checkout SDK (v2.0.0). Việc truyền tùy chọn này sẽ ghi cảnh báo deprecated trong console của trình duyệt. Thay vào đó, hãy cấu hình theme khi tạo checkout session thông qua API bằng tham số customization.theme_config — xem Checkout Theme Customization — hoặc tùy chỉnh trực quan trên Design page trong dashboard. Theme được cấu hình theo session áp dụng cho overlay, inline và hosted checkout.
Phần này trình bày cách cấu hình theme phía client đã deprecated bằng Checkout SDK. Cách được khuyến nghị là cấu hình theme phía server khi tạo checkout session qua API bằng tham số theme_config. Xem Checkout Theme Customization để biết cách cấu hình ở cấp API hoặc sử dụng Design page trong dashboard để cấu hình theme trực quan với bản xem trước trực tiếp.
Nếu bắt buộc phải sử dụng cấu hình theme phía client, hãy truyền themeConfig trong tham số options:

Thuộc tính Theme

Tất cả thuộc tính theme hiện có cho mode sáng và tối:

Xử lý lỗi

Luôn triển khai xử lý lỗi trong callback onEvent:
Luôn xử lý sự kiện checkout.error để mang lại trải nghiệm tốt cho người dùng khi xảy ra lỗi.

Phương pháp hay nhất

  1. Khởi tạo một lần: Gọi Initialize một lần khi ứng dụng tải, không gọi trước mỗi checkout
  2. Xử lý lỗi: Triển khai xử lý lỗi phù hợp trong event callback
  3. Test mode: Sử dụng mode "test" trong quá trình phát triển và chỉ chuyển sang "live" khi sẵn sàng cho production
  4. Xử lý sự kiện: Xử lý tất cả sự kiện liên quan để mang lại trải nghiệm hoàn chỉnh cho người dùng
  5. URL hợp lệ: Luôn sử dụng URL checkout hợp lệ từ create checkout session API
  6. TypeScript: Sử dụng TypeScript để tăng độ an toàn kiểu và cải thiện trải nghiệm developer
  7. Trạng thái loading: Hiển thị trạng thái loading trong khi checkout đang mở để cải thiện UX
  8. Quản lý bộ hẹn giờ: Vô hiệu hóa bộ hẹn giờ (showTimer: false) nếu bạn muốn tự xử lý việc session hết hạn

Khắc phục sự cố

Nguyên nhân có thể:
  • SDK chưa được khởi tạo trước khi gọi open()
  • URL checkout không hợp lệ
  • Lỗi JavaScript trong console
  • Sự cố kết nối mạng
Giải pháp:
  • Xác minh SDK được khởi tạo trước khi mở checkout
  • Kiểm tra console của trình duyệt để tìm lỗi
  • Đảm bảo URL checkout hợp lệ và đến từ create checkout session API
  • Xác minh kết nối mạng
Nguyên nhân có thể:
  • Event handler chưa được thiết lập đúng
  • Lỗi JavaScript ngăn chặn việc truyền sự kiện
  • SDK chưa được khởi tạo chính xác
Giải pháp:
  • Xác nhận event handler được cấu hình đúng trong Initialize()
  • Kiểm tra console của trình duyệt để tìm lỗi JavaScript
  • Xác minh quá trình khởi tạo SDK đã hoàn tất thành công
  • Trước tiên hãy kiểm thử bằng một event handler đơn giản
Nguyên nhân có thể:
  • CSS xung đột với style của ứng dụng
  • Cài đặt theme chưa được áp dụng chính xác
  • Sự cố responsive design
Giải pháp:
  • Kiểm tra xung đột CSS trong DevTools của trình duyệt
  • Xác minh cài đặt theme chính xác
  • Kiểm thử trên các kích thước màn hình khác nhau
  • Đảm bảo không có xung đột z-index với modal

Ví điện tử

Để biết thông tin chi tiết về cách thiết lập Google Pay và các ví điện tử khác, hãy xem trang Digital Wallets.
Apple Pay hiện chưa được hỗ trợ trong overlay checkout.

Hỗ trợ trình duyệt

Dodo Payments Checkout SDK hỗ trợ:
  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)
  • IE11+

Overlay và Inline Checkout

Chọn loại checkout phù hợp với trường hợp sử dụng của bạn:
Sử dụng overlay checkout để tích hợp nhanh hơn với ít thay đổi nhất cho các trang hiện có. Sử dụng inline checkout khi bạn muốn kiểm soát tối đa trải nghiệm checkout và duy trì branding nhất quán.

Tài nguyên liên quan

Inline Checkout

Nhúng checkout trực tiếp vào trang để có trải nghiệm tích hợp hoàn toàn.

Checkout Sessions API

Tạo checkout session để cung cấp các trải nghiệm checkout.

Webhooks

Xử lý các sự kiện thanh toán phía server bằng webhook.

Integration Guide

Hướng dẫn đầy đủ về cách tích hợp Dodo Payments.
Để được hỗ trợ thêm, hãy truy cập cộng đồng Discord hoặc liên hệ với đội ngũ hỗ trợ developer của chúng tôi.
Lần sửa đổi cuối 26 tháng 9, 2026