充值
查询充值方式与档位配置、查询本人充值/兑换记录、预览与执行兑换码兑换。
充值接口均属于管理接口:鉴权方式为登录会话(或用户 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 | 使用兑换码兑换额度或套餐 |
查询充值配置
/api/user/self/topup/info无需参数,返回站点当前开放的支付方式与充值档位配置,用于渲染充值页面。
{
"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 折)
查询充值/兑换记录
/api/user/self/topup/selfpint页码,从 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记录状态
预览兑换码
/api/user/self/topup/preview在真正兑换前查看兑换码的效果,不会实际执行兑换,可安全重复调用。
keystring必填兑换码
响应结构随兑换码类型不同:
普通额度兑换码(非套餐类型):
{ "success": true, "message": "", "data": { "type": "quota", "requires_package_action": false, "quota": 500000 } }
套餐兑换码:
{
"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(如「该兑换码已被使用」「该兑换码已过期」「套餐已禁用」)。执行兑换
/api/user/self/topupkeystring必填兑换码
package_actionstring仅当预览返回 requires_package_action=true 时生效;取值 stack(叠加:额度累加,有效期取更长)或 extend(续期:在当前基础上顺延有效期)。未识别的值按 extend 处理
默认值: extend响应结构随兑换码类型不同:
普通额度兑换码:
{ "success": true, "message": "", "data": { "type": "quota", "quota": 500000 } }
套餐兑换码:
{
"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": "暂不支持套餐降级,请先提交退款申请"}。
同一账号同时只能有一个兑换请求在处理中,并发重复提交会返回处理中的提示,需等待上一次完成后重试。