Browse Source

进件代码小更新与调整

shizhongqi 1 month ago
parent
commit
d06d5d8fb9

+ 77 - 38
biz-ghs/lakala/services/LakalaAccountService.php

@@ -77,6 +77,7 @@ class LakalaAccountService
             'mainId' => $mainId,
             'shopId' => $shopId,
             'accountId' => $accountId,
+            'client' => 1, //申请来自哪个客户端,: 1销花宝 2花掌柜(设置来自销花宝)
             'type' => $type,
             'status' => LakalaApplicationClass::STATUS_DRAFT,
             'currentStep' => $type === LakalaApplicationClass::TYPE_SETTLEMENT_CHANGE ? 3 : 1,
@@ -185,6 +186,7 @@ class LakalaAccountService
         $application = self::application($id, $mainId, $shopId, true);
         $form = self::decode($application->formData);
         self::validateContract($form);
+
         $client = new LakalaOnboardingClient();
         $orderNo = date('YmdHis') . substr(str_shuffle('0123456789'), 0, 8);
         $request = self::contractRequest($form, $orderNo, $client->orgCode());
@@ -227,20 +229,28 @@ class LakalaAccountService
         if ($application->contractStatus !== 'COMPLETED' || empty($application->contractNo)) {
             util::fail('请先完成电子合同签约并刷新签约状态');
         }
-        $client = new LakalaOnboardingClient();
-        $request = self::merchantRequest($form, $application->contractNo, $client);
-        $response = $client->call('/api/v3/tkbs/merchant_encry', $request, 'both');
-        $application->formData = self::encode($form);
-        $application->merchantNo = $response['data']['merchant_no'] ?? '';
-        $application->customerNo = $response['data']['merchant_no'] ?? '';
-        $application->status = LakalaApplicationClass::STATUS_WAIT_AUDIT;
-        $application->rejectReason = '';
-        $application->versionNo = ((int)$application->versionNo) + 1;
-        $application->updateTime = date('Y-m-d H:i:s');
-        $application->save();
-        self::version($application, $request, $response);
-        self::operation($application, 0, 'onboarding', '', $request, $response, $application->status);
-        return self::detail($application->id, $mainId, $shopId);
+        try{
+            $client = new LakalaOnboardingClient();
+            $request = self::merchantRequest($form, $application->contractNo, $client);
+            $response = $client->call('/api/v3/tkbs/merchant_encry', $request, 'both');
+            $application->formData = self::encode($form);
+            $application->merchantNo = $response['data']['merchant_no'] ?? '';
+            $application->customerNo = $response['data']['merchant_no'] ?? '';
+            $application->status = LakalaApplicationClass::STATUS_WAIT_AUDIT;
+            $application->rejectReason = '';
+            $application->versionNo = ((int)$application->versionNo) + 1;
+            $application->updateTime = date('Y-m-d H:i:s');
+            $application->save();
+            self::version($application, $request, $response);
+            self::operation($application, 0, 'onboarding', '', $request, $response, $application->status);
+            return self::detail($application->id, $mainId, $shopId);
+        }catch(\Throwable $e){
+            Yii::error('Lakala submit: ' . $e->getMessage());
+            $errMsg = $e->getMessage();
+            $application->status = LakalaApplicationClass::STATUS_REJECT;
+            $application->rejectReason = $errMsg;
+            $application->save();
+        }
     }
 
     public static function submitForPlatformAudit($id, $mainId, $shopId, array $form)
@@ -278,6 +288,7 @@ class LakalaAccountService
         $result = LakalaApplicationClass::getList('*', $where, ['id' => SORT_DESC]);
         foreach ($result['list'] as &$item) {
             $form = self::formatFormImages(self::decode($item['formData'] ?? ''));
+            $item['client'] = $item['client'] == 1 ? '销花宝' : '花掌柜';
             $item['formData'] = $form;
             $item['merchantName'] = $form['merchant']['businessName'] ?? ($form['license']['licenseName'] ?? '');
             $item['legalName'] = $form['license']['legalName'] ?? '';
@@ -663,7 +674,8 @@ class LakalaAccountService
             'business_content' => $l['businessContent'],
             'is_legal_person' => (bool)$s['isLegalPerson'],
             'lar_name' => $l['legalName'], 'lar_id_type' => '01', 'lar_id_card' => $l['legalIdNo'],
-            'lar_id_card_start' => $l['legalIdStart'], 'lar_id_card_end' => $l['legalIdEnd'],
+            'lar_id_card_start' => date('Y-m-d', strtotime($l['legalIdStart'])),
+            'lar_id_card_end' => date('Y-m-d', strtotime($l['legalIdEnd'])),
             'contact_mobile' => $shop['contactMobile'] != '' ? $shop['contactMobile'] : $m['contactMobile'],
             'contact_name' => $l['legalName'] != '' ? $l['legalName'] : ($shop['contactName'] ?? $m['contactName']),
             'openning_bank_code' => $s['bankNo'],
@@ -695,7 +707,7 @@ class LakalaAccountService
             }
         }
         $content = array_merge($content, [
-            'A1' => $l['licenseName'] ?: $l['legalName'], 'A2' => '是', 'A6' => '是',
+            'A1' => $l['legalName'], 'A2' => '是', 'A6' => '是',
             'A7' => '0.50', 'A8' => '20', 'A9' => '是', 'A10' => '0.60',
             'A11' => '是', 'A12' => self::RATE, 'A13' => '是', 'A14' => self::RATE,
             'A15' => '0.60', 'A34' => self::RATE, 'A35' => self::RATE,
@@ -705,44 +717,71 @@ class LakalaAccountService
             'A121' => ($shop['provinceName'] ?? '') . ($shop['cityName'] ?? ''),
             'A124' => date('Y'), 'A125' => date('m'), 'A126' => date('d'), // 甲方签约 年/月/日
             'A127' => date('Y'), 'A128' => date('m'), 'A129' => date('d'), // 乙方签约 年/月/日
-            'A130' => $l['legalName'] ?: $m['contactName'], // 甲方电子签名/签字/盖章
+            'A130' => $l['legalName'], // 甲方电子签名/签字/盖章
+
             // ===== B 系列:商户注册登记 / 基本信息 / 结算账户 / 法人联系人 / 终端 / 拓展 =====
             'B1' => date('Y'), 'B2' => date('m'), // 商户注册登记表 年/月
             'B3' => '是',
-            'B8' => $l['licenseName'], // 基本信息:工商注册名称(中英文)
+            'B8' => $l['licenseName'] ?? '/', // 基本信息:工商注册名称(中英文)
             'B10' => $m['businessName'], // 基本信息:对外经营名称(中英文)
-            'B13' => ($m['provinceName'] ?? '') . ($m['cityName'] ?? ''), 'B14' => $l['licenseNo'] ?: '/',
-            'B18' => $l['legalName'],
-            'B19' => $s['bankName'],
-            'B20' => $s['accountNo'],
-            'B24' => $s['accountName'],
-            'B25' => $l['legalIdNo'], 'B26' => $b['signMobile'],
+            'B13' => ($m['provinceName'] ?? '') . ($m['cityName'] ?? ''),
+            'B14' => $l['licenseNo'] ?: '/',
+            'B16' => '/', //结算账户名称:同商户工商注册名称选择
+            'B17' => '/', //结算账户名称:其他名称选择
+            'B18' => $s['accountName'] ?? $l['legalName'], //结算账户名称:其他名称填写
+            'B19' => $s['bankName'],    //开户行(含支行)
+            'B20' => $s['accountNo'],   //结算账号
+            'B24' => $l['legalName'],   //法定代表人/负责人姓名   TODO 是谁
+            'B25' => $l['licenseNo'],   //法定代表人/负责人证件类型及号码  TODO 是谁
+            'B26' => $b['signMobile'],  //法定代表人/负责人手机   TODO 是谁
             'B27' => $l['legalName'],
             'B28' => $m['email'],
             'B29' => $l['legalIdNo'],// 联系人证件号码
             'B30' => $b['signMobile'],// 联系人手机号
-            'B31' => $l['licenseName'] ?: $l['legalName'],
-            'B32' => $l['legalName'],// 网点联系人姓名
+            'B31' => '/', //分店营业名称(中英文)
+            'B32' => $shop['contactName'],// 网点联系人姓名
             'B33' => $m['address'],
-            'B34' => $m['contactMobile'],
+            'B34' => $shop['contactMobile'], // 网点联系人手机号
+
             // ===== D 系列:各类授权书 =====
             'D1' => $s['bankName'],// 授权书(银行):结算账户所属银行
-            'D2' => $l['legalName'] ?: $m['contactName'],// 授权书(银行):授权承诺方签字
+            'D2' => $s['accountName'] ?? $l['legalName'],// 授权书(银行):授权承诺方签字 TODO 是谁
             'D3' => date('Y/m/d'),// 授权书(银行):签章/签字日期
-            'D4' => $l['legalName'] ?: $m['contactName'],// 授权书(开通微信、支付宝收单):承诺授权方签名
+            'D4' => $s['accountName'] ?? $l['legalName'],// 授权书(开通微信、支付宝收单):承诺授权方签名 TODO 是谁
             'D5' => date('Y/m/d'),// 授权书(开通微信、支付宝收单):盖章/签字日期
             // ===== E 系列:分银行费率明细(费率一致则不填,统一占位 "/")=====
-            'E78' => $l['legalName'] ?: $m['contactName'],// 电子签约服务授权委托书:承诺授权方签名
-            'E79' => $l['legalName'] ?: $m['contactName'],// 电子签约服务授权委托书:承诺签名或盖章
+            'E78' => $s['accountName'] ?? $l['legalName'],// 电子签约服务授权委托书:承诺授权方签名 TODO 是谁
+            'E79' => $s['accountName'] ?? $l['legalName'],// 电子签约服务授权委托书:承诺签名或盖章 TODO 是谁
         ]);
+
+        if ($s['isLegalPerson'] == false) { // 非法人
+            $content = array_merge($content, [
+                'D6' => $l['legalName'], //授权书(数据处理方):数据处理方名称
+                'D7' => $shop['contactMobile'], //授权书(数据处理方):数据处理方联系方式
+                'D8' => $s['accountName'], //授权书(数据处理方):承诺授权方签名
+                'D9' => date('Y/m/d'),
+                'D10' => $s['accountName'], //授权书(外卡业务):承诺授权方签名
+                'D11' => date('Y/m/d'),
+            ]);
+        }
+
         return [
-            'order_no' => $orderNo, 'org_id' => (int)$orgCode, 'ec_type_code' => 'EC015',
-            'cert_type' => 'RESIDENT_ID', 'cert_name' => $l['legalName'], 'cert_no' => $l['legalIdNo'],
-            'mobile' => $b['signMobile'], 'business_license_no' => $l['licenseNo'],
-            'business_license_name' => $l['licenseName'], 'openning_bank_code' => $s['bankNo'],
-            'openning_bank_name' => $s['bankName'], 'acct_type_code' => $s['accountType'],
-            'acct_no' => $s['accountNo'], 'acct_name' => $s['accountName'],
-            'ec_content_parameters' => self::encode($content), 'remark' => '销花宝商户入网',
+            'order_no' => $orderNo,
+            'org_id' => (int)$orgCode,
+            'ec_type_code' => 'EC015',
+            'cert_type' => 'RESIDENT_ID',
+            'cert_name' => $l['legalName'],
+            'cert_no' => $l['legalIdNo'],
+            'mobile' => $b['signMobile'],
+            'business_license_no' => $l['licenseNo'],
+            'business_license_name' => $l['licenseName'],
+            'openning_bank_code' => $s['bankNo'],
+            'openning_bank_name' => $s['bankName'],
+            'acct_type_code' => $s['accountType'],
+            'acct_no' => $s['accountNo'],
+            'acct_name' => $s['accountName'],
+            'ec_content_parameters' => self::encode($content),
+            'remark' => '销花宝商户入网',
         ];
     }
 

+ 1 - 1
scripts/sql/add_lakala_onboarding.sql

@@ -51,7 +51,7 @@ CREATE TABLE IF NOT EXISTS `xhLakalaAccount` (
     `accountName` varchar(100) NOT NULL DEFAULT '' COMMENT '银行结算账户开户名',
     `accountNo` varchar(64) NOT NULL DEFAULT '' COMMENT '银行结算账号',
     `bankName` varchar(150) NOT NULL DEFAULT '' COMMENT '开户银行名称',
-    `accountType` varchar(8) NOT NULL DEFAULT '' COMMENT '结算账户类型:58对公、59对私',
+    `accountType` varchar(8) NOT NULL DEFAULT '' COMMENT '结算账户类型:57对公、58对私',
     `licenseName` varchar(150) NOT NULL DEFAULT '' COMMENT '营业执照名称',
     `identityExpire` varchar(32) NOT NULL DEFAULT '' COMMENT '法人或结算人身份证有效期',
     `scanTermNo` varchar(64) NOT NULL DEFAULT '' COMMENT 'WECHAT_PAY扫码终端号',