|
@@ -77,6 +77,7 @@ class LakalaAccountService
|
|
|
'mainId' => $mainId,
|
|
'mainId' => $mainId,
|
|
|
'shopId' => $shopId,
|
|
'shopId' => $shopId,
|
|
|
'accountId' => $accountId,
|
|
'accountId' => $accountId,
|
|
|
|
|
+ 'client' => 1, //申请来自哪个客户端,: 1销花宝 2花掌柜(设置来自销花宝)
|
|
|
'type' => $type,
|
|
'type' => $type,
|
|
|
'status' => LakalaApplicationClass::STATUS_DRAFT,
|
|
'status' => LakalaApplicationClass::STATUS_DRAFT,
|
|
|
'currentStep' => $type === LakalaApplicationClass::TYPE_SETTLEMENT_CHANGE ? 3 : 1,
|
|
'currentStep' => $type === LakalaApplicationClass::TYPE_SETTLEMENT_CHANGE ? 3 : 1,
|
|
@@ -185,6 +186,7 @@ class LakalaAccountService
|
|
|
$application = self::application($id, $mainId, $shopId, true);
|
|
$application = self::application($id, $mainId, $shopId, true);
|
|
|
$form = self::decode($application->formData);
|
|
$form = self::decode($application->formData);
|
|
|
self::validateContract($form);
|
|
self::validateContract($form);
|
|
|
|
|
+
|
|
|
$client = new LakalaOnboardingClient();
|
|
$client = new LakalaOnboardingClient();
|
|
|
$orderNo = date('YmdHis') . substr(str_shuffle('0123456789'), 0, 8);
|
|
$orderNo = date('YmdHis') . substr(str_shuffle('0123456789'), 0, 8);
|
|
|
$request = self::contractRequest($form, $orderNo, $client->orgCode());
|
|
$request = self::contractRequest($form, $orderNo, $client->orgCode());
|
|
@@ -227,20 +229,28 @@ class LakalaAccountService
|
|
|
if ($application->contractStatus !== 'COMPLETED' || empty($application->contractNo)) {
|
|
if ($application->contractStatus !== 'COMPLETED' || empty($application->contractNo)) {
|
|
|
util::fail('请先完成电子合同签约并刷新签约状态');
|
|
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)
|
|
public static function submitForPlatformAudit($id, $mainId, $shopId, array $form)
|
|
@@ -278,6 +288,7 @@ class LakalaAccountService
|
|
|
$result = LakalaApplicationClass::getList('*', $where, ['id' => SORT_DESC]);
|
|
$result = LakalaApplicationClass::getList('*', $where, ['id' => SORT_DESC]);
|
|
|
foreach ($result['list'] as &$item) {
|
|
foreach ($result['list'] as &$item) {
|
|
|
$form = self::formatFormImages(self::decode($item['formData'] ?? ''));
|
|
$form = self::formatFormImages(self::decode($item['formData'] ?? ''));
|
|
|
|
|
+ $item['client'] = $item['client'] == 1 ? '销花宝' : '花掌柜';
|
|
|
$item['formData'] = $form;
|
|
$item['formData'] = $form;
|
|
|
$item['merchantName'] = $form['merchant']['businessName'] ?? ($form['license']['licenseName'] ?? '');
|
|
$item['merchantName'] = $form['merchant']['businessName'] ?? ($form['license']['licenseName'] ?? '');
|
|
|
$item['legalName'] = $form['license']['legalName'] ?? '';
|
|
$item['legalName'] = $form['license']['legalName'] ?? '';
|
|
@@ -663,7 +674,8 @@ class LakalaAccountService
|
|
|
'business_content' => $l['businessContent'],
|
|
'business_content' => $l['businessContent'],
|
|
|
'is_legal_person' => (bool)$s['isLegalPerson'],
|
|
'is_legal_person' => (bool)$s['isLegalPerson'],
|
|
|
'lar_name' => $l['legalName'], 'lar_id_type' => '01', 'lar_id_card' => $l['legalIdNo'],
|
|
'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_mobile' => $shop['contactMobile'] != '' ? $shop['contactMobile'] : $m['contactMobile'],
|
|
|
'contact_name' => $l['legalName'] != '' ? $l['legalName'] : ($shop['contactName'] ?? $m['contactName']),
|
|
'contact_name' => $l['legalName'] != '' ? $l['legalName'] : ($shop['contactName'] ?? $m['contactName']),
|
|
|
'openning_bank_code' => $s['bankNo'],
|
|
'openning_bank_code' => $s['bankNo'],
|
|
@@ -695,7 +707,7 @@ class LakalaAccountService
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
$content = array_merge($content, [
|
|
$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',
|
|
'A7' => '0.50', 'A8' => '20', 'A9' => '是', 'A10' => '0.60',
|
|
|
'A11' => '是', 'A12' => self::RATE, 'A13' => '是', 'A14' => self::RATE,
|
|
'A11' => '是', 'A12' => self::RATE, 'A13' => '是', 'A14' => self::RATE,
|
|
|
'A15' => '0.60', 'A34' => self::RATE, 'A35' => self::RATE,
|
|
'A15' => '0.60', 'A34' => self::RATE, 'A35' => self::RATE,
|
|
@@ -705,44 +717,71 @@ class LakalaAccountService
|
|
|
'A121' => ($shop['provinceName'] ?? '') . ($shop['cityName'] ?? ''),
|
|
'A121' => ($shop['provinceName'] ?? '') . ($shop['cityName'] ?? ''),
|
|
|
'A124' => date('Y'), 'A125' => date('m'), 'A126' => date('d'), // 甲方签约 年/月/日
|
|
'A124' => date('Y'), 'A125' => date('m'), 'A126' => date('d'), // 甲方签约 年/月/日
|
|
|
'A127' => date('Y'), 'A128' => date('m'), 'A129' => date('d'), // 乙方签约 年/月/日
|
|
'A127' => date('Y'), 'A128' => date('m'), 'A129' => date('d'), // 乙方签约 年/月/日
|
|
|
- 'A130' => $l['legalName'] ?: $m['contactName'], // 甲方电子签名/签字/盖章
|
|
|
|
|
|
|
+ 'A130' => $l['legalName'], // 甲方电子签名/签字/盖章
|
|
|
|
|
+
|
|
|
// ===== B 系列:商户注册登记 / 基本信息 / 结算账户 / 法人联系人 / 终端 / 拓展 =====
|
|
// ===== B 系列:商户注册登记 / 基本信息 / 结算账户 / 法人联系人 / 终端 / 拓展 =====
|
|
|
'B1' => date('Y'), 'B2' => date('m'), // 商户注册登记表 年/月
|
|
'B1' => date('Y'), 'B2' => date('m'), // 商户注册登记表 年/月
|
|
|
'B3' => '是',
|
|
'B3' => '是',
|
|
|
- 'B8' => $l['licenseName'], // 基本信息:工商注册名称(中英文)
|
|
|
|
|
|
|
+ 'B8' => $l['licenseName'] ?? '/', // 基本信息:工商注册名称(中英文)
|
|
|
'B10' => $m['businessName'], // 基本信息:对外经营名称(中英文)
|
|
'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'],
|
|
'B27' => $l['legalName'],
|
|
|
'B28' => $m['email'],
|
|
'B28' => $m['email'],
|
|
|
'B29' => $l['legalIdNo'],// 联系人证件号码
|
|
'B29' => $l['legalIdNo'],// 联系人证件号码
|
|
|
'B30' => $b['signMobile'],// 联系人手机号
|
|
'B30' => $b['signMobile'],// 联系人手机号
|
|
|
- 'B31' => $l['licenseName'] ?: $l['legalName'],
|
|
|
|
|
- 'B32' => $l['legalName'],// 网点联系人姓名
|
|
|
|
|
|
|
+ 'B31' => '/', //分店营业名称(中英文)
|
|
|
|
|
+ 'B32' => $shop['contactName'],// 网点联系人姓名
|
|
|
'B33' => $m['address'],
|
|
'B33' => $m['address'],
|
|
|
- 'B34' => $m['contactMobile'],
|
|
|
|
|
|
|
+ 'B34' => $shop['contactMobile'], // 网点联系人手机号
|
|
|
|
|
+
|
|
|
// ===== D 系列:各类授权书 =====
|
|
// ===== D 系列:各类授权书 =====
|
|
|
'D1' => $s['bankName'],// 授权书(银行):结算账户所属银行
|
|
'D1' => $s['bankName'],// 授权书(银行):结算账户所属银行
|
|
|
- 'D2' => $l['legalName'] ?: $m['contactName'],// 授权书(银行):授权承诺方签字
|
|
|
|
|
|
|
+ 'D2' => $s['accountName'] ?? $l['legalName'],// 授权书(银行):授权承诺方签字 TODO 是谁
|
|
|
'D3' => date('Y/m/d'),// 授权书(银行):签章/签字日期
|
|
'D3' => date('Y/m/d'),// 授权书(银行):签章/签字日期
|
|
|
- 'D4' => $l['legalName'] ?: $m['contactName'],// 授权书(开通微信、支付宝收单):承诺授权方签名
|
|
|
|
|
|
|
+ 'D4' => $s['accountName'] ?? $l['legalName'],// 授权书(开通微信、支付宝收单):承诺授权方签名 TODO 是谁
|
|
|
'D5' => date('Y/m/d'),// 授权书(开通微信、支付宝收单):盖章/签字日期
|
|
'D5' => date('Y/m/d'),// 授权书(开通微信、支付宝收单):盖章/签字日期
|
|
|
// ===== E 系列:分银行费率明细(费率一致则不填,统一占位 "/")=====
|
|
// ===== 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 [
|
|
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' => '销花宝商户入网',
|
|
|
];
|
|
];
|
|
|
}
|
|
}
|
|
|
|
|
|