充值

查询充值方式与档位配置、查询本人充值/兑换记录、预览与执行兑换码兑换。

充值接口均属于管理接口:鉴权方式为登录会话(或用户 access token)+ Jimu-Api-User 请求头, 不接受 sk- API 令牌本身,详见 鉴权与令牌。 错误响应为管理接口形态(success/message),见 错误处理与请求追踪。

本页覆盖的是兑换码兑换链路(/api/user/self/topup)与信息查询接口。 在线支付下单(支付宝/微信/Stripe/Creem)走各自独立的下单接口,不在本页范围内。

方法路径说明
GET/api/user/self/topup/info查询支付方式、最低充值额、可选档位等配置
GET/api/user/self/topup/self查询本人充值/兑换记录(分页)
POST/api/user/self/topup/preview预览兑换码兑换效果(不实际兑换)
POST/api/user/self/topup使用兑换码兑换额度或套餐

查询充值配置

GET/api/user/self/topup/info

无需参数,返回站点当前开放的支付方式与充值档位配置,用于渲染充值页面。

响应200
{
  "success": true,
  "message": "",
  "data": {
    "enable_online_topup": true,
    "enable_stripe_topup": false,
    "enable_creem_topup": false,
    "creem_products": "[]",
    "pay_methods": [
      { "name": "支付宝", "type": "alipay", "color": "rgba(var(--semi-blue-5), 1)" }
    ],
    "min_topup": 10,
    "stripe_min_topup": 0,
    "amount_options": [10, 50, 100, 500],
    "discount": {}
  }
}
enable_online_topupbool

是否已配置易支付(支付宝/微信码在线充值)

enable_stripe_topupbool

是否已配置 Stripe

enable_creem_topupbool

是否已配置 Creem

pay_methodsarray

可用支付方式列表,每项含 name/type/color

min_topupint

最低充值额(单位随站点货币展示配置而定)

amount_optionsint[]

推荐充值档位

discountobject

特定档位的折扣映射,键为档位金额,值为折扣系数(如 0.9 表示 9 折)

查询充值/兑换记录

GET/api/user/self/topup/self
pint

页码,从 1 开始

page_sizeint

每页条数

keywordstring

可选,按关键字搜索记录

data 为分页对象 {page, page_size, total, items},items 为账单记录数组:

idint

记录 ID

user_idint

所属用户 ID

typestring

记录类型,topup(在线充值)或 package_redemption(套餐兑换)

trade_nostring

充值订单号或兑换码

amountint

充值额度或套餐额度

moneyfloat

实际支付金额;兑换码兑换为 0

payment_methodstring

支付方式

statusstring

记录状态

预览兑换码

POST/api/user/self/topup/preview

在真正兑换前查看兑换码的效果,不会实际执行兑换,可安全重复调用。

keystring必填

兑换码

响应结构随兑换码类型不同:

普通额度兑换码(非套餐类型):

响应200
{ "success": true, "message": "", "data": { "type": "quota", "requires_package_action": false, "quota": 500000 } }

套餐兑换码:

响应200
{
  "success": true,
  "message": "",
  "data": {
    "type": "package",
    "requires_package_action": true,
    "current_package_code": "pro",
    "current_package_name": "Pro 套餐",
    "current_package_expire_time": 1759000000,
    "current_package_days_remaining": 12,
    "current_package_level": 10,
    "target_package_card_id": 5,
    "target_package_code": "pro",
    "target_package_name": "Pro 套餐",
    "target_package_daily_quota": 100000,
    "target_package_interval_quota": 0,
    "target_package_duration_days": 30,
    "target_package_level": 10
  }
}
typestring

兑换码类型:quota(普通额度)或 package(套餐)

requires_package_actionbool

仅套餐类型有意义;为 true 时表示目标套餐与当前套餐同级且仍在有效期内,需要在正式兑换时指定 package_action(叠加或续期)

current_package_codestring

当前套餐标识;无套餐或已过期时为 no_package

current_package_levelint

当前套餐等级

target_package_daily_quotaint

目标套餐每日额度

target_package_duration_daysint

目标套餐时长(天)

target_package_levelint

目标套餐等级

兑换码不合法、已使用、已过期,或套餐已禁用/未绑定有效套餐时返回 {"success": false, "message": "..."},具体原因见 message(如「该兑换码已被使用」「该兑换码已过期」「套餐已禁用」)。

执行兑换

POST/api/user/self/topup
keystring必填

兑换码

package_actionstring

仅当预览返回 requires_package_action=true 时生效;取值 stack(叠加:额度累加,有效期取更长)或 extend(续期:在当前基础上顺延有效期)。未识别的值按 extend 处理

默认值: extend

响应结构随兑换码类型不同:

普通额度兑换码:

响应200
{ "success": true, "message": "", "data": { "type": "quota", "quota": 500000 } }

套餐兑换码:

响应200
{
  "success": true,
  "message": "",
  "data": {
    "type": "package",
    "package_card_id": 5,
    "package_code": "pro",
    "package_name": "Pro 套餐",
    "package_quota": 100000,
    "package_expire_time": 1761600000,
    "package_days_remaining": 30
  }
}
套餐不支持降级兑换:目标套餐等级低于当前套餐等级时返回 {"success": false, "message": "暂不支持套餐降级,请先提交退款申请"}。 同一账号同时只能有一个兑换请求在处理中,并发重复提交会返回处理中的提示,需等待上一次完成后重试。
套餐兑换成功且存在邀请人时,系统会异步为邀请人发放奖励天数,与本次响应无关, 邀请人可通过 邀请 与领取奖励天数接口查看。