Skip to main content
Overlay checkout 会在您的页面上方打开一个 modal 窗口。Customer 在 modal 中输入 payment details,同时您的页面仍显示在后方。当他们关闭 modal 时,控制权会返回您的页面。当他们完成 payment 后,将重定向到您的 return_url。
显示在产品页面上方的 Overlay checkout modal

Interactive Demo

通过我们的 live demo 查看 Overlay checkout 的实际运行效果。

快速开始

安装 SDK,完成初始化,然后使用来自 create checkout session API 的 checkout URL 打开 checkout:

分步集成

1

Install the SDK

通过 npm、yarn 或 pnpm 安装:
2

Initialize the SDK

在应用加载时调用一次 Initialize,通常放在 main component 或 app entry point 中:
始终在打开 checkout 之前初始化 SDK。在应用加载时初始化一次,而不是在每次 checkout 尝试之前初始化。
3

Create a Checkout Button

创建一个用于打开 checkout modal 的 component:
4

Add the Button to Your Page

在应用中使用 checkout button component:
5

Handle Redirects

创建用于处理 payment 后 checkout redirects 的页面:
6

Test Your Integration

  1. 启动 development server:
  1. 测试 checkout flow:
    • 点击 checkout button
    • 确认 modal 已显示
    • 使用 test credentials 测试 payment flow
    • 确认 redirects 正常工作
您应该会在 browser console 中看到记录的 checkout events。
7

Go Live

准备投入 production 时:
  1. 将 mode 更改为 'live':
  1. 更新 checkout URLs,使其使用来自 backend 的 live checkout sessions
  2. 在 production 中测试完整 flow
  3. 监控 events 和 errors

API 参考

初始化

调用一次 Initialize 以设置 SDK:

打开 Checkout

打开 checkout modal:

关闭 Checkout

以编程方式关闭 modal:

检查状态

检查 modal 当前是否已打开:

Events

通过传递给 Initialize 的 onEvent callback 监听 checkout events:

CDN 实现

如需在不执行 build step 的情况下快速集成,请从 CDN 加载 SDK:

Theme 自定义

客户端 themeConfig option 已弃用,并将在下一个 major version 的 Checkout SDK(v2.0.0)中移除。传入该 option 会在 browser console 中记录 deprecation warning。请改为通过 API 创建 checkout session 时使用 customization.theme_config parameter 配置 theme——参见 Checkout Theme Customization——或在 dashboard 的 Design page 中进行可视化配置。通过 session 配置的 themes 同样适用于 overlay、inline 和 hosted checkout。
本节介绍使用 Checkout SDK 进行已弃用的 client-side theme configuration。推荐的方法是在通过 API 创建 checkout session 时,使用 theme_config parameter 在 server-side 配置 themes。有关 API-level configuration,请参见 Checkout Theme Customization;或者在 dashboard 的 Design page 中通过 live preview 以可视化方式配置 themes。
如果必须使用 client-side theme configuration,请在 options parameter 中传入 themeConfig:

Theme Properties

light 和 dark modes 的所有可用 theme properties:

Error Handling

始终在 onEvent callback 中实现 error handling:
始终处理 checkout.error event,以便在发生 errors 时提供良好的用户体验。

Best Practices

  1. 仅初始化一次:在应用加载时调用一次 Initialize,而不是在每次 checkout 之前调用
  2. Error handling:在 event callback 中实现适当的 error handling
  3. Test mode:开发期间使用 "test" mode,仅在准备投入 production 时切换到 "live"
  4. Event handling:处理所有相关 events,以提供完整的用户体验
  5. 有效 URLs:始终使用来自 create checkout session API 的有效 checkout URLs
  6. TypeScript:使用 TypeScript 以获得更好的 type safety 和 developer experience
  7. Loading states:在 checkout 打开期间显示 loading states,以改善 UX
  8. Timer management:如果希望手动处理 session expiration,请禁用 timer(showTimer: false)

Troubleshooting

可能原因:
  • 调用 open() 前未初始化 SDK
  • Checkout URL 无效
  • Console 中存在 JavaScript errors
  • Network connectivity issues
解决方案:
  • 确认 SDK initialization 发生在打开 checkout 之前
  • 检查 browser console 中的 errors
  • 确保 checkout URL 有效且来自 create checkout session API
  • 验证 network connectivity
可能原因:
  • Event handler 未正确设置
  • JavaScript errors 阻止了 event propagation
  • SDK 未正确初始化
解决方案:
  • 确认已在 Initialize() 中正确配置 event handler
  • 检查 browser console 中的 JavaScript errors
  • 确认 SDK initialization 已成功完成
  • 首先使用简单的 event handler 进行测试
可能原因:
  • CSS 与应用 styles 冲突
  • Theme settings 未正确应用
  • Responsive design issues
解决方案:
  • 在 browser DevTools 中检查 CSS conflicts
  • 确认 theme settings 正确
  • 在不同 screen sizes 下测试
  • 确保 modal 不存在 z-index conflicts

Digital Wallets

有关设置 Google Pay 和其他 digital wallets 的详细信息,请参见 Digital Wallets 页面。
Apple Pay 目前尚不支持 Overlay checkout。

Browser Support

Dodo Payments Checkout SDK 支持:
  • Chrome(latest)
  • Firefox(latest)
  • Safari(latest)
  • Edge(latest)
  • IE11+

Overlay 与 Inline Checkout

根据您的使用场景选择合适的 checkout type:
如果希望以最少的现有页面改动实现更快集成,请使用 Overlay checkout。如果希望最大程度控制 checkout experience 并保持一致的 branding,请使用 Inline checkout。

Inline Checkout

将 checkout 直接嵌入页面,以实现完全集成的体验。

Checkout Sessions API

创建 checkout sessions,为您的 checkout experiences 提供支持。

Webhooks

使用 webhooks 在 server-side 处理 payment events。

Integration Guide

Dodo Payments 集成完整指南。
如需更多帮助,请访问我们的 Discord community,或联系我们的 developer support team。
最后修改于 2026年9月26日