获取API密钥

创建Chargebee账户后,您需要获取API密钥。您可以前往仪表板的API页面获取。在这里您会找到Secret keyPublishable key。集成需要使用Secret key

添加环境变量

要使用Chargebee集成,您需要在.env.local和生产环境中定义以下环境变量:

.env.local
CHARGEBEE_API_KEY=
CHARGEBEE_SITE=
CREEM_API_KEY=""

应用内购买

您可以通过导入chargebee对象在应用中的任何地方使用Chargebee:

page.tsx
import { chargebee } from '@repo/payments';

创建结账会话

我们需要创建一个结账会话来向用户收费,您只需修改部分代码。这包含两部分:

  • 客户端

/api/chargebee/checkout端点发送创建会话的请求。

zh/apps/web/[locale]/components/payment/price-form.tsx
      const response = await fetch('/api/chargebee/checkout', { // 修改为`/api/chargebee/checkout`
        method: 'POST',
        body: JSON.stringify({
          priceId: item.priceId,
          interval: item.interval,
        }),
      });
  • 服务端

apps/web/api/chargebee/checkout/route.ts中实现业务逻辑

Webhooks

创建Webhook

要配置新的Webhook,请转到Chargebee仪表板中的Webhooks页面。点击“添加端点”按钮,并至少选择以下事件:

  • Subscription Created
  • Subscription Changed
  • Subscription Cancelled

Webhook处理程序

Stripe的Webhook在apps/api应用中的POST /webhooks/chargebee路由中处理。此路由会构造事件,然后根据事件类型进行切换以确定如何处理该事件。