Appearance
代扣概述
代扣定义
租赁代扣是指用户授权平台在每期租金到期时自动从用户账户扣款的功能。
代扣方式
- 支付宝代扣:通过支付宝代扣协议自动扣款
- 微信代扣:通过微信代扣协议自动扣款
- 银行卡代扣:通过银行卡代扣协议自动扣款
代扣流程
用户签约代扣协议 → 租金到期 → 发起代扣 → 代扣成功 → 更新订单状态代扣配置
配置路径
后台管理路径:系统设置 > 租赁配置 > 代扣配置
配置项
| 配置项 | 说明 | 默认值 |
|---|---|---|
| withhold_plan | 代扣协议签署类型(1:全部,2:从第二期开始) | 1 |
| auto_withhold | 是否自动代扣 | 是 |
| withhold_time | 代扣执行时间 | 每天16:11 |
| withhold_retry | 代扣失败重试次数 | 3 |
| withhold_interval | 重试间隔(小时) | 24 |
代扣协议签署类型
| 类型 | 说明 |
|---|---|
| 1 | 全部期数代扣(从第一期开始) |
| 2 | 从第二期开始代扣(首期用户主动支付) |
代扣流程
代扣签约
- 用户下单:用户选择租赁商品下单
- 选择支付方式:选择代扣支付方式
- 签署代扣协议:用户签署支付宝/微信代扣协议
- 协议生效:代扣协议生效,等待代扣
代扣执行
- 租金到期:系统检测到租金到期
- 发起代扣:系统自动发起代扣请求
- 代扣处理:支付平台处理代扣请求
- 代扣结果:返回代扣结果(成功/失败)
- 更新状态:更新订单租金支付状态
代扣查询
- 实时查询:代扣发起后实时查询结果
- 异步查询:通过定时任务查询代扣结果
- 手动查询:管理员手动查询代扣状态
代扣管理
代扣记录
后台管理路径:订单管理 > 订单详情 > 代扣记录
功能说明:
- 查看代扣历史记录
- 查看代扣状态(成功/失败/处理中)
- 查看代扣金额和时间
- 导出代扣记录
代扣状态
| 状态 | 说明 |
|---|---|
| 待代扣 | 等待代扣执行 |
| 代扣中 | 代扣请求已发送,等待结果 |
| 代扣成功 | 代扣成功完成 |
| 代扣失败 | 代扣失败,等待重试 |
| 已取消 | 代扣已取消 |
代扣失败处理
代扣失败后的处理流程:
- 失败原因:记录代扣失败原因
- 自动重试:系统自动重试代扣
- 人工处理:重试多次失败后转人工处理
- 用户通知:通知用户代扣失败,引导手动支付
代扣接口
代扣支付接口
接口路径:/api/lease/withholdPay/{id}
请求参数:
id:订单IDlease_num:期数amount:代扣金额operator:操作人
响应结果:
- 代扣请求发送结果
- 代扣处理状态
代扣退款接口
接口路径:/api/lease/withholdRefund/{id}
请求参数:
id:订单IDlease_num:期数amount:退款金额operator:操作人
响应结果:
- 退款请求发送结果
- 退款处理状态
代扣解约接口
接口路径:/api/lease/withholdUnbindConfirm/{id}
请求参数:
id:订单IDtype:解约类型refuse_type:拒绝类型owe_money:欠款金额in_service:是否在服务中operator:操作人
响应结果:
- 解约请求发送结果
- 解约处理状态
代扣监控
监控指标
- 代扣成功率:代扣成功的比例
- 代扣失败率:代扣失败的比例
- 平均代扣时长:从发起到完成的平均时长
- 代扣金额统计:代扣总金额统计
监控路径
后台管理路径:数据统计 > 代扣统计
告警设置
建议设置以下告警:
- 代扣失败率过高:代扣失败率超过阈值
- 代扣超时:代扣处理时间过长
- 代扣异常:代扣系统异常
代扣常见问题
问题1:代扣失败
可能原因:
- 用户账户余额不足
- 代扣协议过期
- 支付平台异常
- 网络连接问题
解决方案:
- 提醒用户充值
- 重新签署代扣协议
- 检查支付平台状态
- 检查网络连接
问题2:代扣延迟
可能原因:
- 支付平台处理延迟
- 网络延迟
- 系统负载过高
解决方案:
- 等待支付平台处理
- 检查网络连接
- 优化系统性能
问题3:代扣金额错误
可能原因:
- 租金计算错误
- 优惠券未正确应用
- 系统计算错误
解决方案:
- 检查租金计算逻辑
- 检查优惠券应用逻辑
- 联系技术支持
代扣优化
优化建议
- 代扣时间优化:选择用户活跃时间代扣
- 代扣重试策略:合理设置重试次数和间隔
- 代扣失败处理:及时通知用户,引导手动支付
- 代扣数据分析:分析代扣失败原因,优化策略
代扣策略
- 提前代扣:租金到期前提前代扣
- 分批代扣:大额租金分批代扣
- 智能代扣:根据用户行为智能选择代扣时间
相关代码
| 文件 | 说明 |
|---|---|
| app/jobs/order/OrderWithholdJob.php | 租赁订单代扣任务 |
| app/common/controller/Lease.php | 租赁控制器(代扣相关接口) |
| app/listener/system/timer/SystemTimer.php | 系统定时器(代扣任务调度) |
| app/services/order/StoreOrderServices.php | 订单服务(代扣业务逻辑) |
| app/common/services/risk/RiskServices.php | 风控服务(代扣相关) |
| app/constant/ApiType.php | API类型常量(代扣类型) |