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

# MIT 支付接入指南

> 了解如何通过 /usd/mit/apply 接入 HaiPay MIT（商户发起交易）模式，完成首次绑卡扣款（获取 tokenID）与后续主动代扣。

> [!WARNING]
>
> 阅读本文档前，请务必先查看 [**接口说明与公共规则**](https://doc.haipay.net/zh/guide/api-conventions.md) 以及 [**CIT 与 MIT 交易模式说明**](https://doc.haipay.net/zh/payments/cit-mit.md)。

**MIT（Merchant-Initiated Transaction，商户发起交易）** 允许商户在用户首次在场（CIT）完成支付授权并绑定支付凭证（`tokenID`）后，由商户服务端根据业务需要在用户不在场（Off-Session）的情况下主动发起后续扣款。适用于**按量计费、余额自动续充、分期付款及商户自建周期调度**等场景。

> [!TIP]
>
> * **如果您的业务是固定金额、固定周期且有明确套餐期限的订阅**，无需自行调度 MIT 扣款，推荐直接使用由 HaiPay 自动调度的 [**订阅支付（`/subscription/apply`）**](https://doc.haipay.net/zh/payments/subscription)。
> * **MIT 首次授权走前置组件时，`mode` 请固定传 `'payment'`**（因为 MIT 在平台内归类为常规代收；仅固定套餐期限订阅传 `'subscription'`）。

## 两阶段接入流程

**1. 阶段一：首笔交易（用户在场授权并付款，获取 tokenID）**

1. 商户服务端调用 [MIT 代收申请接口 `POST /usd/mit/apply`](https://doc.haipay.net/zh/api-reference/card/mit-apply)，此时**不传 `tokenID`**。
2. 使用接口返回的 `payUrl`（[收银台模式](https://doc.haipay.net/zh/payments/payment-link.md)）或 `clientToken`（[前置组件 `mode: 'payment'`](https://doc.haipay.net/zh/payments/frontend-payment-element)）引导用户在场完成首次支付与身份验证。
3. 支付成功后，HaiPay 向 `notifyUrl` 发送异步通知，并在通知中返回绑定该用户与卡片的安全令牌 **`tokenID`**。商户服务端需将该 `tokenID` 与 `partnerUserId` 安全关联存储。

**2. 阶段二：后续交易（商户后台主动发起扣款）**

1. 当达到约定的扣款条件时，商户服务端再次调用 `POST /usd/mit/apply`，并**在请求中传入已保存的 `tokenID`**（以及相同的 `partnerUserId`）。
2. HaiPay 校验 `tokenID` 有效性后直接执行自动扣款，并通过 `notifyUrl` 异步通知扣款结果（也可通过 `/usd/collect/query` 查询）。

## MIT 专属参数说明

除常规代收公共字段外，`/usd/mit/apply` 包含以下专属控制参数：

| 参数名 | 必选 | 类型 | 说明 |
| :- | :- | :- | :- |
| `tokenID` | 否 | String | **支付凭证令牌**： • **首次交易（阶段一）**：不需要传递，支付成功后通过异步回调获取。 • **后续主动扣款（阶段二）**：**必传**，用于指定要扣款的已授权卡片或钱包凭证。 |
| `loadingType` | 否 | Integer | 支付结果页展示控制： • `0`（默认）：显示正常的支付结果页面。 • `1`：仅显示加载中动画（loading 转圈），不展示订单信息。 |
| `inBankCode` / `paymentMethods` | 二选一 | String | 当 `inBankCode` 不填时 `paymentMethods` 必填，反之亦然。传 `paymentMethods`（如 `"GOOGLE_PAY,CREDIT_CARD"`）可动态控制展示的支付方式及由上至下的顺序。 |

## 请求示例（`POST /usd/mit/apply`）

> [tab] 阶段一：首次绑卡扣款（不传 tokenID）
>
> ```json theme={null}
> {
>   "appId": 1054,
>   "orderId": "MIT_INIT_20261110001",
>   "amount": "19.99",
>   "phone": "+12025551234",
>   "email": "robert.taylor@gmail.com",
>   "name": "Robert Taylor",
>   "payType": "BANK_TRANSFER",
>   "inBankCode": "CREDIT_CARD",
>   "callBackUrl": "https://merchant.com/payment/success",
>   "callBackFailUrl": "https://merchant.com/payment/fail",
>   "cancelUrl": "https://merchant.com/payment/cancel",
>   "notifyUrl": "https://merchant.com/api/notify",
>   "subject": "Initial card authorization & payment",
>   "partnerUserId": "149597870",
>   "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG..."
> }
> ```

> [tab] 阶段二：后续主动代扣（传入 tokenID）
>
> ```json theme={null}
> {
>   "appId": 1054,
>   "orderId": "MIT_SUBSEQ_20261210001",
>   "amount": "29.99",
>   "phone": "+12025551234",
>   "email": "robert.taylor@gmail.com",
>   "name": "Robert Taylor",
>   "payType": "BANK_TRANSFER",
>   "inBankCode": "CREDIT_CARD",
>   "tokenID": "tok_abc123def456",
>   "loadingType": 0,
>   "callBackUrl": "https://merchant.com/payment/success",
>   "callBackFailUrl": "https://merchant.com/payment/fail",
>   "notifyUrl": "https://merchant.com/api/notify",
>   "subject": "Auto top-up / renewal charge",
>   "partnerUserId": "149597870",
>   "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG..."
> }
> ```

## 支付类型、编码与限额

MIT 代收单笔限额同样为 **0.99 – 1000 USD**：

| 币种 | 支付类型 (`payType`) | 支付编码 (`inBankCode`) | 单笔限额 (USD) | 状态 | 支持卡组织 / 钱包说明 |
| :- | :- | :- | :- | :- | :- |
| USD | `BANK_TRANSFER` | `CREDIT_CARD` | 0.99 - 1000 | 可用 | VISA |
| USD | `BANK_TRANSFER` | `CREDIT_CARD` | 0.99 - 1000 | 可用 | MasterCard |
| USD | `BANK_TRANSFER` | `CREDIT_CARD` | 0.99 - 1000 | 可用 | JCB |
| USD | `BANK_TRANSFER` | `CREDIT_CARD` | 0.99 - 1000 | 可用 | American Express (AMEX) |
| USD | `BANK_TRANSFER` | `CREDIT_CARD` | 0.99 - 1000 | 可用 | Diners Club (DINERS) |
| USD | `BANK_TRANSFER` | `CREDIT_CARD` | 0.99 - 1000 | 可用 | Discover (DISCOVER) |
| USD | `EWALLET` | `GOOGLE_PAY` | 0.99 - 1000 | 可用 | Google Pay |
| USD | `EWALLET` | `APPLE_PAY` | 0.99 - 1000 | 可用 | Apple Pay |

> [!NOTE]
>
> **`inBankCode` 与 `paymentMethods` 互斥二选一规则**：
>
> * 当指定单一支付方式时，传递 `inBankCode`（此时 `paymentMethods` 不填）。
> * 当需要动态控制展示的支付方式组合及**由上至下的展示顺序**时，传递 `paymentMethods`（英文逗号分隔，例如 `"GOOGLE_PAY,CREDIT_CARD"` 将仅展示这两项且按此顺序自上而下排列；此时 `inBankCode` 不填）。
> * 该动态排序与展示能力同样支持映射至 [全球收银台](https://doc.haipay.net/zh/payments/global-cashier.md)。

## 核心 API Reference 入口

完整字段约束、响应结构与在线调试请直接访问 API Reference：

> [card] [MIT 代收申请](https://doc.haipay.net/zh/api-reference/card/mit-apply.md)
>
> `POST /usd/mit/apply` — 发起首次授权或后续代扣。

> [card] [代收订单查询](https://doc.haipay.net/zh/api-reference/card/collect-query.md)
>
> `POST /usd/collect/query` — 查询 MIT 订单扣款状态。

> [card] [退款申请与查询](https://doc.haipay.net/zh/api-reference/card/refund-apply.md)
>
> `POST /usd/refund/apply` — 对已成功的 MIT 交易发起全额或部分退款。

## 相关主题

* [CIT 与 MIT 交易模式说明](https://doc.haipay.net/zh/payments/cit-mit.md)
* [前置组件模式](https://doc.haipay.net/zh/payments/frontend-payment-element.md)
* [收银台模式](https://doc.haipay.net/zh/payments/payment-link.md)
* [订阅支付接入指南](https://doc.haipay.net/zh/payments/subscription.md)
* [测试卡号](https://doc.haipay.net/zh/payments/test-cards.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.