```
feat(shopro_huifu): 完善汇付 onboard 流程中的银行卡信息处理 - 根据账户类型和银行账户类型动态设置持卡人姓名(card_name) - 个人账户时 card_name 与 name 保持一致 - 企业/个体户对私结算时 card_name 与 legal_name 保持一致 - 优化错误信息提示,针对持卡人姓名和银行卡类型错误提供明确指引 - 修复个人进件银行卡户名校验不一致的问题 ```
这个提交包含在:
@@ -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'],
|
||||
|
||||
|
||||
@@ -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]);
|
||||
|
||||
@@ -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'];
|
||||
|
||||
在新工单中引用
屏蔽一个用户