```
feat(split): 添加微信分账V3版本验证和汇付分账冻结资金处理 - 在ProfitSharingService中添加Yansongda Pay V3版本验证,确保微信官方分账功能正常运行 - 实现汇付分账冻结资金检测逻辑,当资金被冻结时标记分账失败而非抛出异常 - 在管理后台控制器中增强错误处理和状态显示功能 - 优化前端界面,根据分账模式动态显示相应操作按钮 ```
这个提交包含在:
@@ -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([
|
||||
|
||||
在新工单中引用
屏蔽一个用户