From f2bca20a229d53b8a3cb979ebe9b6ba359710bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=AF=E4=B9=90=E5=8A=A0=E5=86=B0?= <11869599+addie66@user.noreply.gitee.com> Date: Tue, 29 Sep 2026 15:23:17 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(shopro=5Fhuifu):=20=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E6=B1=87=E4=BB=98=20onboard=20=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E9=93=B6=E8=A1=8C=E5=8D=A1=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 根据账户类型和银行账户类型动态设置持卡人姓名(card_name) - 个人账户时 card_name 与 name 保持一致 - 企业/个体户对私结算时 card_name 与 legal_name 保持一致 - 优化错误信息提示,针对持卡人姓名和银行卡类型错误提供明确指引 - 修复个人进件银行卡户名校验不一致的问题 ``` --- .../library/onboard/HuifuOnboardBusiOpen.php | 9 ++++++++- .../shopro_huifu/library/onboard/HuifuOnboardError.php | 6 ++++++ .../library/onboard/HuifuOnboardValidator.php | 6 ++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/addons/shopro_huifu/library/onboard/HuifuOnboardBusiOpen.php b/addons/shopro_huifu/library/onboard/HuifuOnboardBusiOpen.php index adc37a1..e57648f 100644 --- a/addons/shopro_huifu/library/onboard/HuifuOnboardBusiOpen.php +++ b/addons/shopro_huifu/library/onboard/HuifuOnboardBusiOpen.php @@ -90,12 +90,19 @@ class HuifuOnboardBusiOpen // 汇付 card_type:0=对公,1=对私法人,2=对私非法人 $bankAccountType = (string) ($form['bank_account_type'] ?? '0'); $cardType = $bankAccountType === '1' ? '0' : '1'; + $accountType = $form['account_type'] ?? 'indv'; + $cardName = $form['card_name'] ?? ''; + if ($accountType === 'indv') { + $cardName = $form['name'] ?? $cardName; + } elseif ($bankAccountType === '0') { + $cardName = $form['legal_name'] ?? $cardName; + } $cardInfo = [ 'card_type' => $cardType, - 'card_name' => $form['card_name'], + 'card_name' => $cardName, 'card_no' => $form['card_no'], diff --git a/addons/shopro_huifu/library/onboard/HuifuOnboardError.php b/addons/shopro_huifu/library/onboard/HuifuOnboardError.php index a97b474..6d92373 100644 --- a/addons/shopro_huifu/library/onboard/HuifuOnboardError.php +++ b/addons/shopro_huifu/library/onboard/HuifuOnboardError.php @@ -32,6 +32,12 @@ class HuifuOnboardError if (strpos($msg, '图片') !== false || strpos($lower, 'picture') !== false || strpos($lower, 'file_id') !== false) { return '证件或银行卡图片上传失败,请重新上传 jpg/png 清晰照片'; } + if (strpos($msg, '持卡人姓名') !== false || strpos($msg, '法人姓名') !== false) { + return '银行卡户名须与身份证姓名完全一致(个人进件 name 与 card_name 相同)'; + } + if (strpos($msg, 'cardType') !== false || strpos($msg, '对私结算') !== false) { + return '个人进件仅支持对私银行卡,请确认结算账户类型为对私'; + } if (preg_match('/基础参数校验失败[::](.+?)(?:,resp_code|$)/u', $msg, $m)) { return '资料校验未通过:' . trim($m[1]); diff --git a/addons/shopro_huifu/library/onboard/HuifuOnboardValidator.php b/addons/shopro_huifu/library/onboard/HuifuOnboardValidator.php index e0d3f85..646c446 100644 --- a/addons/shopro_huifu/library/onboard/HuifuOnboardValidator.php +++ b/addons/shopro_huifu/library/onboard/HuifuOnboardValidator.php @@ -206,13 +206,15 @@ class HuifuOnboardValidator } if ($data['account_type'] === 'indv') { - $data['card_name'] = trim($data['card_name'] ?: $data['name']); + // 汇付对私法人:card_name 必须与个人开户姓名 name 完全一致 + $data['card_name'] = $data['name']; $data['mp'] = trim($data['mp'] ?? $data['mobile_no']); } else { if ($data['bank_account_type'] === '1') { $data['card_name'] = trim($data['card_name'] ?: $data['reg_name']); } else { - $data['card_name'] = trim($data['card_name'] ?: $data['legal_name']); + // 企业/个体户对私结算:card_name 必须与法人姓名一致 + $data['card_name'] = $data['legal_name']; $data['cert_no'] = $data['legal_cert_no']; $data['cert_validity_type'] = $data['legal_cert_validity_type']; $data['cert_begin_date'] = $data['legal_cert_begin_date'];