Documentation Index
Fetch the complete documentation index at: https://docs.gate.com/llms.txt
Use this file to discover all available pages before exploring further.
概述
订阅支付适用于会员、SaaS、周期性服务和其他需要持续授权与扣款的业务。订阅支付产品在能力上分为两类,通过产品价格上的priceType 区分:
priceType | 产品能力 | 扣款方式 |
|---|---|---|
FIX_AMOUNT | 固定金额、按订阅计划周期扣款 | 用户完成授权后,由系统按商户创建的订阅计划自动执行周期扣款 |
ACCOUNT_AUTH | 账户授权、商户自主决定何时扣款 | 用户完成授权后,由商户按业务需要主动发起扣款 |
标准接入流程
两类产品在主链路上一致:创建产品 → 创建订阅计划 → 创建订阅订单 → 引导用户授权;差异在授权成功之后:扣款阶段分支说明
- FIX_AMOUNT:授权成功后 → 周期扣款(按计划自动执行)→ 查询与通知跟踪
- ACCOUNT_AUTH:授权成功后 → 商户按需发起扣款 → 查询与通知跟踪
最小可运行链路
首次接入建议先跑通最小链路,再补充试用期、首期优惠、终止条件等。- FIX_AMOUNT:完成上述链路后,重点观察计划周期内的自动扣款与失败重试。
- ACCOUNT_AUTH:完成授权后,需在业务侧主动触发扣款并同样通过通知 + 查询确认结果。
第一步:创建产品
商户先创建订阅产品及其价格信息,用于定义订阅对象、计费币种和展示信息;选择价格时请指定priceType,以确定后续是固定周期扣款还是授权后商户自主扣款。
核心接口:
POST /merchant/open/v1/pay/merchant/product/createGET /merchant/open/v1/pay/merchant/product/pageQueryGET /merchant/open/v1/pay/merchant/product/queryOne
第二步:创建订阅计划
订阅计划用于定义与订阅相关的规则(如扣款周期、试用期、结束条件、优惠方式等)。创建计划时需关联前一步创建的产品或价格信息。 核心接口:POST /open/v1/plan/saveGET /open/v1/plan/listGET /open/v1/plan/detail
第三步:创建订阅订单
用户确认购买后,由商户服务端创建订阅订单。接口返回的subscriptionLink 用于引导用户进入授权页面。
核心接口:
POST /open/v1/order/createGET /open/v1/order/listGET /open/v1/order/detail
第四步:引导用户完成授权
商户前端将用户重定向到subscriptionLink,由用户完成授权。
- FIX_AMOUNT:授权完成后,订阅进入计划约定的周期扣款阶段。
- ACCOUNT_AUTH:授权完成后,获得账户扣款授权;后续由商户在服务端调用接口
POST /open/v1/order/deduct触发扣款。
第五步:跟踪订单与扣款状态
订阅订单状态与每次扣款状态应优先通过通知获取,再用查询接口兜底确认。 核心接口:GET /open/v1/deduction/order/listGET /open/v1/deduction/order/detailPOST /open/v1/order/deduct(ACCOUNT_AUTH场景下商户主动扣款)
subscriptionOrderNotifyWebhook:订阅订单状态更新通知subscriptionOrderPaymentNotifyWebhook:支付扣款通知
接入建议
- 订阅产品、计划和订单建议分别保存独立的业务标识,方便排查与对账。
- 创建订单后,前端应尽快引导用户完成授权,降低授权前流失。
- 首次接入建议把「订阅订单状态」与「扣款状态」作为两条独立业务线理解;
ACCOUNT_AUTH还需区分「授权额度」与「已扣款总金额」。 - FIX_AMOUNT:周期扣款是持续流程,不要仅凭单次 API 响应判断订阅长期是否正常。
- ACCOUNT_AUTH:需在服务端建立授权有效期、扣款幂等与重试策略,避免重复或遗漏扣款。
- 若内部有用户中心或会员系统,建议将订阅状态与会员权益做显式映射,避免把单次支付结果直接等同于权益状态。
常见问题
订阅支付支持的币种和支付方式有哪些?
支持使用所有主流 Web3 钱包,或通过 Gate App 授权账户中的 USDT/USDC 进行订阅;如您已开通 Stripe 收款,我们也支持关联账户实现法币订阅支付。订阅订单的有效期是多久?
订阅订单本身没有统一的有效期表述,它会根据配置的totalPayCount 或 endTime 等终止条件结束;若均未配置,通常可视为长期订阅。
如何设置试用期?
创建订阅计划时可通过trialDays 设置试用天数。试用期内不执行正式扣款,试用期结束后按产品与计划规则进入后续的扣款流程。
如何设置首期优惠?
针对订阅支付场景,在创建产品价格时可通过promoConfigType 配置首期优惠:
FIX_AMOUNT:设置promoAmount作为首期优惠金额RATE:设置promoRate作为首期折扣比例,例如0.1表示一折价格
订阅开始后如何手动结束?
商户可调用POST /open/v1/order/complete,并设置 operationType=FINISH 结束订阅,结束后系统不再执行后续的扣款。
ACCOUNT_AUTH 模式下扣款由谁发起?
由商户根据业务需求在服务端主动触发,可调用POST /open/v1/order/deduct,输入金额和币种发起扣款,并与通知、扣款查询接口校验状态。
订单状态说明
| 状态 | 说明 |
|---|---|
CREATED | 订阅订单已创建,等待用户授权 |
AUTHORIZED | 已完成授权,等待首次扣款或等待商户发起扣款 |
CONFIRMING | 确认中,首次确认订阅时等待扣款结果 |
TRIAL | 处于试用期内,尚未开始扣款 |
RUNNING | 订阅正常运行中,等待系统或由商户发起扣款 |
UNPAID | 当前扣款失败,但尚未达到关闭条件 |
COMPLETED | 已达到结束条件,或由商户手动完成 |
CANCELLED | 已被商户取消 |
CLOSED | 因异常情况关闭,例如扣款失败次数超限 |
BLOCKED | 已扣款但资金存在风控风险 |

