💰 骑手结算与分账方案
本章详述即时配送小程序的骑手结算规则、分账方案、提现流程,以及与微信支付分账API的对接设计。包括结算周期、奖惩机制、分账比例配置等。
T+1结算
自动分账
微信分账API
结算原则:骑手收入按配送订单的80%计算,平台收取20%服务费;确认送达后自动分账,次日可提现;提现需审核,大额打款由财务复核。
一、骑手结算规则
1.1 结算周期
| 结算类型 | 说明 |
| T+1 结算 | 订单确认送达后,次日开始计算可提现金额 |
| 提现周期 | 每日 09:00-18:00 可申请提现,其余时间暂停 |
| 到账时间 | 申请后 1-3 个工作日到账(微信转账) |
| 月度结算 | 每月最后一日结算当月收入,生成月账单 |
1.2 收入计算规则
骑手收入 = 订单配送费 × 分账比例(80%)
骑手净收入 = 配送收入 + 奖励金额 - 罚款金额 - 平台服务费
平台服务费 = 订单配送费 × 20%
1.3 分账比例配置
| 配置项 | 默认比例 | 说明 |
| 骑手分账比例 | 80% | 订单配送费的80%归骑手 |
| 平台抽成比例 | 20% | 平台收取的服务费 |
| 阶梯奖励 | 月单量>=500额外+2% | 阶梯奖励提升骑手积极性 |
* 分账比例可通过后台按站点、骑手等级差异化配置
二、分账流程设计
2.1 自动分账时序图
sequenceDiagram
participant U as 用户
participant C as 骑手
participant APP as 小程序
participant API as 后端服务
participant PAY as 微信支付
participant DB as 数据库
U->>APP: 确认送达
APP->>API: 上传达成确认
API->>DB: 更新订单状态(已完成)
API->>API: 计算骑手收入
API->>PAY: 发起分账请求
PAY->>PAY: 冻结用户支付资金
PAY->>PAY: 解冻并分账
PAY-->>API: 分账成功
API->>DB: 更新骑手钱包余额
API->>DB: 记录收入流水
API->>DB: 记录平台佣金收入
API->>C: 推送收入到账通知
2.2 提现流程时序图
sequenceDiagram
participant C as 骑手
participant APP as 小程序
participant API as 后端服务
participant PAY as 微信支付
participant DB as 数据库
participant FIN as 财务
C->>APP: 申请提现
APP->>API: 提交提现申请
API->>DB: 检查可提现余额
DB-->>API: 余额充足
API->>DB: 冻结提现金额
API->>DB: 创建提现记录
alt 小额(<1000)
API->>PAY: 发起微信转账
PAY-->>API: 转账成功
else 大额(>=1000)
API->>FIN: 推送财务审核
FIN->>API: 审核通过
API->>PAY: 发起微信转账
PAY-->>API: 转账成功
end
API->>DB: 更新钱包(扣除冻结)
API->>DB: 更新提现状态
API->>C: 推送到账通知
2.3 分账状态机
stateDiagram-v2
[*] --> 待分账: 订单完成
待分账 --> 分账中: 发起分账请求
分账中 --> 已分账: 微信返回成功
分账中 --> 分账失败: 微信返回失败
分账失败 --> 待重试: 自动重试
待重试 --> 分账中: 重试执行
分账失败 --> 人工处理: 重试超限
人工处理 --> 已分账: 人工确认
人工处理 --> 已挂账: 无法追回
已分账 --> [*]
已挂账 --> [*]
三、奖惩机制
3.1 奖励规则
| 奖励类型 | 金额 | 条件 |
| 新骑手奖励 | 首周完成20单额外奖励¥50 | 新注册骑手 |
| 高峰冲量奖 | 11:00-13:00/17:00-19:00 每单+¥1 | 高峰期完成配送 |
| 好评奖励 | 每单+¥0.5 | 用户给予5星好评 |
| 月冲量奖 | 月单量>=500额外+2%收入 | 月度统计 |
| 恶劣天气补贴 | 每单+¥2-5 | 气象台发布预警时 |
3.2 扣款规则
| 扣款类型 | 金额 | 条件 |
| 差评扣款 | -¥50/次 | 用户给予1-2星评价 |
| 投诉扣款 | -¥100/次 | 用户投诉成立 |
| 超时扣款 | -¥10/次 | 超过承诺时间30分钟 |
| 货物损坏 | -¥50-200 | 配送中造成货物损坏 |
| 虚假签收 | -¥200/次 | 未经用户确认自行签收 |
四、分账数据表
4.1 分账记录表 ot_profit_share
| 字段 | 类型 | 说明 |
| id | bigint | 主键 |
| share_no | varchar(32) | 分账单号 |
| order_id | bigint | 订单ID |
| order_no | varchar(32) | 订单编号 |
| courier_id | bigint | 骑手ID |
| order_amount | decimal(10,2) | 订单配送费 |
| share_ratio | decimal(5,4) | 分账比例(0.80) |
| courier_amount | decimal(10,2) | 骑手所得 |
| platform_amount | decimal(10,2) | 平台所得 |
| status | tinyint | 状态(0待分账/1分账中/2已分账/3失败) |
| share_time | datetime | 分账时间 |
| fail_reason | varchar(200) | 失败原因 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
4.2 骑手提现表 ot_courier_withdraw
| 字段 | 类型 | 说明 |
| id | bigint | 主键 |
| withdraw_no | varchar(32) | 提现单号 |
| courier_id | bigint | 骑手ID |
| amount | decimal(10,2) | 提现金额 |
| fee | decimal(10,2) | 手续费 |
| real_amount | decimal(10,2) | 实发金额 |
| bank_name | varchar(64) | 开户行 |
| bank_account | varchar(32) | 银行账号 |
| status | tinyint | 状态(0待审核/1审核通过/2已打款/3已拒绝) |
| audit_remark | varchar(200) | 审核备注 |
| audit_user_id | bigint | 审核人ID |
| audit_time | datetime | 审核时间 |
| pay_time | datetime | 打款时间 |
| pay_no | varchar(64) | 微信转账单号 |
| created_at | datetime | 创建时间 |
五、结算核心API
| 接口 | 说明 | 关键参数 |
GET /app/courier/wallet/info | 骑手钱包信息 | - |
GET /app/courier/wallet/logs | 收入流水 | page, size, type |
GET /app/courier/wallet/daily-summary | 每日收入汇总 | date |
POST /app/courier/withdraw/apply | 申请提现 | amount |
GET /app/courier/withdraw/list | 提现记录 | page, size, status |
GET /app/courier/settlement/monthly | 月度结算单 | period |
POST /admin/ot/withdraw/page | 管理端提现列表 | page, size, status, date |
POST /admin/ot/withdraw/audit | 审核提现 | withdraw_id, agree, remark |
POST /admin/ot/withdraw/batch-pay | 批量打款 | withdraw_ids |
POST /admin/ot/settlement/generate | 生成月结算单 | period |
文档同步:requirements_v2.md 结算模块 | 维护:项目团队