1. 获取充值通道
接口地址:/home/money/getRechargeChannel
响应示例:
{
"code": 1,
"msg": "获取成功",
"data": {
"fee_rate": 0.05, // 充值手续费率
"channels": [
{
"value": 1, // 支付通道 ID
"label": "支付宝", // 支付通道名称
"ico": "https://fast.qqss.net/static/payment/zfb.png" // 支付通道图标
}
]
}
}2. 用户钱包充值
接口地址:/home/money/doRecharge
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| amount | float | 是 | 充值金额 |
| channelId | int | 是 | 充值通道ID(从获取充值通道接口的 value 字段获取) |
响应示例:
{
"code": 1,
"msg": "",
"data": {
"trade_no": "M240323034959999972",
"url": "http://127.0.0.1:7979/pay/M240323034959999972",
"auto_close_time": 1800 // 订单自动超时关闭时间
}
}字段说明:
trade_no:充值订单号url:支付页面URL(需要跳转到此URL完成支付)auto_close_time:订单自动关闭时间(秒,默认1800秒=30分钟)
说明:
- 创建充值订单后,需要跳转到返回的
url完成支付 channelId参数值来自"获取充值通道"接口返回的channels[].value字段- 订单创建后会自动关闭,关闭时间由系统配置
charge_order_auto_close_time决定 - 支付页面会根据选择的通道展示相应的支付方式
- 充值金额需大于0
错误响应示例:
{
"code": 0,
"msg": "充值金额必须大于0",
"data": null
}{
"code": 0,
"msg": "充值通道不存在或已关闭",
"data": null
}3. 充值订单列表
接口地址:/home/money/rechargeList
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| status | Integer | 否 | 订单状态:0-待支付,1-已支付,2-已关闭 |
| page | Integer | 否 | 页码,默认1 |
| limit | Integer | 否 | 每页数量,默认10 |
响应示例:
{
"code": 1,
"msg": "获取成功",
"data": {
"list": [
{
"id": 17,
"trade_no": "M251116899237",
"user_type": 2,
"goods_name": "用户钱包充值 50元",
"total_price": "52.500",
"finally_money": "50.000",
"user_id": 1008,
"status": 2,
"channel_account_id": 21,
"channel_id": 1,
"recharge_type": "user_money",
"fee": "2.500",
"create_at": "2025-11-16 08:18:40",
"pay_at": null,
"transaction_id": null
}
],
"total": 1
}
}字段说明:
基础信息:
id:充值订单IDtrade_no:充值订单号goods_name:订单描述(格式:用户钱包充值 XX元)create_at:创建时间pay_at:支付时间(未支付时为 null)transaction_id:第三方支付交易号(未支付时为 null)
用户信息:
user_id:用户IDuser_type:用户类型(2-普通用户)
金额信息:
total_price:订单总价(充值金额 + 手续费)finally_money:实际到账金额(充值金额)fee:手续费
充值信息:
channel_id:充值通道IDchannel_account_id:通道账户IDrecharge_type:充值类型(user_money-用户余额)
订单状态:
status:订单状态- 0:待支付
- 1:已支付
- 2:已关闭
说明:
- 订单列表只显示用户设置的数据时效性范围内的订单
- 默认按创建时间倒序排列
total_price=finally_money+fee- 已支付的订单会有
pay_at和transaction_id - 订单超时未支付会自动关闭(status = 2)
4. 申请提现配置详情
接口地址:/home/money/applyConfig
请求参数:无
响应示例:
- 同 商户端 获取申请提现配置
{
"code": 1,
"msg": "获取成功",
"data": {
"user": {
"id": 1008,
"money": 0,
"freeze_money": 120,
"user_money": 1266,
"cash_type": 3,
"auto_cash_money": 20
},
"limit_num": 5,
"cash_fee_type": 100,
"cash_fee": "10%",
"auto_cash_fee": 15,
"cash_limit_time": "0:00 ~ 23:00",
"cash_min_money": 100,
"auto_cash_money": 50
}
}字段说明:
user(用户信息):
id:用户IDuser_money:用户可用余额cash_type:提现方式- 1:支付宝
- 2:银行卡
- 3:支付宝和银行卡
auto_cash_money:用户设置的自动提现金额
提现配置:
limit_num:每日提现次数限制cash_fee_type:手续费类型- 1:固定金额
- 100:百分比
cash_fee:手续费值- 当
cash_fee_type = 1时,为固定金额(如:5 表示5元) - 当
cash_fee_type = 100时,为百分比(如:10 表示10%,显示为"10%")
- 当
auto_cash_fee:自动提现手续费(固定金额)cash_limit_time:提现时间限制(格式:"0:00 ~ 23:00")cash_min_money:最小提现金额auto_cash_money:系统设置的自动提现金额阈值
说明:
user_money为用户可提现的余额- 提现金额需 ≥
cash_min_money - 每日提现次数不能超过
limit_num - 提现时间需在
cash_limit_time范围内 - 手续费计算方式根据
cash_fee_type决定:- 固定金额(type=1):手续费 =
cash_fee(固定值) - 百分比(type=100):手续费 = 提现金额 × (
cash_fee/ 100)
- 固定金额(type=1):手续费 =
- 自动提现:当余额达到
auto_cash_money时自动发起提现
手续费计算示例:
示例1:固定金额
cash_fee_type = 1
cash_fee = 5
提现金额 = 100元
手续费 = 5元
实际到账 = 100 - 5 = 95元
示例2:百分比
cash_fee_type = 100
cash_fee = "10%"(实际值为10)
提现金额 = 100元
手续费 = 100 × (10 / 100) = 10元
实际到账 = 100 - 10 = 90元5. 申请提现
接口地址:/home/money/doWithdraw
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| money | Decimal | 是 | 提现金额 |
| cash_pwd | String | 是 | 二级密码 |
成功响应示例:
{
"code": 1,
"msg": "申请成功"
}错误响应示例:
1. 系统关闭提现:
{
"code": 0,
"msg": "系统配置的提现关闭提示语"
}注:实际消息内容由系统配置 cash_close_tips 决定
2. 账户被冻结:
{
"code": 0,
"msg": "无法申请提现操作,您的账户已被冻结!"
}3. 未设置收款信息:
{
"code": 0,
"msg": "您还未设置收款信息!"
}4. 收款信息未审核:
{
"code": 0,
"msg": "您的收款信息未审核通过,无法提现。如有疑问请联系平台管理员"
}5. 不在提现时间:
{
"code": 0,
"msg": "不在允许提现时间(0:00 ~ 23:00)"
}注:时间范围根据系统配置动态生成
6. 超过提现次数:
{
"code": 0,
"msg": "系统配置的提现次数限制提示语"
}注:实际消息内容由系统配置 cash_limit_num_tips 决定
7. 提现金额错误:
{
"code": 0,
"msg": "提现金额不能小于等于0!"
}{
"code": 0,
"msg": "提现金额不能小于最低提现金额!"
}8. 余额不足:
{
"code": 0,
"msg": "您的余额不足以提现"
}9. 未设置二级密码:
{
"code": 0,
"msg": "您还未设置二级密码,无法提现"
}10. 二级密码错误:
{
"code": 0,
"msg": "二级密码错误"
}说明:
- 提现前必须设置二级密码和收款方式
- 收款信息需要通过平台审核
- 提现金额需 ≥ 系统设置的最低提现金额
- 每日提现次数有限制
- 提现时间受系统配置限制
- 提现会扣除相应的手续费
- 提现申请提交后需要等待平台审核打款
- 实际到账金额 = 提现金额 - 手续费
6. 提现列表
接口地址:/home/money/cashList
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| status | Integer | 否 | 订单状态:0-待审核,1-已通过,2-已拒绝 |
| channel_id | Integer | 否 | 提现通道ID |
| page | Integer | 否 | 页码,默认1 |
| limit | Integer | 否 | 每页数量,默认10 |
响应示例:
{
"code": 1,
"msg": "获取成功",
"data": {
"list": [
{
"id": 3,
"user_id": 1008,
"type": 1,
"collect_info": "支付宝账号:123<br>真实姓名:123<br>身份证号:123",
"money": "100.000",
"fee": "10.000",
"actual_money": "90.000",
"status": 0,
"create_at": "2025-11-16 08:27:51",
"complete_at": 0,
"collect_img": "",
"cash_type": 2,
"bank_name": "",
"bank_branch": "",
"bank_card": "123",
"realname": "123",
"idcard_number": "123",
"trade_no": "",
"channel_account_id": 0,
"channel_id": 0,
"user_type": 2
}
],
"total": 1
}
}字段说明:
基础信息:
id:提现订单IDuser_id:用户IDuser_type:用户类型(2-普通用户)create_at:创建时间complete_at:完成时间(0表示未完成)trade_no:交易号(审核通过后填写)
金额信息:
money:申请提现金额fee:手续费actual_money:实际到账金额(money - fee)
收款信息:
type:收款方式类型- 1:支付宝
- 2:微信
- 3:银行卡
- 4:USDT
collect_info:收款信息(HTML格式,包含账号、姓名、身份证等)collect_img:收款二维码图片bank_name:银行名称(type=3时有值)bank_branch:开户支行(type=3时有值)bank_card:收款账号realname:真实姓名idcard_number:身份证号
提现信息:
cash_type:提现类型- 1:自动提现
- 2:手动提现
channel_id:提现通道IDchannel_account_id:通道账户ID
订单状态:
status:审核状态- 0:待审核
- 1:已通过
- 2:已拒绝
说明:
- 订单列表只显示用户设置的数据时效性范围内的订单
- 默认按创建时间倒序排列
actual_money=money-feecollect_info为HTML格式,包含换行标签<br>- 待审核订单的
complete_at为 0 - 已通过的订单会有
complete_at时间和trade_no
收款设置接口
7. 获取收款设置
接口地址:/home/money/getCollect
请求参数:无
响应示例:
{
"code": 1,
"msg": "获取成功",
"data": {
"cash_type": 3,
"cashTypesOptions": [
{
"value": 1,
"label": "支付宝"
},
{
"value": 2,
"label": "微信"
},
{
"value": 3,
"label": "银行卡"
},
{
"value": 4,
"label": "USDT"
}
],
"info": {
"id": 1,
"user_id": 1008,
"type": 1,
"info": {
"account": "123",
"realname": "123",
"idcard_number": "123"
},
"create_at": "2025-11-06 15:28:03",
"collect_img": "",
"status": 1
}
}
}未设置收款信息时的响应:
{
"code": 1,
"msg": "获取成功",
"data": {
"cash_type": 0,
"cashTypesOptions": [
{
"value": 1,
"label": "支付宝"
},
{
"value": 2,
"label": "微信"
},
{
"value": 3,
"label": "银行卡"
},
{
"value": 4,
"label": "USDT"
}
],
"info": null
}
}字段说明:
根级别字段:
cash_type:用户当前设置的收款方式(0-未设置)cashTypesOptions:系统支持的收款方式列表info:收款信息详情(未设置时为 null)
cashTypesOptions(收款方式选项):
value:收款方式类型值label:收款方式名称
info(收款信息详情):
id:收款信息IDuser_id:用户IDtype:收款方式类型(1-支付宝,2-微信,3-银行卡,4-USDT)info:具体收款信息对象account:收款账号realname:真实姓名idcard_number:身份证号bank_name:银行名称(type=3时)bank_branch:开户支行(type=3时)
create_at:创建时间collect_img:收款二维码图片URLstatus:审核状态- 0:待审核
- 1:已通过
- 2:已拒绝
说明:
cashTypesOptions列表根据系统配置动态生成,只显示系统启用的收款方式- 用户首次访问时
info为 null,需要先设置收款信息 - 收款信息需要通过平台审核(status=1)才能用于提现
- 不同的收款方式(type)需要填写不同的字段
- 银行卡方式需要额外填写
bank_name和bank_branch
8. 保存收款设置
接口地址:/home/money/setCollect
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | Integer | 是 | 收款方式类型:1-支付宝,2-微信,3-银行卡,4-USDT |
| account | String | 是 | 收款账号(支付宝账号/微信账号/银行卡号/USDT地址) |
| realname | String | 否 | 收款人真实姓名(type=4时不必填) |
| idcard_number | String | 否 | 身份证号(type=4时不必填) |
| bank_name | String | 否 | 开户银行名称(仅type=3时必填) |
| bank_branch | String | 否 | 开户支行地址(仅type=3时必填) |
| collect_img | String | 否 | 收款二维码图片URL(type=3时不需要) |
| cash_pwd | String | 是 | 二级密码(修改收款信息时必填) |
请求示例:
示例1:支付宝收款方式(type=1):
{
"type": 1,
"account": "13800138000",
"realname": "张三",
"idcard_number": "110101199001011234",
"collect_img": "http://example.com/qrcode.png",
"cash_pwd": "123456"
}示例2:微信收款方式(type=2):
{
"type": 2,
"account": "wxid_abc123",
"realname": "张三",
"idcard_number": "110101199001011234",
"collect_img": "http://example.com/qrcode.png",
"cash_pwd": "123456"
}示例3:银行卡收款方式(type=3):
{
"type": 3,
"account": "6222021234567890123",
"realname": "张三",
"idcard_number": "110101199001011234",
"bank_name": "中国工商银行",
"bank_branch": "北京市朝阳区支行",
"cash_pwd": "123456"
}示例4:USDT收款方式(type=4):
{
"type": 4,
"account": "TRC20地址",
"collect_img": "http://example.com/qrcode.png",
"cash_pwd": "123456"
}成功响应示例:
{
"code": 1,
"msg": "保存成功",
"data": null
}错误响应示例:
1. 未设置二级密码:
{
"code": 0,
"msg": "您还未设置二级密码,无法设置收款信息"
}2. 二级密码错误:
{
"code": 0,
"msg": "二级密码错误"
}3. 资料填写不完整:
{
"code": 0,
"msg": "资料填写不完整或存在非法字符!"
}4. 保存失败:
{
"code": 0,
"msg": "保存失败,请重试!"
}字段说明:
type:收款方式类型,决定需要填写哪些字段account:根据不同的收款方式,填写对应的账号信息realname:真实姓名,type=4(USDT)时可不填idcard_number:身份证号,type=4(USDT)时可不填bank_name:银行名称,仅在type=3(银行卡)时必填bank_branch:开户支行,仅在type=3(银行卡)时必填collect_img:收款二维码图片,type=3(银行卡)时不需要cash_pwd:二级密码,修改收款信息时必须验证
说明:
- 首次设置收款信息不需要验证二级密码,但必须先设置二级密码
- 修改已有的收款信息时必须验证二级密码
- 不同的收款方式需要填写不同的字段:
- 支付宝/微信(type=1/2):需要 account、realname、idcard_number、collect_img
- 银行卡(type=3):需要 account、realname、idcard_number、bank_name、bank_branch
- USDT(type=4):只需要 account、collect_img
- 除 idcard_number 外,其他必填字段不能为空
- 收款信息保存后需要等待平台审核,审核通过后才能用于提现
- 收款信息修改后会重新进入待审核状态
资金流水接口
9. 资金流水列表
接口地址:/home/moneyLog/list
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | Integer | 否 | 页码,默认1 |
| limit | Integer | 否 | 每页数量,默认10 |
响应示例:
{
"code": 1,
"msg": "获取成功",
"data": {
"list": [
{
"id": 1,
"business_type": 1,
"business_type_text": "充值",
"amount": "100.00",
"balance": "200.00",
"remark": "支付宝充值",
"create_at": "2024-01-01 12:00:00"
}
],
"total": 100
}
}字段说明:
business_type:业务类型amount:变动金额(正数为收入,负数为支出)balance:变动后余额
10. 获取业务类型字典
接口地址:/home/moneyLog/businessTypeDict
请求参数:无
响应示例:
{
"code": 1,
"msg": "获取成功",
"data": {
"1": "充值",
"2": "提现",
"3": "购买商品",
"4": "退款",
"5": "佣金收入"
}
}注意事项
- 所有钱包相关接口都需要用户登录认证
- 提现前必须设置二级密码和收款方式
- 充值和提现都有金额限制,需在允许范围内
- 资金流水列表受用户设置的数据时效性限制
- 提现会收取一定比例的手续费