Appearance
概述
芝麻信用免押是EBAOZU租赁业务的核心功能,通过芝麻信用分代替押金,降低用户租赁门槛。本文档详细介绍芝麻信用免押的架构、流程和开发细节。
架构设计
核心组件
CreditZhimaServices (芝麻信用核心服务)
├── AlipayZhimaTraits (公共Trait)
│ ├── queryFreezeOrder() # 查询免押冻结订单
│ ├── tradeRefund() # 退款
│ ├── tradeRefundQuery() # 退款查询
│ └── getRiskAssessmentPrice() # 获取风控评估金额
│
├── createFreezeOrder() # 创建免押冻结订单
├── reletCheck() # 续租免押校验
├── voucherQrCodeCreate() # 资金授权发码
├── cancelFreezeOrder() # 取消免押冻结订单
├── tradePay() # 代扣支付
├── buyoutPay() # 买断扣款
├── tradeSync() # 订单信息同步
├── creditBusinessPlanCreate() # 履约计划创建
├── creditBusinessPlanModify() # 履约计划修改
├── changeLeasePlanAfterTake() # 确认收货后修改分期
├── handleCreateNotify() # 免押冻结回调处理
├── leaseAutoAudit() # 自动初审
├── handleUnfreezeNotify() # 解冻回调处理
└── handleTradeNotify() # 代扣回调处理代码来源:app/services/alipay/CreditZhimaServices.php
调用流程
用户下单
↓
创建免押冻结订单 (createFreezeOrder)
↓
资金授权发码 (voucherQrCodeCreate)
↓
用户扫码同意免押
↓
免押冻结回调 (handleCreateNotify)
↓
自动初审 (leaseAutoAudit)
↓
代扣支付 (tradePay)
↓
确认收货后修改分期 (changeLeasePlanAfterTake)
↓
买断/归还/续租
↓
解冻回调 (handleUnfreezeNotify)开发指南
创建免押冻结订单
php
// 创建免押冻结订单
$zhimaServices = app()->make(CreditZhimaServices::class);
$result = $zhimaServices->createFreezeOrder($orderId);参数说明:
$orderId— 订单ID
返回值:
- 成功:返回冻结订单信息
- 失败:抛出异常
代码来源:app/services/alipay/CreditZhimaServices.php:67
资金授权发码
php
// 资金授权发码(生成免押二维码)
$result = $zhimaServices->voucherQrCodeCreate($orderId);参数说明:
$orderId— 订单ID
返回值:
- 成功:返回二维码URL
- 失败:抛出异常
代码来源:app/services/alipay/CreditZhimaServices.php:188
代扣支付
php
// 代扣支付(芝麻免押分期扣款)
$result = $zhimaServices->tradePay($orderId, $num);参数说明:
$orderId— 订单ID$num— 分期期数
返回值:
- 成功:返回支付结果
- 失败:抛出异常
代码来源:app/services/alipay/CreditZhimaServices.php:263
买断扣款
php
// 买断扣款支付
$result = $zhimaServices->buyoutPay($orderId, $operator);参数说明:
$orderId— 订单ID$operator— 操作者信息
返回值:
- 成功:返回支付结果
- 失败:抛出异常
代码来源:app/services/alipay/CreditZhimaServices.php:454
查询免押冻结订单
php
// 查询免押冻结订单
$result = $zhimaServices->queryFreezeOrder($orderId);参数说明:
$orderId— 订单ID
返回值:
- 成功:返回冻结订单信息(含冻结状态、金额等)
- 失败:抛出异常
代码来源:app/services/alipay/AlipayZhimaTraits.php:30
退款
php
// 退款(分期账单退款)
$result = $zhimaServices->tradeRefund($orderId, $refundAmount, $outRequestNo, $remark, $refundRoyaltyParameters);参数说明:
$orderId— 订单ID$refundAmount— 退款金额$outRequestNo— 退款请求号$remark— 退款备注$refundRoyaltyParameters— 分账退款参数
返回值:
- 成功:返回退款结果
- 失败:抛出异常
代码来源:app/services/alipay/AlipayZhimaTraits.php:109
履约计划创建
php
// 芝麻商业信用履约计划创建
$result = $zhimaServices->creditBusinessPlanCreate($orderId);参数说明:
$orderId— 订单ID
返回值:
- 成功:返回履约计划信息
- 失败:抛出异常
代码来源:app/services/alipay/CreditZhimaServices.php:768
履约计划修改
php
// 芝麻商业信用履约计划修改
$result = $zhimaServices->creditBusinessPlanModify($orderId, $type, $params);参数说明:
$orderId— 订单ID$type— 修改类型(单期/整体)$params— 修改参数
返回值:
- 成功:返回修改结果
- 失败:抛出异常
代码来源:app/services/alipay/CreditZhimaServices.php:848
回调处理
免押冻结回调
php
// 处理免押冻结订单异步回调
$zhimaServices->handleCreateNotify($notify);处理逻辑:
- 更新冻结状态
- 更新冻结金额
- 触发自动初审
代码来源:app/services/alipay/CreditZhimaServices.php:1004
解冻回调
php
// 资金授权订单解冻/撤销通知处理
$zhimaServices->handleUnfreezeNotify($notify);处理逻辑:
- 更新解冻状态
- 更新订单状态
代码来源:app/services/alipay/CreditZhimaServices.php:1148
代扣回调
php
// 分期代扣支付异步回调
$zhimaServices->handleTradeNotify($notify);处理逻辑:
- 更新分期状态
- 更新支付记录
- 触发后续业务
代码来源:app/services/alipay/CreditZhimaServices.php:1173
自动初审
自动初审逻辑
php
// 自动初审(基于风控评分+年龄)
$zhimaServices->leaseAutoAudit($orderId);初审规则:
- 获取风控评分
- 检查年龄限制
- 匹配机审策略
- 执行通过/拒绝
代码来源:app/services/alipay/CreditZhimaServices.php:1086
配置项
| 配置项 | 说明 | 代码位置 |
|---|---|---|
alipay_zhima_freeratio | 租押分离押金比例 | CreditZhimaServices.php |
lease_check_type | 代扣签约类型(1=芝麻免押) | StoreOrderServices.php |
face_auth_config | 下单前人脸识别开关 | StoreOrderCreateServices.php |
contract_sign | 合同类别(1=e签宝, 2=爱签) | StoreOrderCreateServices.php |
常见问题
Q: 芝麻免押失败怎么办?
A: 检查以下条件:
- 用户芝麻信用分是否满足要求
alipay_zhima_freeratio配置是否正确- 订单是否满足免押条件
- 支付宝接口是否正常
Q: 代扣失败怎么办?
A: 检查以下条件:
- 代扣时间是否在 7:00-22:00 之间
- 用户支付宝余额是否充足
- 代扣协议是否已签署
- 冻结金额是否充足
Q: 续租免押校验失败怎么办?
A: 续租免押校验有330-720天窗口期限制,检查:
- 续租天数是否在窗口期内
- 原订单免押状态是否正常
- 续租金额是否超过冻结额度