跳转到主要内容

新功能

1. 基于信用额度的计费

Dodo Payments 现已支持 基于信用额度的计费,这是一种在订阅、一次性产品和基于使用的计费之间发行、管理与追踪信用权益的灵活系统。与其按次收费或通过功能开关限制访问,不如分配一个信用池,客户在使用服务时从中扣减。
Checkout showing included credits with the product purchase
你可以做的事情
能力描述
自定义单位或法币信用以你自己的单位(API 调用、令牌、计算小时)或实际货币价值(USD、EUR)定义信用
订阅信用每个计费周期发行信用,并在续订时自动重新发行
一次性信用在购买时授予固定信用余额,适用于充值包或促销套装
基于使用的扣减将信用与仪表关联,根据实时消耗事件自动扣减
滚存允许未使用的信用在可配置的最大百分比、时段和滚存次数范围内结转
超额控制让客户在余额用尽后继续使用服务,并选择宽恕、计费或结转赤字
过期设置信用有效期为 7 天到永不过期之间的任意天数
信用生命周期
  1. 发行信用——当客户购买附带信用权益的产品时授予。对于订阅,信用在每个计费周期重新发行。
  2. 消费信用——当客户使用服务时扣减信用。仪表可根据实时事件自动扣减,或可通过仪表板/API 手动扣减。
  3. 信用过期或滚存——在计费周期结束时(或配置的过期期后),未使用信用将根据设置过期或滚存。
  4. 超额处理——如果信用在周期中用尽,你可以允许继续使用,并在周期结束时决定如何处理超额。
将信用附加到产品 在产品创建流程中,以权益形式附加信用。每个产品最多可以附加3 个信用,且信用适用于所有三种定价类型:订阅、一次性支付以及基于使用的计费。
// Create a checkout session for a product with attached credits
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_ai_pro_plan',
      quantity: 1,
    }
  ],
  customer: { email: 'customer@example.com' },
  return_url: 'https://yourapp.com/success'
});
基于使用的扣减 当信用与仪表关联时,系统会根据导入的使用事件自动扣减信用。配置 每个信用对应的仪表单位 以控制转换比例(例如 1,000 次 API 调用 = 1 个信用)。
// Send usage events that deduct credits automatically
await fetch('https://api.dodopayments.com/events/ingest', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.DODO_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    events: [{
      event_id: `gen_${Date.now()}`,
      customer_id: 'cus_abc123',
      event_name: 'ai.generation',
      timestamp: new Date().toISOString(),
      metadata: { model: 'gpt-4', tokens: 1500 }
    }]
  })
});
客户体验 客户可以在 客户门户 的信用部分查看并管理信用余额,包括可用余额、交易历史记录和使用细分。信用也会出现在结账、订阅详情和支付交易页面。
Customer Portal credits view with balance and transaction history
Webhook 基于信用额度的计费会在每次信用生命周期变化时触发 webhook 事件:
事件描述
credit.added向客户授予信用
credit.deducted通过使用或手动扣减消耗信用
credit.expired未使用信用过期
credit.rolled_over信用结转至新额度
credit.rollover_forfeited达到最大滚存次数后信用被没收
credit.overage_charged应用超额费用
credit.manual_adjustment进行手动信用/借记调整
credit.balance_low余额跌至配置的阈值以下
从简单设置开始,无滚存、无超额,并随着了解客户如何使用信用再逐步增加复杂性。大多数设置可以随时更新而不会影响现有额度。
了解更多:基于信用额度的计费 | 信用 Webhook 有效载荷 | 信用权益 API

2. 设计与主题定制

推出全新的 设计 页面,它是一个统一中心,可从单一入口定制结账、店面和客户门户的外观与风格。选择预设主题、配置排版与颜色,并应用各部分覆盖,所有更改都可在保存前通过实时预览查看。
Design settings page with live preview of checkout, customer portal, and storefront
关键亮点
功能描述
统一设计中心从单一页面配置结账、店面和客户门户的外观
预设主题从精选主题(Dodo Pulses、Terminal、Bumblebee 或 Bubblegum)开始,并在此基础上自定义
明暗模式为每种模式定义独立的颜色调色板
实时预览在保存前查看结账、客户门户和店面的更改效果
按部分覆盖精细调整单个部分而不影响其他部分
编程控制通过 API 或结账 SDK 在结账时覆盖主题
入门 在商家控制面板主侧边栏中导航至 设计。该页面包含四个选项卡:
选项卡作用
通用商业名称、徽标、主题选择及全局高级设置
结账专门覆盖结账页面的主题设置
店面覆盖主题设置并配置店面布局
客户门户覆盖客户门户的主题设置
高级设置 在“通用”选项卡中展开高级设置,可对排版(主/次 Google 字体、字号、字体粗细)、颜色配置(明暗模式分别涵盖背景、文本、按钮和边框)以及边角半径进行精细控制,以调整 UI 元素的圆角程度。
Advanced settings expanded showing full color configuration for light and dark modes
预设主题 开箱即用提供四个精选主题:
  • Dodo Pulses - 默认主题,采用青柠绿点缀与简洁无衬线排版
  • Terminal - 面向开发者,使用等宽字体与皇家蓝点缀
  • Bumblebee - 温暖的琥珀与金色点缀,体现大胆的高级风格
  • Bubblegum - 俏皮的粉色与品红点缀,全面圆角设计
在选择预设主题后,你可以在高级设置中进一步自定义个别属性。未指定的属性将回退到主题默认值。
了解更多:设计与主题定制 | 结账功能 | 店面

3. List Payments API 中的退款状态与争议状态

GET /payments 列表端点现在在每个支付项目中包含 refund_statusdispute_status 字段,因此你可以一目了然地查看退款与争议状态,而无需获取单个支付详情。
字段类型描述
refund_statuspartial | full | null该支付的退款状态摘要。null 表示不存在成功退款
dispute_statusstring | null该支付的最新争议状态。null 表示不存在争议
dispute_statusdispute_openeddispute_expireddispute_accepteddispute_cancelleddispute_challengeddispute_wondispute_lost 你也可以使用 dispute_status 查询参数按争议状态筛选支付
# List all payments with open disputes
curl -X GET 'https://api.dodopayments.com/payments?dispute_status=dispute_opened' \
  -H 'Authorization: Bearer YOUR_API_KEY'
使用这些字段构建争议与退款仪表板、在争议状态更改时触发警报,或筛选支付列表以突出需要关注的支付。
了解更多:List Payments API

4. 客户门户中的退款表

客户门户现在包含一个专用的 退款 部分,客户可以在其中查看与其支付相关的所有退款。每个退款条目显示退款金额、状态、日期以及退款对应的原始支付,让客户无需联系支持即可全面了解其退款历史。
退款表会自动在所有企业的客户门户中显示,无需任何配置。
了解更多:客户门户

5. 将仪表复制到实时模式

你现在可以直接在仪表板中将测试模式的仪表复制到实时模式。完成测试模式下的仪表配置后,使用复制操作即可在保持所有设置不变的情况下将其复制到实时模式:聚合类型、事件名称、筛选器以及信用关联。这免去了从开发转向生产时手动重建仪表的需求。
先在测试模式中构建并验证仪表配置,然后在准备上线时将其复制到实时模式。这样可以确保在处理真实客户使用前,计费设置已经过测试。
了解更多:基于使用的计费 | 仪表