rabin 3 years ago
parent
commit
fd323f3cf6
2 changed files with 372 additions and 320 deletions
  1. 4 4
      app/shop/database/sign.php
  2. 368 316
      app/shop/lib/Sign.php

+ 4 - 4
app/shop/database/sign.php

@@ -13,9 +13,9 @@ $mer_type = array
 $id = Dever::input('search_option_shop_id');
 $shop = array();
 $desc = '';
-if ($id) {
+if ($id && $id > 0) {
 	$shop = Dever::db('shop/info')->one($id);
-    $desc = Dever::timeline('签约状态', array('test', 'ss'));
+    $desc = Dever::load('shop/lib/sign')->getLog($shop);
 }
 
 $step = array
@@ -63,7 +63,7 @@ return array
             'default'   => '',
             'desc'      => '分账商户号',
             'match'     => 'option',
-            'update'    => 'text',
+            //'update'    => 'text',
         ),
 
         'ums_reg_id'      => array
@@ -93,8 +93,8 @@ return array
             'default'   => '-1',
             'desc'      => '当前步骤',
             'match'     => 'option',
-            'update'    => 'text',
             'option'    => $step,
+            // 'update'    => 'text',
         ),
 
         'shop_id'       => array

+ 368 - 316
app/shop/lib/Sign.php

@@ -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 . '&nbsp;&nbsp;' . $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;
+	}
 }