|
@@ -6,164 +6,181 @@ Class Sign {
|
|
|
static $key = "udik876ehjde32dU61edsxsf";
|
|
|
static $accesser_id = 'zsma';
|
|
|
static $sign_type = 'SHA-256';
|
|
|
+ private $test = 2;
|
|
|
+ private $url = 'https://selfapply-test.chinaums.com/self-contract-nmrs/interface/autoReg/';
|
|
|
//private $product_id = array('0','1','in1','in2','in3','in4');
|
|
|
private $product_id = array('0');
|
|
|
private $document_type = array
|
|
|
(
|
|
|
- ['document_type' => '0001','document_name' => '身份证正面', 'key' => 'idcard_front'],
|
|
|
- ['document_type' => '0011','document_name' => '身份证反面', 'key' => 'idcard_back'],
|
|
|
- ['document_type' => '0002','document_name' => '营业执照', 'key' => 'license'],
|
|
|
- ['document_type' => '0003','document_name' => '税务登记证', 'key' => 'tax'],
|
|
|
- ['document_type' => '0005','document_name' => '门头照', 'key' => 'door'],
|
|
|
- ['document_type' => '0007','document_name' => '手持身份证自拍照', 'key' => 'hand_idcard'],
|
|
|
- ['document_type' => '0006','document_name' => '开户许可证', 'key' => 'open'],
|
|
|
- ['document_type' => '0025','document_name' => '银行卡正面照', 'key' => 'bank_fount'],
|
|
|
- ['document_type' => '0026','document_name' => '银行卡反面照', 'key' => 'bank_back'],
|
|
|
- ['document_type' => '0015','document_name' => '室内照片', 'key' => 'house_pic'],
|
|
|
- );
|
|
|
+ ['document_type' => '0001','document_name' => '身份证正面', 'key' => 'idcard_front'],
|
|
|
+ ['document_type' => '0011','document_name' => '身份证反面', 'key' => 'idcard_back'],
|
|
|
+ ['document_type' => '0002','document_name' => '营业执照', 'key' => 'license'],
|
|
|
+ ['document_type' => '0003','document_name' => '税务登记证', 'key' => 'tax'],
|
|
|
+ ['document_type' => '0005','document_name' => '门头照', 'key' => 'door'],
|
|
|
+ ['document_type' => '0007','document_name' => '手持身份证自拍照', 'key' => 'hand_idcard'],
|
|
|
+ ['document_type' => '0006','document_name' => '开户许可证', 'key' => 'open'],
|
|
|
+ ['document_type' => '0025','document_name' => '银行卡正面照', 'key' => 'bank_fount'],
|
|
|
+ ['document_type' => '0026','document_name' => '银行卡反面照', 'key' => 'bank_back'],
|
|
|
+ ['document_type' => '0015','document_name' => '室内照片', 'key' => 'house_pic'],
|
|
|
+ );
|
|
|
|
|
|
- # 统一处理接口
|
|
|
- public function handle($shop_id)
|
|
|
- {
|
|
|
- $shop = Dever::db('shop/info')->find($shop_id);
|
|
|
- $sign = Dever::db('shop/sign')->find(array('shop_id'=>$shop_id));
|
|
|
- if (!$sign) {
|
|
|
- Dever::alert('档案资料未上传');
|
|
|
- }
|
|
|
- switch($sign['step']) {
|
|
|
- case -1;
|
|
|
- # 提交资料
|
|
|
- return $this->up($shop, $sign);
|
|
|
- break;
|
|
|
- case 1;
|
|
|
- case 6;
|
|
|
- if ($sign['bank_acct_type'] == 1) {
|
|
|
- # 对公打款
|
|
|
+ # 获取日志
|
|
|
+ public function getLog($shop)
|
|
|
+ {
|
|
|
+ Dever::setInput('search_option_shop_id', -1);
|
|
|
+ $sign = Dever::db('shop/sign')->find(array('shop_id' => $shop['id']));
|
|
|
+ if (!$sign) {
|
|
|
+ return Dever::timeline('填写资料');
|
|
|
+ }
|
|
|
+ $result = array();
|
|
|
+ if ($sign['step'] == -1) {
|
|
|
+ $url = Dever::url('shop/lib/sign.handle?shop_id=' . $sign['shop_id'] . '&json=1');
|
|
|
+ $result = array('<a href="javascript:;" onclick="load(\''.$url.'\')">点此上传资料</a>');
|
|
|
+ } else {
|
|
|
+ $log = Dever::db('shop/sign_log')->select(array('sign_id' => $sign['id']));
|
|
|
+ if ($log) {
|
|
|
+ foreach ($log as $k => $v) {
|
|
|
+ if ($v['step'] == 4) {
|
|
|
+ $v['response'] = Dever::json_decode($v['response']);
|
|
|
+ $v['desc'] .= ' <a href="'.$v['response']['url'].'" target="_blank">点此打开</a> <a style="cursor:pointer" data-clipboard-text="'.$v['response']['url'].'" class="clipboard">复制链接</a>';
|
|
|
+ }
|
|
|
+ $date = date('Y-m-d H:i', $v['cdate']);
|
|
|
+ $result[] = $date . ' ' . $v['desc'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = Dever::timeline('签约记录', $result);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ # 统一处理接口
|
|
|
+ public function handle_api($shop_id)
|
|
|
+ {
|
|
|
+ $shop = Dever::db('shop/info')->find($shop_id);
|
|
|
+ $sign = Dever::db('shop/sign')->find(array('shop_id' => $shop_id));
|
|
|
+ if (!$sign) {
|
|
|
+ Dever::alert('档案资料未上传');
|
|
|
+ }
|
|
|
+ switch($sign['step']) {
|
|
|
+ case -1;
|
|
|
+ # 提交资料
|
|
|
+ return $this->up($shop, $sign);
|
|
|
+ break;
|
|
|
+ case 1;
|
|
|
+ case 6;
|
|
|
+ if ($sign['bank_acct_type'] == 1) {
|
|
|
+ # 对公打款
|
|
|
return $this->account($sign);
|
|
|
} else {
|
|
|
# 签约
|
|
|
return $this->agreement($sign);
|
|
|
}
|
|
|
break;
|
|
|
- case 2;
|
|
|
- # 打款验证
|
|
|
- return $this->account_check($sign);
|
|
|
- break;
|
|
|
- case 4;
|
|
|
- # 验证签约
|
|
|
- return $this->check($sign);
|
|
|
- break;
|
|
|
- case 5;
|
|
|
- # 签约成功,变更签约?
|
|
|
- return true;
|
|
|
- return $this->up($sign);
|
|
|
- break;
|
|
|
- }
|
|
|
- return 'ok';
|
|
|
- }
|
|
|
-
|
|
|
- #3.2 详细采集档案资料上传接口
|
|
|
- private function up($shop, $sign)
|
|
|
- {
|
|
|
- $service = 'complex_upload';
|
|
|
- $data['accesser_user_id'] = $shop['id'];
|
|
|
- if ($sign['reg_mer_type'] == 1) {
|
|
|
- $sign['reg_mer_type'] = '00';
|
|
|
- } elseif ($sign['reg_mer_type'] == 2) {
|
|
|
- $sign['reg_mer_type'] = '01';
|
|
|
- } elseif ($sign['reg_mer_type'] == 3) {
|
|
|
- $sign['reg_mer_type'] = '02';
|
|
|
- }
|
|
|
- $data['reg_mer_type'] = $sign['reg_mer_type'];#注册类型
|
|
|
- $data['legal_name'] = $sign['name'];#法人姓名
|
|
|
- $data['legal_idcard_no'] = $sign['idcard'];#法人身份证号
|
|
|
- $data['legal_mobile'] = $sign['mobile'];#法人手机号
|
|
|
- $data['legal_card_deadline'] = date('Y-m-d',$sign['card_deadline']);#证件截止代表日期
|
|
|
- $data['shop_name'] = $shop['name'];#店铺名称
|
|
|
- if ($sign['bank_acct_type'] == -1) {
|
|
|
- $data['bank_acct_type'] = 0;
|
|
|
- } else {
|
|
|
- $data['bank_acct_type'] = 1;
|
|
|
- }
|
|
|
+ case 2;
|
|
|
+ # 打款验证
|
|
|
+ return $this->account_check($sign);
|
|
|
+ break;
|
|
|
+ case 4;
|
|
|
+ # 验证签约
|
|
|
+ return $this->check($sign);
|
|
|
+ break;
|
|
|
+ case 5;
|
|
|
+ # 签约成功,变更签约?
|
|
|
+ return '签约已成功,后续可以变更签约';
|
|
|
+ return $this->up($sign);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return 'ok';
|
|
|
+ }
|
|
|
|
|
|
- $data['bank_acct_no'] = $sign['bank_acct_no'];#开户行账号
|
|
|
- if ($sing['acct_type'] == 1) {
|
|
|
- $data['bank_acct_name'] = $sign['company_name'];#开户账号名称
|
|
|
- } else {
|
|
|
- $data['bank_acct_name'] = $sign['name'];#开户账号名称
|
|
|
- }
|
|
|
- $data['mccCode'] = $sign['mccCode'];
|
|
|
+ #3.2 详细采集档案资料上传接口
|
|
|
+ private function up($shop, $sign)
|
|
|
+ {
|
|
|
+ $service = 'complex_upload';
|
|
|
+ $data['accesser_user_id'] = $shop['id'];
|
|
|
+ if ($sign['reg_mer_type'] == 1) {
|
|
|
+ $sign['reg_mer_type'] = '00';
|
|
|
+ } elseif ($sign['reg_mer_type'] == 2) {
|
|
|
+ $sign['reg_mer_type'] = '01';
|
|
|
+ } elseif ($sign['reg_mer_type'] == 3) {
|
|
|
+ $sign['reg_mer_type'] = '02';
|
|
|
+ }
|
|
|
+ $data['reg_mer_type'] = $sign['reg_mer_type'];#注册类型
|
|
|
+ $data['legal_name'] = $sign['name'];#法人姓名
|
|
|
+ $data['legal_idcard_no'] = $sign['idcard'];#法人身份证号
|
|
|
+ $data['legal_mobile'] = $sign['mobile'];#法人手机号
|
|
|
+ $data['legal_card_deadline'] = date('Y-m-d',$sign['card_deadline']);#证件截止代表日期
|
|
|
+ $data['shop_name'] = $shop['name'];#店铺名称
|
|
|
+ if ($sign['bank_acct_type'] == -1) {
|
|
|
+ $data['bank_acct_type'] = 0;
|
|
|
+ } else {
|
|
|
+ $data['bank_acct_type'] = 1;
|
|
|
+ }
|
|
|
|
|
|
- $area = explode(',', $shop['area']);
|
|
|
- $data['shop_province_id'] = $area[0]/10000;
|
|
|
- $data['shop_city_id'] = $area[1]/100;
|
|
|
- $data['shop_country_id'] = $area[2];
|
|
|
- $sign_area = explode(',',$shop['area']);
|
|
|
- $data['shop_lic'] = $shop['license_number'];#营业执照号
|
|
|
- if (isset($sign['bank_no']) && $sign['bank_no']) {
|
|
|
- $data['bank_no'] = $sign['bank_no'];
|
|
|
- $data['shop_addr_ext'] = $sign['shop_addr_ext'];
|
|
|
- } else {
|
|
|
- $bank = Dever::json_decode($this->bank_list($sign_area[0]/10000,$sign['bank_acct_noname']));
|
|
|
- if($bank && isset($bank['branchBankList']) && $bank['branchBankList']){
|
|
|
- foreach($bank['branchBankList'] as $k =>$v){
|
|
|
- $bank['branchBankList'] = (array)$v;
|
|
|
- }
|
|
|
- $in['where_id'] = $sign['id'];
|
|
|
- $in['bank_no'] = $bank['branchBankList']['code'];
|
|
|
- $in['shop_addr_ext'] = $bank['branchBankList']['bankBranchName'];
|
|
|
- Dever::db('shop/sign')->update($in);
|
|
|
- $data['bank_no'] = $bank['branchBankList']['code'];
|
|
|
- $data['shop_addr_ext'] = $bank['branchBankList']['bankBranchName'];
|
|
|
- } else {
|
|
|
- return $this->log(1, $sign, '开户行行号不存在');
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if ($sign['reg_mer_type'] == '00') {
|
|
|
- if ($sign['bank_acct_type'] != '1') {
|
|
|
- return $this->log(1, $sign, '账户类型不正确');
|
|
|
- }
|
|
|
+ $data['bank_acct_no'] = $sign['bank_acct_no'];#开户行账号
|
|
|
+ if ($sign['bank_acct_type'] == 1) {
|
|
|
+ $data['bank_acct_name'] = $sign['company_name'];#开户账号名称
|
|
|
+ } else {
|
|
|
+ $data['bank_acct_name'] = $sign['name'];#开户账号名称
|
|
|
+ }
|
|
|
+ $data['mccCode'] = $sign['mccCode'];
|
|
|
|
|
|
- } elseif ($sign['reg_mer_type'] == '01') {
|
|
|
- if ($sign['bank_acct_type'] != '0') {
|
|
|
- return $this->log(1, $sign, '账户类型不正确');
|
|
|
- }
|
|
|
- }
|
|
|
- if ($sign['legalmanHomeAddr']) {
|
|
|
+ $area = explode(',', $shop['area']);
|
|
|
+ $data['shop_province_id'] = $area[0]/10000;
|
|
|
+ $data['shop_city_id'] = $area[1]/100;
|
|
|
+ $data['shop_country_id'] = $area[2];
|
|
|
+ $sign_area = explode(',',$sign['area']);
|
|
|
+ $data['shop_lic'] = $shop['license_number'];#营业执照号
|
|
|
+ $bank = $this->bank_list($sign_area[0]/10000, $sign['bank_acct_noname']);
|
|
|
+ if($bank && isset($bank['branchBankList']) && $bank['branchBankList']){
|
|
|
+ $bank['branchBankList'] = $bank['branchBankList'][0];
|
|
|
+ $in['where_id'] = $sign['id'];
|
|
|
+ $in['bank_no'] = $bank['branchBankList']['code'];
|
|
|
+ $in['shop_addr_ext'] = $bank['branchBankList']['bankBranchName'];
|
|
|
+ Dever::db('shop/sign')->update($in);
|
|
|
+ $data['bank_no'] = $bank['branchBankList']['code'];
|
|
|
+ $data['shop_addr_ext'] = $bank['branchBankList']['bankBranchName'];
|
|
|
+ } else {
|
|
|
+ return $this->log(1, $sign, '开户行行号不存在');
|
|
|
+ }
|
|
|
+ if ($sign['reg_mer_type'] == '00' && $sign['bank_acct_type'] != '1') {
|
|
|
+ return $this->log(1, $sign, '账户类型不正确1');
|
|
|
+ }
|
|
|
+ if ($sign['legalmanHomeAddr']) {
|
|
|
$data['legalmanHomeAddr'] = $sign['legalmanHomeAddr'];
|
|
|
}
|
|
|
- $document_type = $this->document_type;
|
|
|
+ $document_type = $this->document_type;
|
|
|
|
|
|
- foreach ($document_type as $k => $v) {
|
|
|
- if (isset($sign[$v['key']]) && $sign[$v['key']]) {
|
|
|
- $sign_pic = Dever::db('shop/sign_pic')->find(array('shop_id' => $shop['id'], 'key' => $v['key']));
|
|
|
- if (!$sign_pic) {
|
|
|
- $pic = $this->pic($sign[$v['key']]);
|
|
|
- if ($pic && isset($pic['path']) && $pic['path']) {
|
|
|
- $insert = array();
|
|
|
- $insert['shop_id'] = $shop['id'];
|
|
|
- $insert['document_type'] = $v['document_type'];
|
|
|
- $insert['document_name'] = $v['document_name'];
|
|
|
- $insert['key'] = $v['key'];
|
|
|
- $insert['path'] = Dever::json_encode($pic);
|
|
|
- Dever::db('shop/sign_pic')->insert($insert);
|
|
|
- $data['pic_list'][] = array('document_name' => $v['document_name'], 'document_type' => $v['document_type'] , 'file_path'=> $pic['file_path'], 'file_size'=>$pic['file_size']);
|
|
|
- }
|
|
|
- } else {
|
|
|
- $pic = Dever::json_decode($sign_pic['path']);
|
|
|
- $data['pic_list'][] = array('document_name' => $sign_pic['document_name'], 'document_type' => $sign_pic['document_type'] , 'file_path'=> $pic['file_path'], 'file_size'=>$pic['file_size']);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- $ids = $this->product_id;
|
|
|
- $data['product'] = array();
|
|
|
- foreach ($ids as $k => $v) {
|
|
|
- $data['product'][$k] = ['product_id' => $v];
|
|
|
- }
|
|
|
- $result = $this->get($service, $data);
|
|
|
- if ($result && $result['code'] == 1 && isset($result['data']['ums_reg_id']) && $result['data']['ums_reg_id']) {
|
|
|
- $update = array();
|
|
|
+ foreach ($document_type as $k => $v) {
|
|
|
+ if (isset($sign[$v['key']]) && $sign[$v['key']]) {
|
|
|
+ $sign_pic = Dever::db('shop/sign_pic')->find(array('shop_id' => $shop['id'], 'key' => $v['key']));
|
|
|
+ if (!$sign_pic) {
|
|
|
+ $pic = $this->pic($sign[$v['key']]);
|
|
|
+ if ($pic && isset($pic['data']['file_path']) && $pic['data']['file_path']) {
|
|
|
+ $insert = array();
|
|
|
+ $insert['shop_id'] = $shop['id'];
|
|
|
+ $insert['document_type'] = $v['document_type'];
|
|
|
+ $insert['document_name'] = $v['document_name'];
|
|
|
+ $insert['key'] = $v['key'];
|
|
|
+ $insert['path'] = Dever::json_encode($pic['data']);
|
|
|
+ Dever::db('shop/sign_pic')->insert($insert);
|
|
|
+ $data['pic_list'][] = array('document_name' => $v['document_name'], 'document_type' => $v['document_type'] , 'file_path'=> $pic['data']['file_path'], 'file_size'=>$pic['data']['file_size']);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $pic = Dever::json_decode($sign_pic['path']);
|
|
|
+ $data['pic_list'][] = array('document_name' => $sign_pic['document_name'], 'document_type' => $sign_pic['document_type'] , 'file_path'=> $pic['file_path'], 'file_size'=>$pic['file_size']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $ids = $this->product_id;
|
|
|
+ $data['product'] = array();
|
|
|
+ foreach ($ids as $k => $v) {
|
|
|
+ $data['product'][$k] = ['product_id' => $v];
|
|
|
+ }
|
|
|
+ $result = $this->get($service, $data);
|
|
|
+ if ($result && $result['code'] == 1 && isset($result['data']['ums_reg_id']) && $result['data']['ums_reg_id']) {
|
|
|
+ $update = array();
|
|
|
$update['where_id'] = $sign['id'];
|
|
|
$sign['ums_reg_id'] = $update['ums_reg_id'] = $result['data']['ums_reg_id'];
|
|
|
Dever::db('shop/sign')->update($update);
|
|
@@ -173,213 +190,248 @@ Class Sign {
|
|
|
} else {
|
|
|
return $this->agreement($sign);
|
|
|
}
|
|
|
- } else {
|
|
|
- $this->log(1, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
- }
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ $this->log(1, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
+ }
|
|
|
+ return Dever::input('json') == 1 ? 'reload' : $result;
|
|
|
+ }
|
|
|
|
|
|
- # 3.7 发起对公账户验证交易接口
|
|
|
- public function account($sign)
|
|
|
- {
|
|
|
- $step = 2;
|
|
|
- $service = 'request_account_verify';
|
|
|
- $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
- $data['company_account'] = $sign['bank_acct_no'];
|
|
|
- $result = $this->get($service, $data);
|
|
|
- if ($result && $result['code'] == 1 && isset($result['data']['request_seq']) && $result['data']['request_seq']) {
|
|
|
- $update = array();
|
|
|
+ # 3.7 发起对公账户验证交易接口
|
|
|
+ public function account($sign)
|
|
|
+ {
|
|
|
+ $step = 2;
|
|
|
+ $service = 'request_account_verify';
|
|
|
+ $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
+ $data['company_account'] = $sign['bank_acct_no'];
|
|
|
+ $result = $this->get($service, $data);
|
|
|
+ if ($result && $result['code'] == 1 && isset($result['data']['request_seq']) && $result['data']['request_seq']) {
|
|
|
+ $update = array();
|
|
|
$update['where_id'] = $sign['id'];
|
|
|
$update['step'] = $step;
|
|
|
$update['clear'] = true;
|
|
|
- Dever::db('shop/sign')->update($update);
|
|
|
+ Dever::db('shop/sign')->update($update);
|
|
|
$this->log($update['step'], $sign, '公户打款成功', $data, $result['data'], $result['request_seq']);
|
|
|
- } else {
|
|
|
- $this->log($step, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
- }
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ $this->log($step, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
+ }
|
|
|
+ return Dever::input('json') == 1 ? 'reload' : $result;
|
|
|
+ }
|
|
|
|
|
|
- # 3.6 对公账户认证接口
|
|
|
- public function account_check($sign)
|
|
|
- {
|
|
|
- $step = 3;
|
|
|
- $trans_amt = Dever::input('num');
|
|
|
- $service = 'company_account_verify';
|
|
|
- $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
- $data['company_account'] = $sign['bank_acct_no'];
|
|
|
- $data['trans_amt'] = $trans_amt;
|
|
|
- $result = $this->get($service, $data, $sign['ums_reg_id']);
|
|
|
- if ($result && $result['code'] == 1 && isset($result['data']['request_seq']) && $result['data']['request_seq']) {
|
|
|
- $update = array();
|
|
|
+ # 3.6 对公账户认证接口
|
|
|
+ public function account_check($sign)
|
|
|
+ {
|
|
|
+ $step = 3;
|
|
|
+ $trans_amt = Dever::input('num');
|
|
|
+ $service = 'company_account_verify';
|
|
|
+ $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
+ $data['company_account'] = $sign['bank_acct_no'];
|
|
|
+ $data['trans_amt'] = $trans_amt;
|
|
|
+ $result = $this->get($service, $data, $sign['ums_reg_id']);
|
|
|
+ if ($result && $result['code'] == 1 && isset($result['data']['request_seq']) && $result['data']['request_seq']) {
|
|
|
+ $update = array();
|
|
|
$update['where_id'] = $sign['id'];
|
|
|
$update['step'] = $step;
|
|
|
$update['clear'] = true;
|
|
|
- Dever::db('shop/sign')->update($update);
|
|
|
+ Dever::db('shop/sign')->update($update);
|
|
|
$this->log($update['step'], $sign, '公户对账成功', $data, $result['data'], $result['request_seq']);
|
|
|
return $this->agreement($sign);
|
|
|
- } else {
|
|
|
- $this->log($step, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
- }
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ $this->log($step, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
+ }
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
|
|
|
- # 3.3 前台签约接口
|
|
|
- public function agreement($sign)
|
|
|
- {
|
|
|
- $step = 4;
|
|
|
- $service = 'agreement_sign';
|
|
|
- $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
- $data['pcOrH5'] = 'H5';
|
|
|
- $result = $this->get($service, $data);
|
|
|
- if ($result && $result['code'] == 1 && isset($result['data']['url']) && $result['data']['url']) {
|
|
|
- $update = array();
|
|
|
+ # 3.3 前台签约接口
|
|
|
+ public function agreement($sign)
|
|
|
+ {
|
|
|
+ $step = 4;
|
|
|
+ $service = 'agreement_sign';
|
|
|
+ $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
+ $data['pcOrH5'] = 'H5';
|
|
|
+ $result = $this->get($service, $data);
|
|
|
+ if ($result && $result['code'] == 1 && isset($result['data']['url']) && $result['data']['url']) {
|
|
|
+ $update = array();
|
|
|
$update['where_id'] = $sign['id'];
|
|
|
$update['step'] = $step;
|
|
|
+ $update['url'] = $result['data']['url'];
|
|
|
$update['clear'] = true;
|
|
|
- Dever::db('shop/sign')->update($update);
|
|
|
+ Dever::db('shop/sign')->update($update);
|
|
|
$this->log($update['step'], $sign, '获取前台签约合同链接', $data, $result['data'], $result['request_seq']);
|
|
|
- } else {
|
|
|
- $this->log($step, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
- }
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ $this->log($step, $sign, $result['msg'], $data, $result['data'], $result['request_seq']);
|
|
|
+ }
|
|
|
+ return Dever::input('json') == 1 ? 'reload' : $result;
|
|
|
+ }
|
|
|
|
|
|
- # 3.4 入网状态查询接口
|
|
|
- public function check($sign)
|
|
|
- {
|
|
|
- $step = 5;
|
|
|
- $service = 'apply_qry';
|
|
|
- $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
- $result = $this->get($service, $data, $sign['ums_reg_id']);
|
|
|
- if ($result && $result['code'] == 1 && isset($result['data']['apply_status']) && $result['data']['apply_status'] == '03') {
|
|
|
- $update = array();
|
|
|
+ # 3.4 入网状态查询接口
|
|
|
+ public function check($sign)
|
|
|
+ {
|
|
|
+ $step = 5;
|
|
|
+ $service = 'apply_qry';
|
|
|
+ $data['ums_reg_id'] = $sign['ums_reg_id'];
|
|
|
+ $result = $this->get($service, $data, $sign['ums_reg_id']);
|
|
|
+ if ($result && $result['code'] == 1 && isset($result['data']['apply_status']) && $result['data']['apply_status'] == '03') {
|
|
|
+ $update = array();
|
|
|
$update['where_id'] = $sign['id'];
|
|
|
$update['step'] = $step;
|
|
|
$update['clear'] = true;
|
|
|
- Dever::db('shop/sign')->update($update);
|
|
|
+ Dever::db('shop/sign')->update($update);
|
|
|
$this->log($update['step'], $sign, '签约成功', $data, $result['data'], $result['request_seq']);
|
|
|
- } else {
|
|
|
- $this->log($step, $sign, $result['data']['apply_status_msg'], $data, $result['data'], $result['request_seq']);
|
|
|
- }
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ $this->log($step, $sign, $result['data']['apply_status_msg'], $data, $result['data'], $result['request_seq']);
|
|
|
+ }
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
|
|
|
private function encrypt($data='', $key='', $use3des = true)
|
|
|
- {
|
|
|
- $key = self::$key;
|
|
|
- $res = bin2hex(openssl_encrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA));
|
|
|
+ {
|
|
|
+ $key = self::$key;
|
|
|
+ $res = bin2hex(openssl_encrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA));
|
|
|
return $res;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- private function decrypt($data='', $key='', $use3des = true)
|
|
|
- {
|
|
|
- $key = self::$key;
|
|
|
- return openssl_decrypt(pack('H*',$data), 'DES-EDE3', $key, OPENSSL_RAW_DATA);
|
|
|
- }
|
|
|
+ private function decrypt($data='', $key='', $use3des = true)
|
|
|
+ {
|
|
|
+ $key = self::$key;
|
|
|
+ return openssl_decrypt(pack('H*',$data), 'DES-EDE3', $key, OPENSSL_RAW_DATA);
|
|
|
+ }
|
|
|
|
|
|
- private function get($service, $data, $request_seq = false)
|
|
|
- {
|
|
|
- $accesser_id = self::$accesser_id;
|
|
|
- $sign_type = self::$sign_type;
|
|
|
- $param = $data;
|
|
|
- $param['service'] = $service;
|
|
|
- $param['sign_type'] = $sign_type;
|
|
|
- $param['accesser_id'] = $accesser_id;
|
|
|
- $param['request_date'] = date('YmdHis');
|
|
|
- $param['request_seq'] = Dever::order();
|
|
|
- $sign_data = json_encode($param, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
|
|
|
- $send['json_data'] = $this->encrypt($sign_data);
|
|
|
- $send['sign_data'] = hash('sha256', $sign_data);
|
|
|
- $send['accesser_id'] = $accesser_id;
|
|
|
- $url = 'https://selfapply-test.chinaums.com/self-contract-nmrs/interface/autoReg/';
|
|
|
+ private function get($service, $data)
|
|
|
+ {
|
|
|
+ $accesser_id = self::$accesser_id;
|
|
|
+ $sign_type = self::$sign_type;
|
|
|
+ $param = $data;
|
|
|
+ $param['service'] = $service;
|
|
|
+ $param['sign_type'] = $sign_type;
|
|
|
+ $param['accesser_id'] = $accesser_id;
|
|
|
+ $param['request_date'] = date('YmdHis');
|
|
|
+ $param['request_seq'] = Dever::order();
|
|
|
+ $sign_data = json_encode($param, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
|
|
|
+ $send['json_data'] = $this->encrypt($sign_data);
|
|
|
+ $send['sign_data'] = hash('sha256', $sign_data);
|
|
|
+ $send['accesser_id'] = $accesser_id;
|
|
|
+ $url = $this->url;
|
|
|
|
|
|
- $result = array();
|
|
|
- $result['request_seq'] = $param['request_seq'];
|
|
|
- if ($service == 'agreement_sign') {
|
|
|
- $url . '?' . http_build_query($send);
|
|
|
- $response = Dever::curl($url, $send, 'get');
|
|
|
- } else {
|
|
|
- $response = Dever::curl($url, $send, 'post');
|
|
|
- }
|
|
|
- $result['code'] = 2;
|
|
|
+ $result = array();
|
|
|
+ $result['request_seq'] = $param['request_seq'];
|
|
|
+ $result['code'] = 2;
|
|
|
$result['msg'] = '请求失败';
|
|
|
+ $result['data'] = array();
|
|
|
+
|
|
|
+ if ($service == 'agreement_sign') {
|
|
|
+ $result['code'] = 1;
|
|
|
+ $result['msg'] = '请求成功';
|
|
|
+ $result['data']['url'] = $url . '?' . http_build_query($send);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+ if ($this->test != 1) {
|
|
|
+ $response = Dever::curl($url, $send, 'post');
|
|
|
+ } else {
|
|
|
+ # 数据模拟
|
|
|
+ $response = $this->data($service, $param);
|
|
|
+ }
|
|
|
$result['data'] = $response;
|
|
|
- if ($response) {
|
|
|
- $response = Dever::json_decode($response);
|
|
|
- if (isset($response['res_code']) && $response['res_code'] == '0000') {
|
|
|
- $result['code'] = 1;
|
|
|
- $result['msg'] = '请求成功';
|
|
|
- $result['data'] = $response;
|
|
|
- } elseif (isset($result['res_msg']) && $result['res_msg']) {
|
|
|
- $result['code'] = 2;
|
|
|
- $result['msg'] = $result['res_msg'];
|
|
|
- $result['data'] = $response;
|
|
|
- } elseif (isset($result['apply_status_msg']) && $result['apply_status_msg']) {
|
|
|
- $result['code'] = 2;
|
|
|
- $result['msg'] = $result['apply_status_msg'];
|
|
|
- $result['data'] = $response;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
+ if ($response) {
|
|
|
+ $response = Dever::json_decode($response);
|
|
|
+ if (isset($response['res_code']) && $response['res_code'] == '0000') {
|
|
|
+ $result['code'] = 1;
|
|
|
+ $result['msg'] = '请求成功';
|
|
|
+ $result['data'] = $response;
|
|
|
+ } elseif (isset($result['res_msg']) && $result['res_msg']) {
|
|
|
+ $result['code'] = 2;
|
|
|
+ $result['msg'] = $result['res_msg'];
|
|
|
+ $result['data'] = $response;
|
|
|
+ } elseif (isset($result['apply_status_msg']) && $result['apply_status_msg']) {
|
|
|
+ $result['code'] = 2;
|
|
|
+ $result['msg'] = $result['apply_status_msg'];
|
|
|
+ $result['data'] = $response;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return $result;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- private function pic($pic)
|
|
|
- {
|
|
|
- $service = 'pic_upload';
|
|
|
- if ($pic) {
|
|
|
- $pic_base64 = file_get_contents($pic);
|
|
|
+ private function data($service, $data)
|
|
|
+ {
|
|
|
+ $result = array();
|
|
|
+ $result['res_code'] = '0000';
|
|
|
+ $result['res_msg'] = 'ok';
|
|
|
+ $result['request_seq'] = $data['request_seq'];
|
|
|
|
|
|
- if ($pic_base64) {
|
|
|
- $temp = explode('?', $pic);
|
|
|
- if ($temp) {
|
|
|
- $one = pathinfo($temp[0]);
|
|
|
- } else {
|
|
|
- $one = pathinfo($pic);
|
|
|
- }
|
|
|
- $data['pic_base64'] = "data:image/".$one['extension'].";base64,".base64_encode($pic_base64);
|
|
|
- $result = $this->get($service,$data);
|
|
|
- return $result;
|
|
|
- }
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if ($service == 'pic_upload') {
|
|
|
+ $result['file_path'] = $data['request_seq'];
|
|
|
+ $result['file_type'] = 'jpg';
|
|
|
+ $result['file_size'] = strlen($result['file_path']);
|
|
|
+ } elseif ($service == 'complex_upload') {
|
|
|
+ $result['ums_reg_id'] = $data['request_seq'];
|
|
|
+ } elseif ($service == 'agreement_sign') {
|
|
|
+ $result['url'] = 'https://www.baidu.com/';
|
|
|
+ } elseif ($service == 'apply_qry') {
|
|
|
+ $result['apply_status'] = '03';
|
|
|
+ $result['apply_status_msg'] = '入网成功(最终成功状态)';
|
|
|
+ } elseif ($service == 'branch_bank_list') {
|
|
|
+ $result['branchBankList'][] = array('code' => '308100005607', 'bankBranchName' => '招商银行股份有限公司北京天通苑支行');
|
|
|
+ }
|
|
|
|
|
|
- # 查询支行
|
|
|
- private function bank_list($areaCode, $key)
|
|
|
- {
|
|
|
- $service = 'branch_bank_list';
|
|
|
- $data['areaCode'] = $areaCode;
|
|
|
- $data['key'] = $key;
|
|
|
- $result = $this->get($service,$data);
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ return Dever::json_encode($result);
|
|
|
+ }
|
|
|
|
|
|
- # 记录日志
|
|
|
- private function log($step, $sign, $msg, $request = array(), $response = array(), $request_seq = '')
|
|
|
- {
|
|
|
- if (!$sign) {
|
|
|
- return $msg;
|
|
|
- }
|
|
|
- $data['step'] = $step;
|
|
|
- $data['shop_id'] = $sign['shop_id'];
|
|
|
- $data['sign_id'] = $sign['id'];
|
|
|
- $data['desc'] = $msg;
|
|
|
- if ($request_seq) {
|
|
|
- $data['request_seq'] = $request_seq;
|
|
|
- }
|
|
|
- if ($request) {
|
|
|
- $data['request'] = Dever::json_encode($request);
|
|
|
- }
|
|
|
- if ($response) {
|
|
|
- if (is_array($response)) {
|
|
|
- $response = Dever::json_encode($response);
|
|
|
- }
|
|
|
- $data['response'] = $response;
|
|
|
- }
|
|
|
-
|
|
|
- Dever::db('shop/sign_log')->insert($data);
|
|
|
- return $msg;
|
|
|
- }
|
|
|
+ private function pic($pic)
|
|
|
+ {
|
|
|
+ $service = 'pic_upload';
|
|
|
+ if ($pic) {
|
|
|
+ $pic_base64 = $this->test != 1 ? file_get_contents($pic) : 'content';
|
|
|
+
|
|
|
+ if ($pic_base64) {
|
|
|
+ $temp = explode('?', $pic);
|
|
|
+ if ($temp) {
|
|
|
+ $one = pathinfo($temp[0]);
|
|
|
+ } else {
|
|
|
+ $one = pathinfo($pic);
|
|
|
+ }
|
|
|
+ $data['pic_base64'] = "data:image/".$one['extension'].";base64,".base64_encode($pic_base64);
|
|
|
+ $result = $this->get($service, $data);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ # 查询支行
|
|
|
+ private function bank_list($areaCode, $key)
|
|
|
+ {
|
|
|
+ $service = 'branch_bank_list';
|
|
|
+ $data['areaCode'] = $areaCode;
|
|
|
+ $data['key'] = $key;
|
|
|
+ $result = $this->get($service,$data);
|
|
|
+ return $result['data'];
|
|
|
+ }
|
|
|
+
|
|
|
+ # 记录日志
|
|
|
+ private function log($step, $sign, $msg, $request = array(), $response = array(), $request_seq = '')
|
|
|
+ {
|
|
|
+ if (!$sign) {
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
+ $data['step'] = $step;
|
|
|
+ $data['shop_id'] = $sign['shop_id'];
|
|
|
+ $data['sign_id'] = $sign['id'];
|
|
|
+ $data['desc'] = $msg;
|
|
|
+ if ($request_seq) {
|
|
|
+ $data['request_seq'] = $request_seq;
|
|
|
+ }
|
|
|
+ if ($request) {
|
|
|
+ $data['request'] = Dever::json_encode($request);
|
|
|
+ }
|
|
|
+ if ($response) {
|
|
|
+ if (is_array($response)) {
|
|
|
+ $response = Dever::json_encode($response);
|
|
|
+ }
|
|
|
+ $data['response'] = $response;
|
|
|
+ }
|
|
|
+
|
|
|
+ Dever::db('shop/sign_log')->insert($data);
|
|
|
+ return $msg;
|
|
|
+ }
|
|
|
}
|