🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210410174731105.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmd6aGFl,size_16,color_FFFFFF,t_70) ## (1)注册云合同账号 平台方需登录云合同官网([https://www.yunhetong.com](https://www.yunhetong.com)),注册一个企业账号并完成实名认证后,联系对接人员协助进行开户。 ## (2)创建平台应用 开发者可登录云合同开放平台([http://open.yunhetong.com/](http://open.yunhetong.com/))创建应用(测试阶段请创建测试应用,项目正式请创建正式应用),并记录应用信息,为后续对接工作开展做好准备工作。 ## (3)接口 1、获取第三方token 2.1注册个人的时候,走他的(创建个人用户+创建个人印章) 2.2注册企业的时候,走他的(创建企业用户+创建企业印章) 3.根据模版生成合同 contract_templateContract 4.添加签署者 5.合同签署 6. 合同下载/download/contract ## 我写的 实名认证 ```php header("Content-Type: text/html;charset=utf-8"); //获取token $datass['appId']='2018050916380600068'; $datass['appKey']='JM34AbbcRI9VzQ'; /* 获取长效令牌 */ $token = yunhetong_login("https://api.yunhetong.com/api/auth/login",$datass['appId'],$datass['appKey']); //创建个人用户 $data['uname']= "用户姓名";////用户姓名(最长 15 字符)成采南 $data['identityRegion']= 0;////身份地区:0 大陆,1 香港,2 台湾,3 澳门 $data['certifyNum']= "3714821********";////身份证号码,应用内唯一 520181198002175907 $data['phoneRegion']= 0;////手机号地区:0 大陆,1 香港、澳门,2 台湾 $data['phoneNo']="183********";//手机号:1.大陆,首位为 1,长度 11 位纯数字;2.香港、澳门,长度为 8 的纯数字;3.台湾,长度为 10 的纯数字 $data['caType']= "B2";//证书类型:B2 长效 CA 证书,固定字段//证书类型:A1 CFCA 场景, A2 CFCA 长效, B1 ZJCA 场景,B2 ZJCA 长效 $signerId= user_person("https://api.yunhetong.com/api/user/person",$data,$token); /* 保存signerId*/ // 创建个人印模 $datapm['signerId']=$signerId; $datapm['borderType']='B2';//边框样式,B1=有边框,B2=无边框 $datapm['fontFamily']='F1'; //字体样式,F1=楷体,F2=华文仿宋,F3=华文楷体,F4=微软雅黑 $user_personMoulage= user_personMoulage("https://api.yunhetong.com/api/user/personMoulage",$datapm,$token) ; /* 保存user_personMoulage*/ /* */ //查询用户 // $user_userInfo_signerIds=user_userInfo_signerIds("https://api.yunhetong.com/api/user/userInfo/signerIds",'',$token); //var_dump($user_userInfo_signerIds); die; /* 获取印模列表 */ // $signerId=2947848; //印模Id //$moulageId=4002512; //$data['pageNum']=1; //$pageSize = $data['pageSize']; //$user_moulageId= user_moulageId("https://api.yunhetong.com/api/user/moulageId",$data,$token); //var_dump($user_moulageId); ``` 生成合同 ```php //根据模版生成合同 contract_templateContract $datact['contractTitle']="t"; $datact['templateId']="TEM1001739"; $datact['contractNo']="t";//可选参数,不传时默认与合同id相同。 $datact['contractData']=['${bianhao}'=>"替换的内容 1"];//必传参数//替换模版中内容占位符结构化字段,该参数需满足json格式 $contractId=intval(contract_templateContract("https://api.yunhetong.com/api/contract/templateContract",$datact,$token)); //这个需要保存contractId, ``` 签署合同 ```php //签署合同 //用户id $signerId=2947848; //印模Id $moulageId=4002512; //测试 用的 $contractId= 1810291629557794; //添加签署者 $datacs["idType"]=0; $datacs["contractId"]=$contractId; $datacs["signerId"]=$signerId; $datacs["signPositionType"]=1;//签署的定位方式:0=关键字定位,1=签名占位符定位,2=签署坐标 $datacs["positionContent"]= "jia_sign";//坐标位置为第 20 页(34,57);//对应定位方式的内容,如果用签名占位符 定位可以传多个签名占位符,并以分号隔开,最多 20 个;如果用签署坐标定位, 则该参数包含三个信息:“页面,x 轴坐标,y 轴坐标”(如 20,30,49) //CURLOPT_POSTFIELDS => "{\"idType\": \"0\",\n\"idContent\": \"$contractId\",\n\"signers\": [{\"signerId\": \"$signerId\",\n\"signPositionType\": \"1\",\n\"positionContent\": \"88046\",\n\"signValidateType\": \"0\"}\n]\n}", $datacs["signValidateType"]=0;//签署验证方式:0=不校验,1=短信验证; $datacs["signMode"]=1;//印章使用类型(针对页面签署):0=指定印章, 1=每次绘制 $va=contract_signer("https://api.yunhetong.com/api/contract/signer",$datacs,$token); //var_dump($va); //合同签署 $datacs2['idType']=0;//参数类型:0 合同 ID,1 合同自定义编号 $datacs2['idContent']=$contractId;//ID 内容 $datacs2['signerId']=$signerId; //签署者 ID,可选参数,使用指定签署者的令牌调用 接口时可不传该参数 $datacs2['sealClass']=0;//印模 ID,可选参数,不传时使用用户最新印模//签章样式,0=常规样式,2=含摘要样式,3=含签 署时间样式,可选参数,不传时使用常规样式 $contract_sign=contract_sign("https://api.yunhetong.com/api/contract/sign",$datacs2,$token) ; var_dump($contract_sign); ``` 合同下载/ ```php //合同下载/download/contract $contractId= 1810291629557794; $datadc['idType']=0;//参数类型:0 合同 ID,1 合同自定义编号 $datadc['idContent']=$contractId;//ID 内容 download_contract("https://api.yunhetong.com/api/download/contract",$datadc,$token); /* */ ``` 公共方法 ```php <?php /* 获取长效令牌 */ function yunhetong_login($url,$appId,$appKey){ // 模拟提交数据函数 $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HEADER => true,//false时,取得code CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\n\"appId\":\"$appId\",\n\"appKey\":\"$appKey\"\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { return "cURL Error #:" . $err.die; } else { //echo $response; $headArr = explode("\r\n", $response); foreach ($headArr as $loop) { if(strpos($loop, "token") !== false){ $token = trim(substr($loop, 6)); //$token = trim($loop); } if(strpos($loop, "code") !== false){ //$code = trim(substr($loop, 6)); $rp = trim($loop); } } } $arr = json_decode($rp, true); $code = $arr['code'];//code=200 说明成功 $msg = $arr['msg']; //不成功 if($code!="200" || !$token){ print_r( "获取长效令牌,原因:".$msg).die; }else{ return($token); } // //return $response; // 返回数据,json格式 } //创建个人用户 function user_person($url,$data,$token){ $userName =$data['uname'];////用户姓名(最长 15 字符)成采南 $identityRegion =$data['identityRegion'];////身份地区:0 大陆,1 香港,2 台湾,3 澳门 $certifyNum =$data['certifyNum'];////身份证号码,应用内唯一 520181198002175907 $phoneRegion =$data['phoneRegion'];////手机号地区:0 大陆,1 香港、澳门,2 台湾 $phoneNo = $data['phoneNo'];//手机号:1.大陆,首位为 1,长度 11 位纯数字;2.香港、澳门,长度为 8 的纯数字;3.台湾,长度为 10 的纯数字 $caType =$data['caType'];//证书类型:B2 长效 CA 证书,固定字段 $curl2 = curl_init(); curl_setopt_array($curl2, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\n\"caType\": \"$caType\",\n\"certifyNum\": \"$certifyNum\",\n\"identityRegion\": \"$identityRegion\",\n\"phoneNo\": \"$phoneNo\",\n\"phoneRegion\": \"$phoneRegion\",\n\"userName\": \"$userName\"\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response2 = curl_exec($curl2); $err2 = curl_error($curl2); curl_close($curl2); if ($err2) { echo "cURL Error #:" . $err2.die; } else { //echo $response2; $arr2 = json_decode($response2, true); $code2 = $arr2['code'];//code=200 说明成功 $msg2 = $arr2['msg']; //不成功 if($code2!=200){ print_r( "创建个人用户失败,原因:".$msg2).die; }else{ $signerId = $arr2['data']['signerId']; return $signerId;die; var_dump($arr2);die; } } } //查询个人用户 function user_userInfo_signerIds($url,$data,$token){ $userName =$data['uname'];////用户姓名(最长 15 字符)成采南 $identityRegion =$data['identityRegion'];////身份地区:0 大陆,1 香港,2 台湾,3 澳门 $certifyNum =$data['certifyNum'];////身份证号码,应用内唯一 520181198002175907 $phoneRegion =$data['phoneRegion'];////手机号地区:0 大陆,1 香港、澳门,2 台湾 $phoneNo = $data['phoneNo'];//手机号:1.大陆,首位为 1,长度 11 位纯数字;2.香港、澳门,长度为 8 的纯数字;3.台湾,长度为 10 的纯数字 $caType =$data['caType'];//证书类型:B2 长效 CA 证书,固定字段 $curl2 = curl_init(); curl_setopt_array($curl2, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response2 = curl_exec($curl2); $err2 = curl_error($curl2); curl_close($curl2); if ($err2) { echo "cURL Error #:" . $err2.die; } else { //echo $response2; $arr2 = json_decode($response2, true); $code2 = $arr2['code'];//code=200 说明成功 $msg2 = $arr2['msg']; //不成功 if($code2!=200){ print_r( "查询个人用户,原因:".$msg2).die; }else{ $signerId = $arr2['data']['signerId']; return $signerId;die; var_dump($arr2);die; } } } /* 创建个人印模 */ function user_personMoulage($url,$data,$token){ $signerId = $data['signerId']; $borderType = $data['borderType']; $fontFamily = $data['fontFamily']; $curl3 = curl_init(); curl_setopt_array($curl3, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\n\"signerId\": \"$signerId\",\n\"borderType\": \"$borderType\",\n\"fontFamily\": \"$fontFamily\"\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response3 = curl_exec($curl3); $err3 = curl_error($curl3); curl_close($curl3); if ($err3) { echo "cURL Error #:" . $err3.die; } else { // echo $response3; $arr3 = json_decode($response3, true); $code3 = $arr3['code'];//code=200 说明成功 $msg3 = $arr3['msg']; //不成功 if($code3!=200){ print_r( "创建个人印模失败,原因:".$msg3).die; }else{ $moulageId = $arr3['data']['moulageId']; return $moulageId;die; var_dump($arr3);die; } } //$moulageId=82; ////print_r($moulageId); } /* 获取印模列表 */ ///{signerId}/{pageNum}/{pageSize} function user_moulageId($url,$data,$token){ $signerId = $data['signerId']; $pageNum = $data['pageNum']; $pageSize = $data['pageSize']; $curl3 = curl_init(); curl_setopt_array($curl3, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\n\"signerId\": \"$signerId\",\n\"pageNum\": \"$pageNum\",\n\"pageSize\": \"$pageSize\"\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response3 = curl_exec($curl3); $err3 = curl_error($curl3); curl_close($curl3); if ($err3) { echo "cURL Error #:" . $err3.die; } else { // echo $response3; $arr3 = json_decode($response3, true); $code3 = $arr3['code'];//code=200 说明成功 $msg3 = $arr3['msg']; //不成功 if($code3!=200){ print_r( "创建个人印模失败,原因:".$msg3).die; }else{ $moulageId = $arr3['data']['moulageId']; return $moulageId;die; var_dump($arr3);die; } } //$moulageId=82; ////print_r($moulageId); } //根据模版生成合同 contract_templateContract function contract_templateContract($url,$data,$token){ $contractTitle=$data['contractTitle']; $templateId=$data['templateId']; $curl4 = curl_init(); curl_setopt_array($curl4, array( CURLOPT_URL =>$url , CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\n\"contractTitle\": \"$contractTitle\",\n\"templateId\": \"$templateId\"\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response4 = curl_exec($curl4); $err4 = curl_error($curl4); curl_close($curl4); if ($err4) { echo "cURL Error #:" . $err4.die; } else { // echo $response4; $arr4 = json_decode($response4, true); $code4 = $arr4['code'];//code=200 说明成功 $msg4 = $arr4['msg']; //不成功 if($code4!=200){ print_r( "创建个人生成合同,原因:".$msg4).die; } $contractId = $arr4['data']['contractId']; $contractId=str_replace(",","",number_format($contractId)); } print_r($contractId); //$contractId="1804232025535010"; } //添加签署者 function contract_signer($url,$data,$token){ $idType= $data["idType"];//参数类型:0 合同 ID,1 合同自定义编号 //ID 内容 $contractId=str_replace(",","",number_format($data["contractId"])); $signerId=$data["signerId"];//签署者 id $signPositionType = $data["signPositionType"];////签署的定位方式:0=关键字定位,1=签 名占位符定位,2=签署坐标 $positionContent = $data["positionContent"];////对应定位方式的内容,如果用签名占位符 定位可以传多个签名占位符,并以分号隔开,最多 20 个;如果用签署坐标定位, 则该参数包含三个信息:“页面,x 轴坐标,y 轴坐标”(如 20,30,49) $signValidateType = $data["signValidateType"];////签署验证方式:0=不校验,1=短信验证 $signMode = $data["signMode"];////印章使用类型(针对页面签署):0=指定印章,1=每次绘制 $curl5 = curl_init(); curl_setopt_array($curl5, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", //CURLOPT_POSTFIELDS => "{\n\"contractTitle\": \"$contractTitle\",\n\"templateId\": \"$templateId\"\n}", CURLOPT_POSTFIELDS => "{\"idType\": \"$idType\",\n\"idContent\": \"$contractId\",\n\"signers\": [{\"signerId\": \"$signerId\",\n\"signPositionType\": \"1\",\n\"positionContent\": \"$positionContent\",\n\"signValidateType\": \"0\"}\n]\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response5 = curl_exec($curl5); $err5 = curl_error($curl5); curl_close($curl5); if ($err5) { echo "cURL Error #:" . $err5.die; } else { //echo $response5; $arr5 = json_decode($response5, true); $code5 = $arr5['code'];//code=200 说明成功 $msg5 = $arr5['msg']; } //不成功 if($code5!=200){ print_r( "添加签署者,原因:".$msg5.$code5['code']).die; }else{ print_r(1); } // print_r($code5); } //合同签署 function contract_sign($url,$data,$token){ $idType= $data['idType']; $contractId=str_replace(",","",number_format($data["idContent"])); $signerId= intval($data['signerId']); $curl6 = curl_init(); curl_setopt_array($curl6, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\n\"idType\": \"$idType\",\n\"idContent\": \"$contractId\",\n\"signerId\": \"$signerId\"\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response6 = curl_exec($curl6); $err6 = curl_error($curl6); curl_close($curl6); if ($err6) { echo "cURL Error #:" . $err6.die; } else { echo $response6; $arr6 = json_decode($response6, true); $code6 = $arr6['code'];//code=200 说明成功 $msg6 = $arr6['msg']; } //不成功 if($code6!=200){ print_r( "合同签署失败,原因:".$msg6).die; }else{ print_r($response6); } } //合同下载/download/contract function download_contract($url,$data,$token){ $idType= $data['idType']; $contractId=str_replace(",","",number_format($data["idContent"])); //合同下载 //$contractId="1804241101415029"; $curl7 = curl_init(); curl_setopt_array($curl7, array( CURLOPT_URL => "https://api.yunhetong.com/api/contract/download/0/$contractId", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", //CURLOPT_POSTFIELDS => "{\n\"idType\": \"$idType\",\n\"idContent\": \"$contractId\"\n}", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/json", "token: $token" ), )); $response7 = curl_exec($curl7); $err7 = curl_error($curl7); curl_close($curl7); if ($err7) { echo "cURL Error #:" . $err7.die; } else { echo $response7; $arr7 = json_decode($response7, true); $code7 = $arr7['code'];//code=200 说明成功 $msg7 = $arr7['msg']; $data7 = $arr7['data']; //不成功 if($code7!=200){ print_r( "合同下载失败,原因:".$msg7).die; }else{ print_r("合同下载成功!"); header("Location: https://api.yunhetong.com/api/auth/download/$data7"); } } } //查看合同详情 //合同存证 // print_r($code6); /* function user_person($url,$data,$token){ } */ die; ?> ``` ## 整理后的 ```php <?php /*********************/ /* Version : 10.0 */ /* Author : Tech Lee */ /*********************/ // 实名认证{} //编号 : $(bianhao) //甲方 : $(jiafang) //身份证 : $(idno) //乙方公司 : $(yifang_company_name) //乙方代表人 : $(yifang_name) //乙方信用代码 : $(yifang_xinyongdaima) //丙方(平台) : $(bingfang) //丙方(平台) : $(bingfang_xinyongdaima) //项目名 : $(deal_name) // // // //甲章 : jia_sign //乙章 : yi_sidn //丙章 : bing_sign function TCaptcha(){ $aid='2024559842'; $AppSecretKey='0rvpQRhlxmJo29MBSuNf5Lg**'; $Ticket=$_POST['ticket']; $Randstr=$_POST['randstr']; $UserIP=$_SERVER['REMOTE_ADDR']; //初始化 $aa = file_get_contents('https://ssl.captcha.qq.com/ticket/verify?aid='.$aid.'&AppSecretKey='.$AppSecretKey.'&Ticket='.$Ticket.'&Randstr='.$Randstr.'&UserIP='.$UserIP); return $aa; exit; } function membersuser($date=0){ if(is_array($date)){ if(M('members')->where($date)->find()){ return 1; }else{ return 0; } }else{ return 0; } } function create_agreeperson($name , $idCard,$user_phone,$uid){ $glodata = get_global_setting(); $per = C('DB_PREFIX'); //获取长效令牌•访问路径:/auth/login $tokenurl = "https://api.yunhetong.com/api/auth/login"; $tokendata['appId']=$glodata['appid']; $tokendata['appKey']=$glodata['appkey']; $tokendata['signerId']=''; $res = url_request_token($tokendata,$tokenurl); //创建个人用户•访问路径:/user/person if($res['code'] == '200'){ $murl = "https://api.yunhetong.com/api/user/person"; $mdata['userName']=$name; $mdata['identityRegion']=0; $mdata['certifyNum']=$idCard; $mdata['phoneRegion']=0; $mdata['phoneNo']=$user_phone; $mdata['caType']='B2'; $mres = url_request_json($mdata,$murl,$res['token']); $mrs = json_decode($mres,true); writeLog($mdata); writeLog($mrs); if($mrs['code']=='200'){ $m['signerid']=$mrs['data']['signerId']; $newid=M('members')->where("id={$uid}")->save($m); return true; }else{ return false; } }else{ return false; } } //创建个人印模 function create_personmoulage($uid){ $glodata = get_global_setting(); $per = C('DB_PREFIX'); $minfo = M("members m")->join("{$per}member_info mi ON mi.uid=m.id")->field('m.*,mi.real_name,mi.idcard')->where("m.id={$uid}")->find(); //获取长效令牌•访问路径:/auth/login $tokenurl = "https://api.yunhetong.com/api/auth/login"; $tokendata['appId']=$glodata['appid']; $tokendata['appKey']=$glodata['appkey']; $tokendata['signerId']=$minfo['signerid']; $res = url_request_token($tokendata,$tokenurl); //创建个人印章•访问路径:/user/personMoulage if($res['code'] == '200'){ $murl = "https://api.yunhetong.com/api/user/personMoulage"; $mdata['signerId']=$minfo['signerid']; $mdata['borderType']='B1'; $mdata['fontFamily']='F1'; $mres = url_request_json($mdata,$murl,$res['token']); writeLog($mres); $mrs = json_decode($mres,true); if($mrs['code']=='200'){ $m['moulageId']=$mrs['data']['moulageId']; $newid=M('members')->where("id={$uid}")->save($m); if($newid){ return true; } }else{ return false; } }else{ return false; } } //创建企业用户 function create_agreecompany($name , $idCard,$user_phone,$uid){ $glodata = get_global_setting(); $per = C('DB_PREFIX'); //获取长效令牌•访问路径:/auth/login $tokenurl = "https://api.yunhetong.com/api/auth/login"; $tokendata['appId']=$glodata['appid']; $tokendata['appKey']=$glodata['appkey']; $tokendata['signerId']=''; $res = url_request_token($tokendata,$tokenurl); //创建企业用户 if($res['code'] == '200'){ $murl = "https://api.yunhetong.com/api/user/company"; $mdata['userName']=$name; $mdata['certifyType']=1; $mdata['certifyNum']=$idCard; $mdata['phoneNo']=$user_phone; $mdata['caType']='B2'; $mres = url_request_json($mdata,$murl,$res['token']); $mrs = json_decode($mres,true); writeLog($mrs); if($mrs['code']=='200'){ $m['signerId']=$mrs['data']['signerId']; $newid=M('members')->where("id={$uid}")->save($m); return true; }else{ return false; } }else{ return false; } } //创建企业印模 function create_companymoulage($uid){ $glodata = get_global_setting(); $per = C('DB_PREFIX'); $minfo = M("members m")->join("{$per}member_info mi ON mi.uid=m.id")->field('m.*,mi.real_name,mi.idcard')->where("m.id={$uid}")->find(); //获取长效令牌•访问路径:/auth/login $tokenurl = "https://api.yunhetong.com/api/auth/login"; $tokendata['appId']=$glodata['appid']; $tokendata['appKey']=$glodata['appkey']; $tokendata['signerId']=$minfo['signerid']; $res = url_request_token($tokendata,$tokenurl); //创建企业印模 访问路径:/api/user/companyMoulage if($res['code'] == '200'){ $murl = "https://api.yunhetong.com/api/user/companyMoulage"; $mdata['signerId']=$minfo['signerId']; $mdata['styleType']='1'; $mdata['textContent']=''; $mdata['keyContent']='5103010000417'; $mres = url_request_json($mdata,$murl,$res['token']); $mrs = json_decode($mres,true); // var_dump($mrs); if($mrs['code']=='200'){ $m['moulageId']=$mrs['data']['moulageId']; $newid=M('members')->where("id={$uid}")->save($m); if($newid){ return true; } }else{ return false; } }else{ return false; } } ```