> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 客户门户

> 使客户能够自助服务并安全管理他们的订阅、账单历史、许可证密钥和个人资料。

<Info>
  客户门户是一个安全的托管区域，客户可以在其中管理订阅、查看发票并访问许可密钥详细信息——无需联系支持。
</Info>

<CardGroup cols={2}>
  <Card title="Create Portal Session (API)" icon="code" href="/api-reference/customers/create-customer-portal-session">
    通过编程方式创建安全的时限门户会话。
  </Card>

  <Card title="Subscriptions" icon="repeat" href="/features/subscription">
    管理定期计划、升级、降级和附加组件。
  </Card>
</CardGroup>

<br />

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/new-portal.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=9431b2e24142e47cb39dc84c1a0303fe" alt="改版的客户门户，显示活跃订阅、支付方式和账单历史" width="2876" height="1568" data-path="images/customer-portal/new-portal.png" />
</Frame>

## 什么是客户门户？

该门户为客户提供了一个可信的、品牌化的自助服务体验，客户可以：

* **访问账单历史**：查看发票并下载收据。
* **管理订阅**：查看订阅详情，立即取消订阅或在下一个计费日期取消。
* **更新支付方式**：更改活跃订阅的支付方式或重新激活暂停的订阅。
* **检索许可密钥**：访问与购买相关的所有密钥。
* **轻松导航**：使用返回按钮在门户部分之间移动，而不会丢失上下文。

## 主要好处

* **降低支持量**：客户自行解决常见的账单请求。
* **更快的价值实现**：立即访问发票和密钥。
* **降低流失风险**：清晰可见的续订和计划详情。
* **安全设计**：使用过期链接的令牌化访问。

## 访问方式

客户可以通过静态链接或一次性动态链接访问门户。

### 静态链接（基于电子邮件的访问）

客户可以通过在一个永不过期的静态链接中输入他们的电子邮件来请求门户访问。

静态门户链接格式因环境而异：

**测试模式**（用于测试和开发）：

```bash theme={null}
https://test.customer.dodopayments.com/login/{business_id}
```

**实时模式**（用于真实交易的生产环境）：

```bash theme={null}
https://customer.dodopayments.com/login/{business_id}
```

将 `{business_id}` 替换为您的实际业务标识符，然后与客户分享相应链接，以便他们输入电子邮件并获取安全的门户访问权限。

<Frame>
  <img src="https://mintcdn.com/dodopayments/kIuKVjhdOQFWlzSx/images/customer-portal/email-login.png?fit=max&auto=format&n=kIuKVjhdOQFWlzSx&q=85&s=bd8ee54177bc23e12e3657c87f487bae" alt="基于电子邮件的登录界面" width="2880" height="1550" data-path="images/customer-portal/email-login.png" />
</Frame>

<Steps>
  <Step title="Merchant flow">
    1. 转到 Sales → Customer。
    2. 点击 <i>Share invite</i>。
    3. 复制 <i>Static link</i> 并与客户分享。
  </Step>

  <Step title="Customer flow">
    1. 打开该静态链接。
    2. 输入购买时使用的电子邮件。
    3. 收到一个安全的登录链接以访问门户。

    <Check>
      现有客户会被自动识别。
    </Check>
  </Step>
</Steps>

### 动态链接（魔法链接）

一个个性化的一次性魔法链接，直接将客户引导到门户。该链接在24小时内过期。

<Warning>
  动态链接在 24 小时后过期。如过期，请生成并发送新链接。
</Warning>

<Frame>
  <img src="https://mintcdn.com/dodopayments/kIuKVjhdOQFWlzSx/images/customer-portal/magic-link.png?fit=max&auto=format&n=kIuKVjhdOQFWlzSx&q=85&s=8e63714f40468bd6e42c811e194f2698" alt="魔术链接直接访问" width="2880" height="1554" data-path="images/customer-portal/magic-link.png" />
</Frame>

<Steps>
  <Step title="Merchant flow">
    1. 转到 Sales → Customer。
    2. 点击 <i>Share invite</i>。
    3. 复制 <i>Dynamic link</i> 并与客户分享。
  </Step>

  <Step title="Customer flow">
    1. 打开该动态链接。
    2. 直接访问客户门户，无需输入电子邮件。
  </Step>
</Steps>

## 门户功能

改版后的客户门户提供了简洁统一的界面，带有左侧边栏，并为所有账户管理需求组织了各个版块。

<CardGroup cols={2}>
  <Card title="Active Subscriptions" icon="repeat">
    查看所有激活订阅，其包含计划名称、价格、续订日期和有效期。点击“Manage subscription”可查看详情、编辑账单信息或取消。
  </Card>

  <Card title="Payment Methods" icon="credit-card">
    一目了然地查看所有保存的支付方式（卡、UPI 等）。可以直接在订阅详情中编辑支付方式。
  </Card>

  <Card title="Billing History" icon="file-invoice">
    在详细表格中查看所有交易，含日期、状态、定价类型、权益以及可下载的发票。
  </Card>

  <Card title="Billing Information" icon="user">
    在订阅详情页查看并编辑姓名、电子邮件、电话号码及账单地址。
  </Card>
</CardGroup>

### 门户概览

门户主页在一个可滚动视图中展示所有激活订阅、保存的支付方式和账单历史。

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/new-portal.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=9431b2e24142e47cb39dc84c1a0303fe" alt="客户门户主页，展示活跃订阅和支付方式" width="2876" height="1568" data-path="images/customer-portal/new-portal.png" />
</Frame>

### 支付方式与账单历史

向下滚动可查看保存的支付方式和含状态指示及可下载发票的完整账单历史。

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/payment-methods-invoices.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=1aed6644dbb338cda755798eda99a6f2" alt="显示支付方式和账单历史，支持下载发票" width="2880" height="1560" data-path="images/customer-portal/payment-methods-invoices.png" />
</Frame>

## 计划变更（升级/降级）

当产品被归类到 **产品集合** 中时，客户可以直接在客户门户内在计划之间升级或降级。

<Tip>
  **想为现有订阅启用升级/降级？** 将您的订阅产品添加到产品集合。一旦归组，客户即可通过客户门户在同一集合内的计划之间切换。
</Tip>

* **自动检测**：首次访问时，门户会根据客户的浏览器设置检测其首选语言，并加载相应的翻译（如果有）。默认情况下使用英语。
* **手动覆盖**：客户可以随时通过门户标题中的语言选择器更改活动语言（适用于电脑和移动设备）。
* **持久偏好**：所选语言将存储在 `NEXT_LOCALE` cookie 中（有效期为1年），以便在会话之间记住选择。

| 操作            | 描述              | 何时可用      |
| ------------- | --------------- | --------- |
| **Upgrade**   | 在同一集合内切换至更高等级计划 | 企业已启用订阅更新 |
| **Downgrade** | 在同一集合内切换至更低等级计划 | 企业已启用订阅更新 |

### 计划变更的工作原理

1. 客户在门户中查看当前订阅
2. 根据产品集合显示可用的升级/降级选项
3. 客户选择新计划
4. 按比例分摊会被计算并（如适用）立即处理付款
5. 订阅被更新至新计划

<Info>
  计划变更仅在同一集合内的产品之间可用。产品必须是订阅或基于使用量计费类型。
</Info>

### 企业控制

企业可在订阅设置中配置计划变更行为：

* **Allow Subscription Updates**：启用或禁用客户升级或降级其订阅的能力

<Card title="Product Collections" icon="layer-group" href="/features/product-collections">
  了解如何设置产品集合并配置升级/降级路径。
</Card>

## 订阅详情

当客户在任意活跃订阅上点击“Manage subscription”时，他们会进入订阅详情页面。该页面显示：

* **Plan details**：订阅名称、价格、续订日期以及有效期
* **Payment method**：连接到订阅的卡或支付方式，附有“Edit”按钮
* **Billing information**：姓名、电子邮件、电话号码和账单地址，附有“Edit”按钮
* **Billing history**：该订阅所有付款的详细表格
* **Cancel Subscription**：一个显眼的按钮，用于取消订阅

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/subscription-details.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=4ae46f6878c9343b2e963c516952c9d3" alt="订阅详情页，展示计划信息、支付方式、账单信息和取消选项" width="2880" height="1560" data-path="images/customer-portal/subscription-details.png" />
</Frame>

## 取消订阅

客户可以直接在订阅详情页取消订阅。点击“Cancel Subscription”会打开一个确认对话框，提供两个选项：

* **Cancel at next billing date**：订阅在当前计费期结束后自动取消。
* **Cancel now**：订阅立即取消。

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/cance-sub.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=66eb6e380c991826c431fd0c563cbfa6" alt="带有下一个计费日取消或立即取消选项的取消订阅对话框" width="2880" height="1550" data-path="images/customer-portal/cance-sub.png" />
</Frame>

## 更新支付方式

客户可以通过点击支付方式旁的“Edit”按钮，在订阅详情页直接更新支付方式。此功能对于因付款失败而被暂停的订阅的重新激活尤为重要。

### 重新激活被暂停的订阅

当订阅因付款失败而被置于 `on_hold` 状态时，客户必须更新支付方式以重新激活。更新流程会自动：

1. **Creates a charge** 用于结清剩余欠款
2. **Generates an invoice** 用于该费用
3. **Processes the payment** 使用新支付方式处理付款
4. **Reactivates the subscription**，在付款成功后将其恢复至 `active` 状态

<Warning>
  处于 `on_hold` 状态的订阅不会自动续订。客户必须更新支付方式以清除欠款并重新激活订阅。
</Warning>

### 取消原因

在确认取消之前，客户会被询问\*\*“您为什么要取消？”\*\*并从精心策划的列表中选择一个原因。原因会存储在订阅中，并显示在 webhook 有效负载和 API 中，以便分析流失原因并定制重新吸引的流程。

<Frame>
  <img src="https://mintcdn.com/dodopayments/RlXcM7JO-E_w40Np/images/customer-portal/cancellation-reasons.png?fit=max&auto=format&n=RlXcM7JO-E_w40Np&q=85&s=979394da2a9aa3907cbf9f4e225f9a4b" alt="取消模态窗口，显示‘您为什么要取消？’的下拉选项，原因如太贵，缺少功能，和其他" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1564" data-path="images/customer-portal/cancellation-reasons.png" />
</Frame>

| 值                  | 客户展示标签  |
| ------------------ | ------- |
| `too_expensive`    | 太贵      |
| `missing_features` | 缺少功能    |
| `switched_service` | 切换到其他服务 |
| `unused`           | 使用不足    |
| `customer_service` | 客户服务差   |
| `low_quality`      | 质量低     |
| `too_complex`      | 太复杂     |
| `other`            | 其他      |

所选值将写入订阅的 `cancellation_feedback` 字段。还可以捕获一个可选的自由文本 `cancellation_comment`。

```typescript theme={null}
// Read the captured feedback after a customer cancels
const subscription = await client.subscriptions.retrieve('sub_123');
console.log(subscription.cancellation_feedback); // e.g., "too_expensive"
console.log(subscription.cancellation_comment);  // e.g., "Switching to a competitor"
```

两个字段也包含在 `subscription.cancelled` webhook 有效负载中，并且可以在通过 API 调度或执行取消时以编程方式填充。

<Tip>
  结合 `cancellation_feedback` 和 [Subscription Dunning](/features/recovery/subscription-dunning) 为定制重新吸引邮件——例如，发送折扣代码给 `too_expensive` 取消者，并发送“缺少什么？”调查给 `missing_features` 取消者。
</Tip>

## 更新支付方式

客户可以直接从订阅详情页面，通过点击支付方式旁边的“编辑”按钮更新其支付方式。此功能对重新激活因支付失败而中止的订阅尤为重要。

### 重新激活暂停的订阅

当订阅因支付失败而处于 `on_hold` 状态时，客户必须更新其支付方式以重新激活。更新过程会自动：

1. **创建未付费用的费用**
2. **生成费用发票**
3. **使用新支付方式处理支付**
4. **在成功支付后，将订阅重新激活为 `active` 状态**

<Warning>
  处于 `on_hold` 状态的订阅将不会自动续订。客户必须更新其支付方式以清除欠款并重新激活订阅。
</Warning>

<Info>
  成功更新 `on_hold` 订阅的支付方式后，客户将看到确认页面并收到成功支付和订阅重新激活的电子邮件通知。
</Info>

### 支付方式更新流程

<Steps>
  <Step title="Access subscription details">
    从门户主页的任何有效订阅中点击“管理订阅”。
  </Step>

  <Step title="Click Edit on payment method">
    点击支付方式旁的“编辑”按钮以打开支付方式更新界面。
  </Step>

  <Step title="Select or add payment method">
    选择一个现有的已保存支付方式或通过安全地输入卡信息添加新支付方式。
  </Step>

  <Step title="Confirm changes">
    确认更新。对于 `on_hold` 订阅，这将自动为剩余欠款创建费用。
  </Step>

  <Step title="Complete payment (if on hold)">
    如果订阅被暂停，客户将被重定向以完成剩余欠款的支付。成功支付后，订阅将自动重新激活。
  </Step>

  <Step title="Confirmation">
    客户会收到支付方式已更新的确认，并且如果适用，订阅已被重新激活。
  </Step>
</Steps>

## 集成示例

通过 API 为特定客户创建一个时间限制的客户门户会话，然后重定向用户到该会话 URL。

<CodeGroup>
  ```typescript Node.js theme={null}
  const session = await client.customers.customerPortal.create('cus_123');

  // Redirect the user to the hosted Customer Portal
  window.location.href = session.link;
  ```
</CodeGroup>

## 统一客户门户

除了特定业务的客户门户外，Dodo Payments 提供一个**统一客户门户**，在[customer.dodopayments.com](https://customer.dodopayments.com)上，客户可以查看和管理使用 Dodo Payments 的不同业务的所有购买和订阅。

<Frame>
  <img src="https://mintcdn.com/dodopayments/eNGWg9ca-WxQ9nMf/images/changelog/unified-customer-portal.png?fit=max&auto=format&n=eNGWg9ca-WxQ9nMf&q=85&s=bceabb06ca0f00aa2a458f4af95a5cda" alt="统一客户门户" style={{ maxHeight: '500px', width: 'auto' }} width="1640" height="953" data-path="images/changelog/unified-customer-portal.png" />
</Frame>

### 统一门户功能

* **跨业务可见性**：在一个地方查看任何 Dodo Payments 商户的所有购买和订阅
* **集中管理**：从单一仪表板管理不同业务的订阅
* **统一账单历史**：访问所有购买的发票和支付历史
* **单点登录**：使用电子邮件登录一次即可访问所有 Dodo Payments 商户的购买

<Tip>
  统一客户门户补充了业务特定门户。客户可以根据自己的偏好使用品牌商户门户或统一门户。
</Tip>

## 故障排除

* **链接过期**：生成并发送一个新的动态链接。
* **电子邮件不被识别**：请客户使用与其购买关联的电子邮件
* **订阅暂停**：如果订阅被暂停，客户必须通过门户更新支付方式以清除欠款并重新激活订阅。更新过程将自动对剩余欠款收费。
* **支付方式更新失败**：如果在更新过程中支付失败，对于 `on_hold` 订阅，订阅将保持暂停状态。客户可以尝试使用其他支付方式。

<Card title="Design & Theme Customization" icon="palette" href="/features/design">
  使用预构建主题、字体、颜色和设计页面的实时预览自定义您的客户门户外观。
</Card>
