feat(split): 添加微信分账V3版本验证和汇付分账冻结资金处理

- 在ProfitSharingService中添加Yansongda Pay V3版本验证,确保微信官方分账功能正常运行
- 实现汇付分账冻结资金检测逻辑,当资金被冻结时标记分账失败而非抛出异常
- 在管理后台控制器中增强错误处理和状态显示功能
- 优化前端界面,根据分账模式动态显示相应操作按钮
```
这个提交包含在:
可乐加冰
2026-10-02 14:49:33 +08:00
父节点 acf7314916
当前提交 375dd5356f
共有 6 个文件被更改,包括 62 次插入 和 9 次删除

查看文件

@@ -3,6 +3,7 @@
namespace app\admin\controller\shopro\split;
use app\admin\controller\shopro\Base;
use addons\shopro\library\split\Config as SplitConfig;
use addons\shopro\library\split\SplitExecutor;
use addons\shopro\library\split\ProfitSharingService;
@@ -37,7 +38,11 @@ class Order extends Base
}
$orderId = (int) $row['order_id'];
$channel = $row['channel'] ?? 'wechat';
$result = (new SplitExecutor())->retry($id);
try {
$result = (new SplitExecutor())->retry($id);
} catch (\Throwable $e) {
$this->error('重试失败:' . $e->getMessage());
}
if ($result) {
$this->success('重试成功');
}
@@ -58,6 +63,9 @@ class Order extends Base
return '';
}
$raw = is_string($latest['wx_result']) ? $latest['wx_result'] : json_encode($latest['wx_result'], JSON_UNESCAPED_UNICODE);
if ($raw !== '' && strpos($raw, 'fund_freeze_stat=FREEZE') !== false) {
return ':' . mb_substr($raw, 0, 500);
}
$decoded = json_decode($raw, true);
if (is_array($decoded)) {
$parts = array_filter([
@@ -80,6 +88,8 @@ class Order extends Base
if (($row['channel'] ?? 'wechat') === 'huifu' && class_exists('\\addons\\shopro_huifu\\library\\HuifuSplitService')) {
$service = new \addons\shopro_huifu\library\HuifuSplitService();
$result = $service->querySplit($row['transaction_id']);
} elseif ((new SplitConfig())->isHuifuMode()) {
$this->error('当前为汇付分账,请对 channel=huifu 的分账记录查询,或到汇付控台查看分账结果');
} else {
$service = new ProfitSharingService();
$result = $service->queryOrder([