// 这是我用的laravel 自带的请求扩展 HTTP请求,你们如果有合适的这里不用看
// 发送http请求public function http_send($url,$data=[],$method="GET",$headers=[]){$client = new Client();$params = [];if($method == 'GET'){$params['query'] = $data;}elseif($method == 'POST'){$params['form_params'] = $data;}elseif($method == 'json'){$method="POST";$params['json'] = $data;}elseif($method == 'PUT'){// $params['json'] = $data;}if(!empty($headers)){$params['headers'] = $headers;}// dd($params);$response = $client->request($method,$url,$params);return $response->getBody();}

我说下我这边的步骤啊,就是思路,反正百度谷歌好久都没找到相关资料。(我是商家入驻的合同)

1、注册账号获取密钥
2、做好模版设计好(你也可以自己用api上传,我这边是直接先自己在后台设计好模版上传到E签宝上去的)
3、商家入驻的时候创建个人账号,创建机构账号
4、根据模版创建签约文件
5、一键发起签署

// 这里是我的代码
// e签宝public function eqb($m='sign',$data = []){$url = "https://openapi.esign.cn";$path = public_path('/eqb_token.txt');// $url = $this->get_eqb($m);$appid = 'xxx';$secret='xxx';$grantType = 'client_credentials';$params = [];$headers = ['Content-Type'=>'application/json','X-Tsign-Open-Token'=>'','X-Tsign-Open-App-Id'=>$appid];switch ($m) {case 'sign':$url = $url.'/v1/oauth2/access_token';$params = ['appId'=>$appid,'secret'=>$secret,'grantType'=>$grantType];if(!is_file($path)){$info = $this->http_send($url,$params);$infos = $info->getContents();$access_token = json_decode($infos,true)['data']['token'];file_put_contents($path,$access_token);}else{$times = time()-filemtime($path);if($times>7100){$info = $this->http_send($url,$params);$infos = $info->getContents();$access_token = json_decode($infos,true)['data']['token'];file_put_contents($path,$access_token);}else{$access_token = file_get_contents($path);}}return $access_token;break;// 模版创建文件  cc64d30f82bb4fec8bd600aeb1b22b87   9b8ddb0a85664b0c9776bd304354dee4case 'createByTemplate':$url = $url.'/v1/files/createByTemplate';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$params['name'] = '签约合同';$params['simpleFormFields'] = ['bc51106fd81e439191361db77832c79c'=>$data['store_company_name']]; //,'e17ec4b6183249ab912a1c856409e8c5'=>'印章'$params['templateId'] = 'ca1158703413449394471a0ed2a8d5ea';$info = $this->http_send($url,$params,'json',$headers);$infos = $info->getContents();$contents = json_decode($infos,true);return $contents;break;// 模版文件查询case 'docTemplates':$url = $url.'/v1/docTemplates/ca1158703413449394471a0ed2a8d5ea';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$info = $this->http_send($url,$params,'GET',$headers);$infos = $info->getContents();$contents = json_decode($infos,true);return $contents;break;// 模版创建case 'createByUploadUrl':  // 9e2decbb266b4f89a74013ac3b45c76a$url = $url.'/v1/docTemplates/createByUploadUrl';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$params['contentMd5'] = 'Jtls1+T8iPbrj7FM4xfX1Q==';$params['contentType'] = 'application/octet-stream';$params['fileName'] = '开发合同书.doc';$params['convert2Pdf'] = 'true';$info = $this->http_send($url,$params,'json',$headers);$infos = $info->getContents();$contents = json_decode($infos,true);return $contents;break;// 模版组件创建case 'components':  // 9e2decbb266b4f89a74013ac3b45c76a$url = $url.'/v1/docTemplates/9e2decbb266b4f89a74013ac3b45c76a/components';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$params['structComponent'] = ['type'  =>  1,'context'   =>['label' =>  'name','required' =>  true,'style' =>['width' =>  120.0,'height' =>  50.0,],'pos'   =>['page'  =>  1,'x'     =>  199.0,'y'     =>  699.0,],],];$info = $this->http_send($url,$params,'json',$headers);$infos = $info->getContents();$contents = json_decode($infos,true);return $contents;break;// 个人账号创建case 'accounts':$url = $url.'/v1/accounts/createByThirdPartyUserId';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$params['thirdPartyUserId'] = $data['id_card_no'];$params['name'] = $data['legal_person'];$params['idType'] = 'CRED_PSN_CH_IDCARD';$params['idNumber'] = $data['id_card_no'];$params['mobile'] = $data['emergency_contact_phone'];$info = $this->http_send($url,$params,'json',$headers);$infos = $info->getContents();$contents = json_decode($infos,true);return $contents;break;// 企业账号创建case 'organizations':$url = $url.'/v1/organizations/createByThirdPartyUserId';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$params['thirdPartyUserId'] = $data['business_license_no'];$params['creator'] = $data['signerAccountId'];$params['name'] = $data['store_company_name'];$params['idType'] = 'CRED_ORG_USCC';$params['idNumber'] = $data['business_license_no'];$info = $this->http_send($url,$params,'json',$headers);$infos = $info->getContents();$contents = json_decode($infos,true); // orgId:f109d2c52fa14ab59fc87b055188f7dfreturn $contents;break;// 开启签署流程case 'start':$url = $url.'/v1/signflows/083a234bea6f4c209381cca5217a5439/start';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$info = $this->http_send($url,$params,'PUT',$headers);$infos = $info->getContents();$contents = json_decode($infos,true); return $contents;break;// 一步发起签署  case 'signflows':$url = $url.'/api/v2/signflows/createFlowOneStep';$access_token = $this->eqb('sign');$headers['X-Tsign-Open-Token'] = $access_token;$params['docs'][] = ['fileId'    =>$data['fileId'],];$params['flowInfo'] = ['autoArchive'=>true,'autoInitiate'=>true,'businessScene' =>'入驻合同',];$params['signers'] = [[// 'platformSign'=>true,'signOrder'=>1,'signerAccount'=>['signerAccountId'=>$data['signerAccountId'],'authorizedAccountId'=>$data['authorizedAccountId'],],'signfields'=>[[// 'autoExecute'=>true,'actorIndentityType'=>2,'fileId'=>$data['fileId'],'posBean'=>['posPage'=>1,'posX'=>440,'posY'=>440,],];$info = $this->http_send($url,$params,'json',$headers);$infos = $info->getContents();$contents = json_decode($infos,true); // orgId:f109d2c52fa14ab59fc87b055188f7dfreturn $contents;break;}}

调用情况

// An highlighted block
$data2 = $data;
$data2['signerAccountId'] = $helper_model->eqb('accounts',$data2)['data']['accountId']; // 创建个人账号
$data2['authorizedAccountId'] = $helper_model->eqb('organizations',$data2)['data']['orgId']; // 创建企业账号
$data2['fileId'] = $helper_model->eqb('createByTemplate',$data2)['data']['fileId']; // 创建文件
// return $this->error_msg($helper_model->eqb('createByTemplate',$data2)['data']['fileId']);exit;
$rs = $helper_model->eqb('signflows',$data2); // 发起签署

代码有点乱,希望有帮助

E签宝的接口对接PHP代码演示相关推荐

  1. PHP电子合同对接流程,E签宝电子合同对接实战经验

    环境 LNMP,TP3.2.3,Esign 2.0 一.准备工作 1.配置环境 1.1 安装java 参见 http://blog.csdn.net/vsiryxm/article/details/5 ...

  2. 上传图片到淘宝API接口调用(代码展示)

    接口名称:upload_img 传入图片imgcode:base64加密后的图片内容(post方式),或者是直接上传(file方式),将图片上传至淘宝,返回状态码.图片名称.图片URL. 测试页展示 ...

  3. Thinkphp3.2 查询物流接口对接(快递鸟为例)

    接入流程 1.注册账号 http://www.kdniao.com/reg 取得用户ID和API key 2.申请服务, 3.接口对接 后台代码 具体使用的时候,调用接口只需要改几个参数--封装的三个 ...

  4. taobao.top.oaid.decrypt( OAID解密 )淘宝开放平台店铺订单解密接口,店铺订单明文接口,店铺订单买家信息解密接口对接教程

    taobao.top.oaid.decrypt( OAID解密 )淘宝开放平台店铺订单解密接口,店铺订单明文接口,店铺订单买家信息解密接口对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码 ...

  5. PHP e签宝电子签名Saas API 对接流程

    一.流程 二.我们再熟悉下接口中这几个字段的意思 1.accountId 2.orgId 3.fileId 4.templateId 5.flowId 6.回调通知接收说明 三.Demo文档 1.官网 ...

  6. 淘宝,tmall,1688,抖音,拼多多等平台商品详情接口(网络爬虫数据接口调用示例)接口对接教程

    淘宝,tmall,1688,抖音,拼多多等平台商品详情接口(网络爬虫数据接口调用示例)接口对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key Str ...

  7. 关于淘宝奇门接口验签问题

    最近做了一个奇门接口对接问题.遇到了验签问题,特和大家分享下. 目前的需求是在奇门发布一个接口.本地接口是post请求,参数在body中存储. 奇门的接口配置流程可以参考官方文档如下链接内容: 开放平 ...

  8. 基于JavaWeb平台的常用物联网硬件接口对接代码总结文档_田超凡

    基于JavaWeb平台的常用物联网硬件接口对接代码总结文档                                                                       ...

  9. 淘宝tmall页面数据获取,API接口对接程序

    item_get-获得淘宝商品详情 请求参数 请求参数:num_iid=652874751412&is_promotion=1 参数说明:num_iid:淘宝商品ID is_promotion ...

最新文章

  1. Jmeter性能测试之ForEach控制器的使用
  2. JVM规范系列第2章:Java虚拟机结构
  3. DL:深度学习算法(神经网络模型集合)概览之《THE NEURAL NETWORK ZOO》的中文解释和感悟(二)
  4. Ubuntu18.04 unzip解压zip文件乱码的解决方法
  5. java厨房_JAVA环境搭建,厨房安装图文教程!
  6. a good website to test OTP
  7. 英语练字字帖打印_为初学者设计的字帖,有耐心都能练好
  8. html创建表单用设么,如何使用HTML创建表单的发送
  9. 学号:201621123032 《Java程序设计》第7周学习总结
  10. C语言/C++基础知识代码整理
  11. FlightGear
  12. 宋宝华: 文件读写(BIO)波澜壮阔的一生
  13. eNSP入门-基本配置
  14. 2019华为软件精英挑战赛总结篇
  15. bootcamp空间不足_mac安装双系统 提示磁盘上没有足够的可用空间的解决方法
  16. matlab 浮雕算法,photoshop图像滤镜——浮雕算法(含matlab代码)
  17. Windows程序设计设计第一个窗口
  18. version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference
  19. Oracle 10g在线整理碎片索引是否失效
  20. Zero-shot Learning零样本学习 论文阅读(一)——Learning to detect unseen object classes by between-class attribute

热门文章

  1. piv图像处理文献综述_体视2D-3cPIV相机标定方法研究
  2. 第三章 SIMT 内核:指令和寄存器数据流
  3. 几种STM32开发IDE的比较与选择
  4. excel——数据透视表教程
  5. 与Java相关的四十个名字
  6. 怎么判断英文网站是否做过谷歌优化?
  7. GDI函数 坐标系综述
  8. H5C3常见知识点总结
  9. 【原创】Python 极验滑块验证
  10. 了解前端(html,css)