You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1225 lines
59 KiB
1225 lines
59 KiB
<?php
|
|
|
|
namespace app\api\controller;
|
|
|
|
require_once EXTEND_PATH.'/fdd/FddApi.php';
|
|
require_once EXTEND_PATH.'/fdd/FddData.php';
|
|
require_once EXTEND_PATH.'/fdd/FddConfig.php';
|
|
require_once EXTEND_PATH.'/fdd/FddEncryption.php';
|
|
require_once EXTEND_PATH.'/fdd/FddException.php';
|
|
|
|
use fdd\FddApi;
|
|
use fdd\FddAccount;
|
|
use fdd\FddDeposit;
|
|
use fdd\FddTemplate;
|
|
use fdd\FddSignContract;
|
|
use fdd\FddContractManageMent;
|
|
use think\Request;
|
|
use think\Config;
|
|
use fdd\FddConfig;
|
|
use fdd\HttpClient;
|
|
use think\Log;
|
|
use think\Db;
|
|
class FddTool{
|
|
protected static $appId='';
|
|
protected static $appSecret='';
|
|
protected static $version='';
|
|
protected static $platName='';
|
|
protected static $platId='';
|
|
protected static $apiUrl='';
|
|
protected static $returnUrl='';
|
|
protected static $notifyUrl='';
|
|
protected static $paths=[];
|
|
private $pre_name='手机三要素验证';
|
|
private $pre_desc='深圳文化产权交易所';
|
|
private $pre_provider='深圳文化产权交易所';
|
|
private $doc_title='中国古建资产托管服务协议';
|
|
private $doc_title2='文化资产托管服务协议';
|
|
public function __construct(){
|
|
|
|
self::$appId=config("fdd")['appId'];
|
|
self::$appSecret=config("fdd")['appSecret'];
|
|
self::$version=config("fdd")['version'];//公司名称
|
|
self::$platName=config("fdd")['platName'];
|
|
self::$platId=config("fdd")['platId'];//客户编号
|
|
self::$apiUrl=config("fdd")['apiUrl']; //请求地址
|
|
self::$returnUrl=config("fdd")['returnUrl'];
|
|
self::$notifyUrl=config("fdd")['notifyUrl'];
|
|
self::$paths=config("fdd")['apiPath'];
|
|
|
|
header("Content-type:application/json;charset=utf-8;");
|
|
}
|
|
/**
|
|
* 个人Status:
|
|
0:未激活;
|
|
1:未认证;
|
|
2:审核通过;
|
|
3:已提交待审核;
|
|
4:审核不通过
|
|
企业:status:
|
|
0:未认证;
|
|
1:管理员资料已提交;
|
|
2:企业基本资料(没有申请表)已提交;
|
|
3:已提交待审核;
|
|
4:审核通过(认证完成);
|
|
5:审核不通过;
|
|
6人工初审通过
|
|
* @param Request $request
|
|
*/
|
|
public function returnurl(Request $request){
|
|
$applyid=input("apply_id");
|
|
$type=input("type");
|
|
$pername=input("personName",'','urldecode');
|
|
$comname=input("companyName",'','urldecode');
|
|
$tranno=input("transactionNo");
|
|
$status=input("status",'','intval');
|
|
$authtype=input("authenticationType",'','intval');
|
|
|
|
Log::write("==============returnurl=====================",'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'];
|
|
|
|
$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 "<script>window.location.href='/home/center/mytg.html'</script>";
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
?>
|
|
|