> For the complete documentation index, see [llms.txt](https://docs.catfee.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.catfee.io/solutions/one-order-one-payment-to-c.md).

# 一单一付（用户付款)

## 1. 概述

**一单一付 (TO C)** 模式由 CatFee 提供，主要面向钱包厂商或支付平台。 该模式下，**由最终用户直接支付能量/带宽资源费用**，钱包厂商无需预存资金即可为用户提供实时能量服务。

适用于 **兑换、MEME 币交易等对实时性要求高的业务场景**，能显著提升用户体验。

### 模式优势

1. **用户体验好**：实时发起合约时，自动获取所需能量，整个过程无感知。
2. **钱包无需垫资**：不需要钱包预先充值或锁定资金。
3. **账务透明**：所有资源代理、支付交易均在 TRON 链上可查，账务可追溯。

***

## 2. 接入流程

钱包需要对接 CatFee 的开放 API，实现资源费用查询、交易创建、支付确认。

### 流程语言描述

1. **用户发起合约** 用户在钱包中发起一次智能合约调用（如兑换、转账），此时交易尚未广播。
2. **查询资源费用** 钱包调用 `/v1/mate/open/transaction/estimate` 向 CatFee 请求所需能量/带宽的费用，CatFee 返回预估结果，钱包将费用展示给用户。
3. **创建代理资源交易** 钱包调用 `/v1/mate/open/transaction`，由 CatFee 返回一笔已签名但未广播的 **代理能量交易**。这笔交易稍后会用于为用户补充能量。
4. **用户确认支付** 钱包提示用户支付资源费，用户确认后，钱包生成一笔 **支付资源费交易**（未广播）。
5. **依次广播交易** 钱包依次将三笔交易广播到 TRON 网络：
   * 代理资源交易（确保用户能量充足）
   * 用户智能合约交易（完成业务逻辑）
   * 用户支付资源费交易（支付给 CatFee）
6. **提交支付 HASH** 钱包调用 `/v1/mate/open/transaction/pay/{order_id}`，将用户支付交易的 HASH 提交给 CatFee。
7. **CatFee 对账与确认** CatFee 定时扫描链上：
   * 若支付成功 → 更新订单为 **成功**。
   * 若支付失败 → 更新订单为 **失败**，并将结果反馈给钱包。

### 时序图

```mermaid
sequenceDiagram
    autonumber

    actor c as 用户 (User)
    participant w as 钱包 (Wallet Vendor)
    participant f as CatFee
    participant t as TRON网络

    c->>w: 发起智能合约交易 (未广播)
    w->>f: 查询所需资源费用 (POST /v1/mate/open/transaction/estimate)
    f->>w: 返回费用详情
    w->>f: 创建代理资源交易 (POST /v1/mate/open/transaction)
    f->>w: 返回代理能量交易 (未广播)
    c-->>w: 创建支付资源费交易 (未广播)

    w->>t: 广播代理资源交易
    w->>t: 广播用户智能合约交易
    w->>t: 广播支付资源费交易

    w-->>f: 提交支付 HASH (POST /v1/mate/open/transaction/pay/{order_id})

    activate f
    alt 校验转账成功
        f->>f: 更新订单状态为成功
    else 校验转账失败
        f->>f: 更新订单状态为失败
        f-->>w: 返回失败订单
    end
    deactivate f
```

***

## 3. API 接口说明

### 3.1 预估所需资源费用

**接口**： `POST /v1/mate/open/transaction/estimate`

**描述**： 钱包调用此接口，获取执行用户合约所需的能量/带宽费用。

详细说明[点击这里](/api-reference/transaction/estimate-fee.md)

***

### 3.2 创建代理资源交易

**接口**： `POST /v1/mate/open/transaction`

**描述**： CatFee 返回一个未广播的代理资源交易（能量代理），钱包负责后续广播。

详细说明[点击这里](/api-reference/transaction/create-transaction.md)

***

### 3.3 提交支付 HASH

**接口**： `POST /v1/mate/open/transaction/pay/{order_id}`

**参数**：

* `hash`：用户支付资源费的交易 HASH

**描述**： 钱包在用户完成支付后，将支付交易 HASH 提交给 CatFee，CatFee 定时扫描链上确认支付情况，并更新订单状态。

详细说明[点击这里](/api-reference/transaction/pay-transaction.md)

***

## 4. 对账与异常处理

1. **支付校验**
   * CatFee 会定时扫描链上确认支付交易。
   * 若支付成功 → 更新订单为 **成功**。
   * 若支付失败 → 更新订单为 **失败**，并反馈给钱包。
2. **异常场景**
   * 用户未及时支付 → 订单会进入 **失败状态**。
   * 钱包需根据反馈信息决定是否提示用户或重试。

***

## 5. 接入要点总结

* **钱包端职责**：
  * 发起合约前，先查询所需能量费用
  * 请求 CatFee 生成资源代理交易
  * 负责广播代理交易、合约交易、支付交易
  * 将支付 HASH 提交给 CatFee
* **CatFee职责**：
  * 提供资源费用估算
  * 返回未广播代理交易
  * 校验用户支付交易并更新订单状态
  * 提供失败订单反馈

***

📌 **一单一付模式适合：**

* 钱包厂商无需自备能量池
* 需要实时完成交易（兑换、MEME 币等高频操作）
* 强调用户自主支付与账务透明
