同步纷享销客CRM合同数据至E签宝,实现全程无感完成电子合同签署!

在这里插入图片描述
最新消息:纷享销客与E签宝官方已经合作,目前正在进行技术推进,纷享会以系统集成的方式使用E签宝。
在这里插入图片描述

一、纷享销客简介

纷享销客是连接型CRM优质服务商。纷享销客连接型CRM以开放的企业级通讯为基础架构,以连接人、连接业务、连接客户为使命,将CRM、PRM及SCRM融为一体,为企业提供销售管理、营销管理及服务管理为一体的移动化客户全生命周期管理。开放的通讯架构与交互的业务逻辑,帮助企业实现外部业务、内部全员以及微信生态的互联互通,为企业构建起连接企业内外的业务价值链。

二、E签宝简介

电子合同是具有法律效力的。电子合同是基于电子签名的,e签宝成立于2002年12月,是中国互联网电子签名行业领跑者,致力于为客户提供具有法律效力的电子合同全生命周期服务。e签宝为用户提供一套完整的全生态电子签名服务,全套产品体系助力用户系统性解决签署难题,降本增效。
在这里插入图片描述

三、对接基础条件

  • 纷享销客开放平台,开发文档:https://open.fxiaoke.com/wiki.html#artiId=15

  • E签宝开放平台,开发文档:https://qianxiaoxia.yuque.com/books/share/23123f7b-8baa-4376-95d3-c03f22d07c5c/xuanyuanapi

四、技术实现

  • 原理:纷享销客有订单数据、合同相关信息,如果能把纷享销客的合同数据传输到E签宝平台,然后调用E签宝平台api接口去生成合同文档,并完成签署,最后把完成签署的合同文件同步到纷享销客,这样就实现了在纷享销客内,全程无感完成电子合同签署,大大提高的合同签署的效率,并且降低了企业运营成本。

  • 纷享开放平台使用:要使用纷享销客开放平台需要联系纷享销客开通API接口及频次调用包,纷享销客开放平台的使用介绍在之前文章里详细介绍过,是一套非常标准的API接口,可以实现对CRM对象的增删改查,另外新增了事件回调接口,更加方便数据的实时同步,这里不做过多赘述。

  • E签宝开放平台使用:电子签名服务PaaS
    API_2.0是e签宝提供的一种电子签名开放服务能力。企业开发者在自己的业务系统中可以通过调用电子签名服务PaaS
    API_2.0所提供的接口实现在电子文件中签名。
    在这里插入图片描述

五、可能遇到的问题

  • E签宝合同模板:E签宝的合同模板目前主要是通过pdf文件添加输入项组件来实现的,可以为合同中变动的地方添加输入项,设置输入项的变量名称,用接口创建合同文件的时候,直接为变量赋值,就能生成合同文件。制作合同模板一是可以通过接口创建(https://qianxiaoxia.yuque.com/books/share/23123f7b-8baa-4376-95d3-c03f22d07c5c/ur4wyu_gpnq35),另外一种方法是通过Adobe
    Acrobat Pro
    DC(https://qianxiaoxia.yuque.com/docs/share/07e7e541-4751-4de1-82bc-0660c9c10cfb)进行制作。但是不管使用什么方式创建,输入项的长度都是固定的,也就是说一旦内容超出文本框的长度,就会生成合同文件失败。对于合同输入项太多,且长度不固定的或者合同中有表格且表格行数、列宽不固定的情况,E签宝目前是没有特别好的解决方案。后面两点介绍两种替代方案。
  • HTML转换PDF文档方案:就是通过编写HTML+CSS的方式,制作出HTML文档,然后通过纷享销客开放平台API接口取出需要填充的数据,生成静态的HTML文档,然后利用一些第三方库,把HTML文档转换成PDF文档,例如:PHP的mpdf、Java的itextpdf等,然后直接把转换完成的PDF文件提交到E签宝平台进行签署。这是因为HTML相对来说比较好处理,通过CSS可以控制合同文件的显示效果。另外纷享的CRM对象打印模板,是通过富文本制作的,在纷享平台可以下载PDF文件,但是我没有实现通过接口直接获取到这个文件,有兴趣的同学,可以进行尝试。这种方法比较复杂,但客户体验相对较好,文档排版也比较可控,下载一些GitHub库的时候,可能会收到墙的限制,composer安装mpdf浪费了我一晚上时间。
  • 多模板方案:就是通过多个模板,来实现个性化签署,比如:如果合同中表格行数是1行,那么调用模板1来生成合同;如果表格中行数是2,那么就调用模板2……通过Adobe
    Acrobat Pro DC多制作几个模板就可以,某些情况这个方案可以减少编码量,非技术人员也能制作模板。

六、部分核心代码

/整个签署流程:
    //第一步:获取报价单信息
    $quote = $this->fxiaoke->getDataById($querydata);
    //第二步:获取报价单产品信息
    $quoteData = $this->getQuoteInfo($quote);
    dump($quoteData);
    //第三步:获取上传文件
    $fileId = $this->quote($quoteData);
    //第四步:创建流程
    $flowId = $this->signflows($quoteData, "报价单");
    //第五步:流程添加文档
    $fileId_s = $this->addDocuments($flowId, $fileId);
    //第六步:流程添加签署区域
    $accountId = $this->platformSign($flowId, $fileId, $quoteData, "报价单");
    //第七步:开启流程
    $startSign = $this->startSign($flowId);
    sleep(5);
    //第八步:查看流程
    $flowStatus = $this->getSignFlow($flowId);
    //第九步:下载合同文件
    $docs = $this->getFlowDocuments($flowId);

//处理报价单数据
	public function getQuoteInfo($quote) {
		dump($quote);
		$quoteId = $quote->data->_id;
		$querydata = array(
			"dataObjectApiName" => "QuoteLinesObj",
			"search_query_info" => array(
				"limit" => 100,
				"offset" => 0,
				"filters" => array(
					array(
						"field_name" => "quote_id",
						"field_values" => array(
							$quoteId,
						),
						"operator" => "EQ",
					),
				),
			),
		);
		$quoteLines = $this->fxiaoke->queryObj($querydata);
		$productList = $quoteLines->data->dataList;
		//报价单字段
		$quoteData = $this->getQuoteData($quote);
		//报价单产品
		$quoteProduct = $this->getQuoteProduct($productList);
		return array("quote" => $quoteData, "product" => $quoteProduct);
	}

//E签宝鉴权获取鉴权token
	public function getToken() {
		$result = Db::name('fxtoken')->where('type', "esignToken")->find();
		$token = $result["value"];
		$expiresIn = $result["expire"];
		if (time() > ($expiresIn + 7000)) {
			//$data = json_encode(array("appId" => $this->appid, "secret" => $this->secret, "grantType" => "client_credentials"));
			$url = $this->apiurl . "/v1/oauth2/access_token" . "?appId=$this->appid&secret=$this->secret&grantType=client_credentials";
			//dump($url);
			$res = json_decode($this->curl_get_https($url));
			//dump($res);
			$acctoken = array();
			$acctoken['value'] = $res->data->token;
			$acctoken['expire'] = time();
			Db::name('fxtoken')->where('type', "esignToken")->update($acctoken);
			$token = $acctoken['value'];
		}
		return $token;
	}

交流学习:wangzhifeng@tongdog.com.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值