field('transactionNo,verify_url')->where(['apply_id'=>$applyid])->find(); if($baseinfo){ $task=Db::name('capitaltask')->where(['apply_id'=>$applyid,'status'=>0,'step'=>3])->find(); if($task){ if(($authtype==1&&$status==2)||($authtype==2&&($status==4||$status==6))){ $info=json_decode($task['info'],true); $params=json_decode($task['params'],true); $step=$task['step']; $param=new FddDeposit(); $param->SetCustomerID($task['customer_id']); $param->SetVerifiedSerialno($task['dep_id']); $ret=FddApi::applyCert($param); if(is_string($ret)){ try { $ret=json_decode($ret,true); } catch (\Exception $e) { } } $id=$task['id']; $update=['status'=>2]; //查询认证结果,在申请实名证书 if(isset($ret['code'])&&in_array($ret['code'],[1,1000])){ $params['numcert']=1; $task['params']=json_encode($params); $task['step']=$step+1; unset($task['id']); db('capitaltask')->insert($task); $update=['status'=>1]; }else{ $update['error']=json_encode($ret); } db('capitaltask')->where(['status'=>0,'id'=>$id])->update($update); }else{ $update=['status'=>2]; $update['error']=json_encode(['status'=>$status,'apply_id'=>$applyid,'authtype'=>$authtype]); db('capitaltask')->where(['id'=>$task['id']])->update($update); } } } echo ""; } public function notifyurl(Request $request){ $applyid=input("apply_id"); $appId=input("appId"); $type=input("type"); $serialNo=input("serialNo"); $customerId=input("customerId"); $statusDesc=input("statusDesc"); $certStatus=input("certStatus"); $status=input("status",'','intval'); $authtype=input("authenticationType",'','intval'); Log::write("==============notifyurl=====================",'error'); Log::write(json_encode($_POST),'error'); Log::write(json_encode($_GET),'error'); $baseinfo=db('capitalbaseinfo')->field('transactionNo,verify_url')->where(['apply_id'=>$applyid])->find(); if($baseinfo){ $task=Db::name('capitaltask')->where(['apply_id'=>$applyid,'status'=>0,'step'=>3])->find(); if($task){ if(($authtype==1&&$status==2)||($authtype==2&&($status==4||$status==6))){ $info=json_decode($task['info'],true); $params=json_decode($task['params'],true); $step=$task['step']; if($certStatus!=1){ $param=new FddDeposit(); $param->SetCustomerID($task['customer_id']); $param->SetVerifiedSerialno($task['dep_id']); $ret=FddApi::applyCert($param); Log::write($ret,'error'); if(is_string($ret)){ try { $ret=json_decode($ret,true); } catch (\Exception $e) { } } } $id=$task['id']; $update=['status'=>2]; //查询认证结果,在申请实名证书 if((isset($ret['code'])&&in_array($ret['code'],[1,1000]))||$certStatus==1){ $params['numcert']=1; $task['params']=json_encode($params); $task['step']=$step+1; Log::write($task,'error'); unset($task['id']); db('capitaltask')->insert($task); $update=['status'=>1]; }else{ $update['error']=json_encode($ret); } Log::write($update,'error'); db('capitaltask')->where(['status'=>0,'id'=>$id])->update($update); }else{ $update=['status'=>2]; $update['error']=json_encode(['status'=>$status,'statusDesc'=>$statusDesc,'apply_id'=>$applyid,'authtype'=>$authtype]); Log::write($update,'error'); db('capitaltask')->where(['id'=>$task['id']])->update($update); } } } } //签署结果异步通知规范(notify_url) public function notify(Request $request){ Log::record(json_encode($_GET)." get","error"); Log::record(json_encode($_POST)." post","error"); $signId=$request->post('transaction_id'); $result_code=$request->post('result_code'); $result_desc=$request->post('result_desc'); $update=[]; if($signId){ $task=Db::name('capitaltask')->where(['sign_id'=>$signId,'status'=>0,'step'=>8])->find(); $status=''; if($task){ $params=$task['params']; $step=$task['step']; try { $params=json_decode($params,true); } catch (\Exception $e) { } $viewpdf=''; $downpdf=''; if(isset($params['viewpdf_url']))$viewpdf=$params['viewpdf_url']; if(isset($params['download_url']))$downpdf=$params['download_url']; if($result_code==3000)$status=1; if($result_desc)$update['error']=$result_desc; if($status==1){ $task['params']=json_encode($params); $task['step']=$step+1; unset($task['id']); db('capitaltask')->insert($task); $update['status']=$status; db('capitaltask')->where(['sign_id'=>$signId,'status'=>0,'step'=>8])->update($update); } db('capitalbaseinfo')->where(['apply_id'=>$task['apply_id']])->update(['view_pdf'=>$viewpdf,'down_pdf'=>$downpdf]); $apply_id=$task['apply_id']; $baseinfo=db('capitalbaseinfo')->where(['apply_id'=>$apply_id])->find(); if($baseinfo['apply_type']==1){ $apply=db('capitalapply')->where(['apply_id'=>$apply_id])->find(); $notice_title='文化资产资产托管项目【'.$baseinfo['capital_name'].'】:已签署合同'; $sl_data=[ 'notice_title'=>$notice_title, 'notice'=>'', 'user_id'=>$apply['user_id'], 'apply_id'=>$apply_id, 'create_id'=>$apply['update_user_id'], 'create_type'=>0, 'create_time'=>time() ]; Db::name('capitalnotice')->insert($sl_data); } } } } public function comsignature(){ $timestamp=date("YmdHis"); $appId=FddConfig::AppId; $appSecret=FddConfig::AppSecret; $content=FddConfig::Company; $customerid=FddConfig::CustomerId; $params=array(); $params['app_id']=$appId; $params['timestamp']=$timestamp; $params['v']='2.0'; $params['customer_id']=$customerid; $api=new FddApi(); $img="/web/html/company.png"; $params['signature_img_base64']='';//$api->base64EncodeImage($img); $msg_digest =base64_encode(strtoupper(sha1($appId.strtoupper(md5($timestamp)).strtoupper(sha1($appSecret.$content.$customerid))))); $params['msg_digest']=$msg_digest; //dump($params); $path='/add_signature.api'; $apiUrl=FddConfig::FddServer; echo $apiUrl.$path; $client=new HttpClient($apiUrl); $res=$client->quickPost($apiUrl.$path, $params); dump($res); } private function upload(){ $tpl="https://www.szcaee.cn/gujian.pdf"; $param=new FddTemplate(); $param->SetDoc_url($tpl); $tplid=date("Ymd").'2400000001'; $param->SetTemplate_id($tplid); $ret=FddApi::UploadTemplate($param); dump($param->GetValues()); dump($ret); } public function viewpdf(){ $param=new FddContractManageMent(); $param->SetContract_id('con_5ede02004483a'); $ret=FddApi::ViewContract($param); dump($ret); } /** * 执行任务 * @param Request $request */ public function task(Request $request){ Config::set('default_return_type','json'); Config::set('default_ajax_return','json'); $task=Db::name('capitaltask')->where(['status'=>0,'step'=>['neq',8]])->order('id desc')->select(); $ret=[]; foreach ($task as $row){ $info=json_decode($row['info'],true); $params=json_decode($row['params'],true); $flag=$row['flag']; $data=[]; $step=$row['step']; if($step==8||$step==9)continue; switch ($step){ case 1: $where=[]; if($info['account_type']==2){//公司存证 $where['legal_person']=$info['name']; $where['legal_cardno']=$info['cardno']; }else{ $where['leader_name']=$info['name']; $where['leader_cardno']=$info['cardno']; } $where['customer_id']=['neq','']; $baseinfo=db('capitalbaseinfo')->field('customer_id')->where($where)->find(); if($baseinfo){ $ret=['code'=>1,'data'=>$baseinfo['customer_id']]; }else{ $data['account_type']=$info['account_type']; $ret=$this->syncPerson($data); } break; case 2: if($flag==1){ $where=[]; if($info['account_type']==2){//公司存证 $where['legal_person']=$info['name']; $where['legal_cardno']=$info['cardno']; }else{ $where['leader_name']=$info['name']; $where['leader_cardno']=$info['cardno']; } $where['customer_id']=['neq','']; $baseinfo=db('capitalbaseinfo')->field('transactionNo,verify_url')->where($where)->find(); if($baseinfo&&!empty($baseinfo['verify_url'])){ $ret=['code'=>1,'data'=>['transactionNo'=>$baseinfo['transactionNo'],'url'=>$baseinfo['verify_url']]]; }else{ if($info['account_type']==2){//公司存证 $param=new FddVerify(); $param->SetCertFlag("0"); $cinfo=['company_name'=>$info['company_name'],'credit_no'=>$info['business_code'],'credit_image_path'=>$info['cd_file']]; $param->SetCompanyInfo(json_encode($cinfo)); $param->SetCustomerID($row['customer_id']); $param->SetIdPhotoOptional("0"); $param->SetLegalAllowCompanyVerifyWay("1"); //$param->SetAgentAllowCompanyVerifyWay("1"); //$param->SetCompanyPrincipalType("2"); if($baseinfo&&$baseinfo['transactionNo']){ $param->SetVerifiedSerialno($baseinfo['transactionNo']); }else{ $pinfo=['legal_name'=>$info['name'],'legal_id'=>$info['cardno'],'legal_mobile'=>$info['mobile'],'legal_id_front_path'=>$info['ip_file']]; $param->SetLegalInfo(json_encode($pinfo)); //$pinfo=['agent_name'=>$info['name'],'agent_id'=>$info['cardno'],'agent_mobile'=>$info['mobile'],'agent_id_front_path'=>$info['ip_file']]; //$param->SetAgentInfo(json_encode($pinfo)); } $param->SetLegalName($info['name']); $param->SetMobile($info['mobile']); $param->SetNotifyUrl(url('api/fdd_tool/notifyurl',['type'=>'company','apply_id'=>$row['apply_id']],true,true)); $param->SetOption("add"); $param->SetOrganizationType("0"); $param->SetPageModify("1"); $param->SetVerifiedWay("3"); $param->SetMVerifiedWay("0"); $param->SetReturnUrl(url('api/fdd_tool/returnurl',['type'=>'company','apply_id'=>$row['apply_id']],true,true)); $param->SetVerifiedWay("3"); $ret=FddApi::companyVerify($param); }else{//个人存证 $return_url=url('api/fdd_tool/returnurl',['type'=>'personal','apply_id'=>$row['apply_id']],true,true); $notify_url=url('api/fdd_tool/notifyurl',['type'=>'personal','apply_id'=>$row['apply_id']],true,true); $param=new FddVerify(); $param->SetCustomerID($row['customer_id']); $param->SetVerifiedWay("0"); $param->SetPageModify("1"); $param->SetNotifyUrl($notify_url); $param->SetReturnUrl($return_url); $param->SetCustomerName($info['name']); $param->SetCustomerIdentType("0"); $param->SetCustomerIdentNo($info['cardno']); $param->SetMobile($info['mobile']); $param->SetIdentFrontPath($info['ip_file']); //if(isset($data['ident_back_path']))$param->SetIdentBackPath($data['ident_back_path']); $param->SetIdPhotoOptional("0"); $param->SetResultType("2"); $param->SetCertFlag("0"); $param->SetOption("add"); $param->SetCertType("0"); $ret=FddApi::personVerify($param); } } }else{ if($info['account_type']==2){//公司存证 $data['customer_id']=$row['customer_id']; $data['preservation_name']=$this->pre_name; $data['preservation_data_provider']=$this->pre_provider; $data['preservation_desc']=$this->pre_desc; $data['company_name']=$info['company_name']; $data['credit_code']=$info['business_code']; $data['credit_code_file']=$info['cc_file']; $data['verified_time']=$info['verified_time']; $data['power_attorney_file']=$info['pa_file']; $data['verified_mode']="1"; $data['document_type']="1"; $data['cp_type']="1"; $data['verified_type']="2"; $data['name']=$info['name']; $data['idcard']=$info['cardno']; $data['mobile']=$info['mobile']; $data['transactionId']=$row['tran_id']; $data['mobileVerificationCode']=''; $data['verifiedProvider']=$this->pre_provider; //$data['result']='验证成功'; $ret=$this->companyDeposit($data); }else{//个人存证 $data['customer_id']=$row['customer_id']; $data['preservation_name']=$this->pre_name; $data['preservation_data_provider']=$this->pre_provider; $data['name']=$info['name']; $data['idcard']=$info['cardno']; $data['idcard_positive_file']=$info['ip_file']; $data['idcard_negative_file']=$info['in_file']; $data['mobile']=$info['mobile']; $data['verified_type']="2"; $data['transactionId']=$row['tran_id']; $data['mobileVerificationCode']=''; $data['vrifiedProvider']=$this->pre_provider; $data['result']='验证成功'; $data['apply_num']=''; $ret=$this->personDeposit($data); } } break; case 3://申请实 名证书 if($flag==1){ if(isset($params['numcert'])&&$params['numcert']){ $ret=['code'=>0]; }else{ if($info['account_type']==2){//公司存证 $ret=FddApi::findCert('find_companyCertInfo.api',$row['dep_id']); }else{ $ret=FddApi::findCert('find_personCertInfo.api',$row['dep_id']); } if(is_string($ret)){ try { $ret=json_decode($ret,true); } catch (\Exception $e) {} } //查询认证结果,在申请实名证书 if(isset($ret['code'])&&in_array($ret['code'],[1,1000])){ $param=new FddDeposit(); $param->SetCustomerID($row['customer_id']); $param->SetVerifiedSerialno($row['dep_id']); $ret=FddApi::applyCert($param); }else{ $ret=['code'=>0]; } } }else{ $data['customer_id']=$row['customer_id']; $data['evidence_no']=$row['dep_id']; $ret=$this->applyClientNumcert($data); } break; case 4://模板填充 if($row['apply_type']==1){ $fee=db('capitalfee')->where(['apply_id'=>$row['apply_id'],'fee_flag'=>1])->find(); $day2=$day1=$year1=$year2=$month1=$month2=''; if($fee){ $baseinfo=db('capitalbaseinfo')->where(['apply_id'=>$row['apply_id']])->find(); $tdate=$baseinfo['tg_date']; $tyear=intval($baseinfo['tg_year']); $year1=date("Y",$tdate); $month1=date("m",$tdate); $day1=date("d",$tdate); $year2=$year1+$tyear; $month2=$month1; $day2=date("d",strtotime("-1 days",$tdate)); $name=''; if($info['account_type']==2){ $name=$info['name']; } $tprice=$baseinfo['tg_price']; $tprice=floatval($tprice); $money=$tprice*$tyear; $tgname=$baseinfo['capital_name']; $data['map']=['legname'=>$name,'orgname'=>$info['orgname'],'addr'=>$info['addr'],'tgname'=>$tgname,'tgname2'=>$tgname,'unitprice'=>$tprice,'unitprice2'=>$tprice,'money'=>$money,'totalyear'=>$tyear,'year1'=>$year1,'month1'=>$month1,'day1'=>$day1,'year2'=>$year2,'month2'=>$month2,'day2'=>$day2]; $data['doc_title']=$this->doc_title2; $data['template_id']=$row['tpl_id']; $data['contract_id']=$row['con_id']; $data['font_size']=12; $data['font_type']=1; $ret=$this->genContract($data); } } if($row['apply_type']==3){ /** * A类:整体性古建构件资产托管费8000元/套/年 B类:现存古村、古镇、古街区古建资产托管费8000元/套/年 C类:散落古建构件资产托管费2000元/件/年 D类:已建和在建仿古文化园区和村镇资产托管费8000元/套/年 E类:整体性古建构件资产托管费8000元/套/年 */ $unitprice='构件类标的资产托管费8000元/套/年'; $uprice=8000; $ctype=$info['capital_type']; $cchild=$info['capital_child']; if(!in_array($ctype,[5,15,25,45,55])){ $ctype=cchild; } if($ctype==15)$unitprice='在建类古建标的资产托管费8000元/套/年'; if($ctype==35){ $uprice=2000; $unitprice='产权类古建标的资产托管费2000元/件/年'; } if($ctype==45)$unitprice='仿古类古建标的资产托管费8000元/套/年'; if($ctype==55)$unitprice='整体性古建构件资产托管费8000元/套/年'; $details=db('capitaldetail')->where(['apply_id'=>$row['apply_id']])->select(); $num=intval($info['num']); $data['doc_title']=$this->doc_title; $data['template_id']=$row['tpl_id']; $data['contract_id']=$row['con_id']; $data['font_size']=12; $data['font_type']=1; $fee=db('capitalfee')->where(['apply_id'=>$row['apply_id'],'fee_flag'=>1])->find(); $baseinfo=db('capitalbaseinfo')->where(['apply_id'=>$row['apply_id']])->find(); $applytype=$baseinfo['apply_type']; $money=0; if($baseinfo['capital_price']!=''&&$baseinfo['capital_unit']){ $unitprice=$baseinfo['capital_unit']; if($baseinfo['capital_price']==0){ $money='——'; }else{ $uprice=intval($baseinfo['capital_price']); $money=$uprice*$num; } } if(!isset($info['orgname'])||!isset($info['addr'])){ $info['orgname']=''; $info['addr']=''; if($baseinfo){ $info['orgname']=$baseinfo['hoster_name']; $info['addr']=$baseinfo['natural_addr']; } } $day2=$day1=$year1=$year2=$month1=$month2=''; if($fee){ $update_time=$fee['update_time']; $year1=date("Y",$update_time); $month1=date("m",$update_time); $day1=date("d",$update_time); $year2=$year1+1; $month2=$month1; $day2=date("d",strtotime("-1 days",$update_time)); $name=''; if($info['account_type']==2){ $name=$info['name']; } $commission=$baseinfo['capital_commission']; $data['map']=['legname'=>$name,'legname2'=>$name,'orgname'=>$info['orgname'],'orgname2'=>$info['orgname'],'addr'=>$info['addr'],'comleg'=>"吴程",'num'=>$num,'unitprice'=>$unitprice,'commission'=>$commission,'money'=>$money,'year1'=>$year1,'month1'=>$month1,'day1'=>$day1,'year2'=>$year2,'month2'=>$month2,'day2'=>$day2]; $childs=config("building.childs"); $elems=['1'=>'资产所有权','资产使用权','资产收益权','资产租赁权']; foreach ($details as $k=>$jow){ $k+=1; $data['map']['title'.$k]=$jow['capital_name']; $captype=$jow['capital_type']; $type=isset($childs[$captype])?$childs[$captype]:''; if((empty($type)||is_array($type))&&isset($jow['capital_child'])){ $child=$jow['capital_child']; $type=isset($type[$child])?$type[$child]:''; } $type=str_replace(['A类 构件类标的','B类 在建类古建标的','D类 产权类古建标的','C类 仿古类古建标的',' D-1 所有权','D-2 经营权','A-2 建成复建类古建','A-1 原态构件'],'', $type); $type=trim($type); $data['map']['type'.$k]=$type; $size=$jow['capital_area']; $num=$jow['num']>0?$jow['num']:''; if(empty($num))$num=$jow['capital_num']; if(empty($num))$num='—'; if($jow['capital_space']){ $size=$jow['capital_space']?$jow['capital_space']:''; } if($size&&strpos('米',$size)===false){ $size.='平方米'; } if($jow['capital_child']=='A12'){ $size=$jow['capital_size']?$jow['capital_size']:''; } if(empty($size))$size='—'; $data['map']['area'.$k]=$size; $data['map']['num'.$k]=$num; $ele=$jow['element']; if(empty($ele)){ $capele=$jow['capital_elem']; if($capele)$capele=explode(',',$capele); if(is_array($capele)){ $elestr=''; foreach ($capele as $erow){ if(isset($elems[$erow])){ $elestr.=$elems[$erow].';'; } } $ele=rtrim($elestr,';'); } } $data['map']['element'.$k]=$ele; $typeid=$jow['capital_type']; if(isset($jow['capital_child'])){ $typeid=$jow['capital_child']; $typeid=strtolower($typeid); } if($typeid)$data['map']['child'.$typeid]='√'; } $ret=$this->genContract($data); } } break; case 5://公司自动签 $data=new FddSignContract(); $data->SetTransaction_id($row['auto_id']); $data->SetContract_id($row['con_id']); $customerId=FddConfig::CustomerId; $data->SetCustomer_id($customerId); $data->SetClient_role(1); if($row['apply_type']==3){ $data->SetDoc_title($this->doc_title); } if($row['apply_type']==1){ $data->SetDoc_title($this->doc_title2); } $data->SetPosition_type(0); $data->SetSign_keyword('授权代表(签字)'); $data->SetKeyword_strategy(1); $ret=FddApi::ExtsignAuto($data); break; case 6://上传签章 $timestamp=date("YmdHis"); $appId=FddConfig::AppId; $appSecret=FddConfig::AppSecret; if($info['account_type']==2){//公司存证 $content=$info['company_name']; }else{ $content=$info['name']; } $customerid=$row['customer_id']; $param=array(); $param['app_id']=$appId; $param['timestamp']=$timestamp; $param['v']='2.0'; $param['customer_id']=$customerid; $param['content']=$content; $msg_digest =base64_encode(strtoupper(sha1($appId.strtoupper(md5($timestamp)).strtoupper(sha1($appSecret.$content.$customerid))))); $param['msg_digest']=$msg_digest; $path='/custom_signature.api'; $apiUrl=FddConfig::FddServer; $client=new HttpClient($apiUrl); $ret=$client->quickPost($apiUrl.$path, $param); break; case 7://签章地址 $data['transaction_id']=$row['sign_id']; $data['contract_id']=$row['con_id']; $data['customer_id']=$row['customer_id']; if($row['apply_type']==3){ $data['doc_title']=$this->doc_title; } if($row['apply_type']==1){ $data['doc_title']=$this->doc_title2; } $data['sign_keyword']='授权代表(签字)'; $data['keyword_strategy']=2; $data['return_url']=SITE_PATH.url('home/center/mytg'); $data['notify_url']=SITE_PATH.url('api/fdd_tool/notify'); $data['customer_mobile']=$info['mobile']; $data['customer_name']=$info['name']; $data['customer_ident_no']=$info['cardno']; $ret=FddTool::extsign($data); break; case 9://归档 //$data['contract_id']=$info['contractId']; // $ret=['code'=>'3000'];//FddTool::contractFilling($data); break; } $status=2; $past=$ret; if(is_string($ret)){ try { $ret=json_decode($ret,true); if(!is_array($ret))$ret=$past; } catch (\Exception $e) { $ret=$past; } } if(isset($ret['code'])&&in_array($ret['code'],[1,1000])){ $status=1; } $id=$row['id']; $update=['status'=>$status]; if($status==1){ switch ($step){ case 1: $params['customer_id']=$ret['data']; $update['customer_id']=$row['customer_id']=$ret['data']; if($row['customer_id']){ db('capitalbaseinfo')->where(['apply_id'=>$row['apply_id']])->update(['customer_id'=>$row['customer_id']]); } break; case 2: if($flag==1){ $row['dep_id']=$ret['data']['transactionNo']; $row['dep_url']=$ret['data']['url']; if($row['dep_url']){ db('capitalbaseinfo')->where(['apply_id'=>$row['apply_id']])->update(['verify_url'=>$row['dep_url'],'transactionNo'=>$row['dep_id']]); } }else{ $row['dep_id']=$ret['data']; } break; case 3: $params['numcert']=1; break; case 4: $params['download_url']=$ret['download_url']; $params['viewpdf_url']=$ret['viewpdf_url']; break; case 5: $params['companysign']=1; break; case 6: $params['sign']=1; break; case 7: $params['signurl']=$ret['data']; if($row['apply_type']==1){ $baseinfo=db('capitalbaseinfo')->where(['apply_id'=>$row['apply_id']])->find(); send_sms($info['mobile'],'您的文化资产托管项目【'.$baseinfo['capital_name'].'】:审核已通过(待签署合同)'); } break; case 9: $params['filing']=1; break; } if($step<=9){ $row['params']=json_encode($params); $row['step']=$step+1; unset($row['id']); db('capitaltask')->insert($row); } }else{ if($step==3&&$row['status']!=2){ $update=['status'=>0]; }else{ $update['error']=json_encode($ret); } } db('capitaltask')->where(['status'=>0,'id'=>$id])->update($update); } if(!is_array($ret)) echo $ret; else dump($ret); } /** * 个人CA认证 * @param array $params * @return boolean|mixed */ protected function syncPerson($data=array()){ $timpstamp=date('YmdHis'); $open_id="TRAN_".$timpstamp; $account_type=$data['account_type']; $account=new FddAccount(); $account->SetOpenID($open_id); $account->SetAccountType($account_type); $ret=FddApi::registerAccount($account); return $ret; } /** * 实名信息哈希存证 * @param array $data * @return boolean|unknown */ public static function hashDeposit($data=array()){ $timpstamp=date('YmdHis'); $params=array(); $params['customer_id']=$data['customer_id'];//客户编号 $params['preservation_name']=$data['preservation_name'];//存证名称 $params['preservation_desc']='';//存证描述 $params['file_name']=$data['file_name'];//文件名 len<100 $params['noper_time']=$data['noper_time'];//文件最后修改时间(unix 时间,单位s):file.lastModified()/1000 $params['file_size']=$data['file_size'];//字符类型;值单位(byte);最大值:“9223372036854775807” >> 2^63- 1 最小值:0sha256 $params['original_sha25']=hash("sha256",$data['original_sha25']);//文件 hash 值:sha256 算法 $params['transaction_id']=$data['transaction_id'];//交易号 $params['cert_flag']=1;//自动 申请 实名证书 $param=new FddDeposit(); $param->SetCustomerID($data['customer_id']);//客户编号 $param->SetPreservationName($data['preservation_name']);//存证名称 $param->SetFileName($data['file_name']);//文件名 len<100 $param->SetFileSize($data['file_size']);//字符类型;值单位(byte);最大值:“9223372036854775807” >> 2^63- 1 最小值:0sha256 $param->SetNoperTime($data['noper_time']);//文件最后修改时间(unix 时间,单位s):file.lastModified()/1000 $param->SetOriginalSha256(hash("sha256",$data['original_sha25']));//文件 hash 值:sha256 算法 $param->SetTransactionId($data['transaction_id']); $ret=FddApi::HashDeposit($param); return $ret; } /** * 个人实名信息存证 * @param array $data * @return boolean|unknown */ public static function personVerify($data=array()){ $param=new FddVerify(); $param->SetCustomerID($data['customer_id']); $param->SetVerifiedWay($data['verified_way']); $param->SetPageModify($data['page_modify']); $param->SetNotifyUrl($data['notify_url']); $param->SetReturnUrl($data['return_url']); $param->SetCustomerName($data['customer_name']); $param->SetCustomerIdentType($data['customer_ident_type']); $param->SetCustomerIdentNo($data['customer_ident_no']); $param->SetMobile($data['mobile']); $param->SetIdentFrontPath($data['ident_front_path']); if(isset($data['ident_back_path']))$param->SetIdentBackPath($data['ident_back_path']); $param->SetIdPhotoOptional($data['id_photo_optional']); $param->SetResultType($data['result_type']); $param->SetCertFlag($data['cert_flag']); $param->SetOption($data['option']); $param->SetCertType($data['cert_type']); $ret=FddApi::personDeposit($param); return $ret; } /** * 企业信息实名存证 * @param array $data * @return boolean|unknown */ public static function companyVerify($data=array()){ $param=new FddDeposit(); $param->SetCustomerID($data['customer_id']); $param->SetPreservationName($data['preservation_name']); if(isset($data['preservation_desc']))$param->SetPreservationDesc($data['preservation_desc']); $param->SetPreservationDataProvider($data['preservation_data_provider']); $param->SetCompanyName($data['company_name']); $param->SetDocumentType($data['document_type']); if($data['document_type']==1){ $param->SetCreditCode($data['credit_code']); $ccfile=$data['credit_code_file']; $ccfile=new \CURLFile($ccfile); $param->SetCreditCodeFile($ccfile); } $param->SetVerifiedTime($data['verified_time']); $param->SetVerifiedMode($data['verified_mode']); $pafile=$data['power_attorney_file']; $pafile=new \CURLFile($pafile); $param->SetPowerAttorneyFile($pafile); $param->SetCompanyPrincipalType($data['cp_type']); $cpv=new FddDeposit(); $cpv->SetCustomerID($data['customer_id']); $cpv->SetPreservationName($data['preservation_name']); $pdesc=isset($data['preservation_desc'])?$data['preservation_desc']:''; $cpv->SetPreservationDesc($pdesc); $cpv->SetPreservationDataProvider($data['preservation_data_provider']); $cpv->SetName($data['name']); $cpv->SetDocumentType("0"); $cpv->SetIdCard($data['idcard']); $cpv->SetMobile($data['mobile']); $cpv->SetVerifiedTime($data['verified_time']); $cpv->SetVerifiedType("1"); $cpv->SetApplyNum(uniqid("an_")); $cpv->SetQueryTime(date("YmdHis")); $cpv->SetSystemFlag(""); $cpv->SetIdcardCompare(""); $cpv->SetNameCompare(""); if(isset($data['verifiedProvider']))$cpv->SetVerifiedProvider($data['verifiedProvider']); if(isset($data['transactionId']))$cpv->SetTransactionId($data['transactionId']); $cpv->SetResult(""); $cpv->SetIdCard($data['idcard']); $param->SetTransactionId($data['transactionId']); if(isset($data['ip_file']))$param->SetIdcardPositiveFile($data['ip_file']); if(isset($data['in_file']))$param->SetIdcardNegativeFile($data['in_file']); if(isset($data['live_detection_file']))$param->SetLiveDetectionFile($data['live_detection_file']); $param->SetMobile($data['mobile']); $ret=FddApi::companyDeposit($param,$cpv); return $ret; } /** * 个人实名信息存证 * @param array $data * @return boolean|unknown */ public static function personDeposit($data=array()){ $param=new FddDeposit(); $param->SetVerifiedType(trim($data['verified_type'])); $param->SetTransactionId(trim($data['transactionId'])); $param->SetCustomerID(trim($data['customer_id'])); $param->SetPreservationName(trim($data['preservation_name'])); $param->SetPreservationDataProvider(trim($data['preservation_data_provider'])); $param->SetName(trim($data['name'])); $param->SetIdCard(trim($data['idcard'])); $param->SetMobile(trim($data['mobile'])); $param->SetDocumentType("0"); //$param->SetResult(trim($data['result'])); $ret=FddApi::personDeposit($param); return $ret; } /** * 企业信息实名存证 * @param array $data * @return boolean|unknown */ public static function companyDeposit($data=array()){ $param=new FddDeposit(); $param->SetCustomerID($data['customer_id']); $param->SetPreservationName($data['preservation_name']); if(isset($data['preservation_desc']))$param->SetPreservationDesc($data['preservation_desc']); $param->SetPreservationDataProvider($data['preservation_data_provider']); $param->SetCompanyName($data['company_name']); $param->SetDocumentType($data['document_type']); if($data['document_type']==1){ $param->SetCreditCode($data['credit_code']); $ccfile=$data['credit_code_file']; $ccfile=new \CURLFile($ccfile); $param->SetCreditCodeFile($ccfile); } $param->SetVerifiedTime($data['verified_time']); $param->SetVerifiedMode($data['verified_mode']); $pafile=$data['power_attorney_file']; $pafile=new \CURLFile($pafile); $param->SetPowerAttorneyFile($pafile); $param->SetCompanyPrincipalType($data['cp_type']); $cpv=new FddDeposit(); $cpv->SetCustomerID($data['customer_id']); $cpv->SetPreservationName($data['preservation_name']); $pdesc=isset($data['preservation_desc'])?$data['preservation_desc']:''; $cpv->SetPreservationDesc($pdesc); $cpv->SetPreservationDataProvider($data['preservation_data_provider']); $cpv->SetName($data['name']); $cpv->SetDocumentType("0"); $cpv->SetIdCard($data['idcard']); $cpv->SetMobile($data['mobile']); $cpv->SetVerifiedTime($data['verified_time']); $cpv->SetVerifiedType("1"); $cpv->SetApplyNum(uniqid("an_")); $cpv->SetQueryTime(date("YmdHis")); $cpv->SetSystemFlag(""); $cpv->SetIdcardCompare(""); $cpv->SetNameCompare(""); if(isset($data['verifiedProvider']))$cpv->SetVerifiedProvider($data['verifiedProvider']); if(isset($data['transactionId']))$cpv->SetTransactionId($data['transactionId']); $cpv->SetResult(""); $cpv->SetIdCard($data['idcard']); $param->SetTransactionId($data['transactionId']); if(isset($data['ip_file']))$param->SetIdcardPositiveFile($data['ip_file']); if(isset($data['in_file']))$param->SetIdcardNegativeFile($data['in_file']); if(isset($data['live_detection_file']))$param->SetLiveDetectionFile($data['live_detection_file']); $param->SetMobile($data['mobile']); $ret=FddApi::companyDeposit($param,$cpv); return $ret; } /** * 编号证书申请 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public static function applyClientNumcert($data=array()){ $cert_flag=1; $param=new FddDeposit(); $param->SetCustomerID($data['customer_id']); $param->SetEvidenceNo($data['evidence_no']); $ret=FddApi::applyClientNumCert($param); return $ret; } /** * 编号证书申请 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public static function applyCert($data=array()){ $cert_flag=1; $param=new FddVerify(); $param->SetCustomerID($data['customer_id']); $param->SetVerifiedSerialno($data['verified_serialno']); $ret=FddApi::applyCert($param); return $ret; } /** * 合同上传 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public function uploadDocs($data=array()){ $timpstamp=date('YmdHis'); $cert_flag=1; $param=new FddTemplate(); $param->SetApp_id(self::$appId); $param->SetTimestamp($timpstamp); $param->SetV(self::$version); $param->SetContract_id($data['contract_id']); $param->SetDoc_title($data['doc_title']); $param->SetDoc_url($data['doc_url']); $param->SetDoc_type($data['doc_type']); $ret=FddApi::Uploaddocs($param); return $ret; } /** * 模板上传 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public function uploadTpl($data=array()){ $timpstamp=date('YmdHis'); $cert_flag=1; $param=new FddTemplate(); $param->SetApp_id(self::$appId); $param->SetTimestamp($timpstamp); $param->SetV(self::$version); $param->SetTemplate_id($data['template_id']); $param->SetDoc_url($data['doc_url']); $param->SetFile($data['file']); $ret=FddApi::UploadTemplate($param); return $ret; } /** * 模板填充 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public static function genContract($data=array()){ $timpstamp=date('YmdHis'); $param=new FddTemplate(); $param->SetApp_id(self::$appId); $param->SetTimestamp($timpstamp); $param->SetV(self::$version); $param->SetDoc_title($data['doc_title']); $param->SetTemplate_id($data['template_id']); $param->SetContract_id($data['contract_id']); $param->SetFont_size($data['font_size']); $param->SetFont_type($data['font_type']); $map=json_encode($data['map']); $param->SetParameter_map($map); if(isset($data['datas'])){ $tables=[]; $tables['insertWay']=0; $tables['keyword']=$data['keyword']; $tables['pageBegin']=$data['pageBegin']; $tables['borderFlag']=0; $tables['datas']=$data['datas']; $tables['headers']=$data['headers']; $tables['colWidthPercent']=[1,4,4,4]; $tables['cellHeight']=30; $tables['cellHorizontalAlignment']=0; $tables['cellVerticalAlignment']=5; $tables['pageBegin']=1; $tables['theFirstHeader']=$data['theFirstHeader']; $tables=json_encode($tables); // $param->SetDynamic_tables($tables); } $param->SetInsertWay(''); $ret=FddApi::GenerateContract($param); return $ret; } /** * 自动签署 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public static function extsignAuto($data=array()){ $timpstamp=date('YmdHis'); $cert_flag=1; $param=new FddSignContract(); $param->SetApp_id(self::$appId); $param->SetTimestamp($timpstamp); $param->SetV(self::$version); $param->SetTransaction_id($data['transaction_id']); $param->SetContract_id($data['contract_id']); $param->SetCustomer_id($data['customer_id']); $param->SetClient_role($data['client_role']); $param->SetDoc_title($data['doc_title']); if(isset($data['position_type']))$param->SetPosition_type($data['position_type']); if(isset($data['sign_keyword']))$param->SetSign_keyword($data['sign_keyword']); if(isset($data['keyword_strategy']))$param->SetKeyword_strategy($data['keyword_strategy']); if(isset($data['signature_positions'])||(isset($data['position_type'])&&$data['position_type']==1)){ $param->SetSignature_positions($data['signature_positions']); } if(isset($data['notify_url']))$param->SetNotify_url($data['notify_url']); $ret=FddApi::ExtsignAuto($param); return $ret; } /** * 手动签署接口 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public static function extsign($data=array()){ $timpstamp=date('YmdHis'); $cert_flag=1; $param=new FddSignContract(); $param->SetApp_id(self::$appId); $param->SetTimestamp($timpstamp); $param->SetV(self::$version); $param->SetTransaction_id($data['transaction_id']); $param->SetContract_id($data['contract_id']); $param->SetCustomer_id($data['customer_id']); $param->SetDoc_title($data['doc_title']); if(isset($data['sign_keyword']))$param->SetSign_keyword($data['sign_keyword']); if(isset($data['keyword_strategy']))$param->SetKeyword_strategy($data['keyword_strategy']); if(isset($data['notify_url']))$param->SetNotify_url($data['notify_url']); $param->SetReturn_url($data['return_url']); if(isset($data['customer_mobile']))$param->SetCustomerMobile($data['customer_mobile']); $param->SetCustomerName($data['customer_name']); if(isset($data['customer_ident_no']))$param->SetCustomerIdentNo($data['customer_ident_no']); $ret=FddApi::Extsign($param); return $ret; } /** * 合同查看 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public static function viewContract($data=array()){ $timpstamp=date('YmdHis'); $cert_flag=1; $param=new FddContractManageMent(); $param->SetApp_id(self::$appId); $param->SetTimestamp($timpstamp); $param->SetV(self::$version); $param->SetContract_id($data['contract_id']); $ret=FddApi::ViewContract($param); return $ret; } /** * 合同归档 * @param array $data * @return \fdd\成功时返回,其他抛异常 */ public static function contractFilling($data=array()){ $param=new FddContractManageMent(); $param->SetContract_id($data['contract_id']); $ret=FddApi::ContractFiling($param); return $ret; } } ?>