平台简介
新手指南
API协议
API文档
单点登录集成
JS SDK文档
小程序插件
公告
常见问题
TEST_DIR011
TEST_DIR11
分类序号是1
开放平台使用操作手册
帮助中心 / 开放平台帮助文档 / 集成方式说明
集成方式说明
集成方式说明

集成方式说明

1 初始化

对接方预设页面需要引入JS-SDK ,目前JS-SDK由3个部分组成。

目录名称作用
fontsJS-SDK字体资源文件
imgJS-SDK图片资源文件
jsJS-SDK脚本资源文件
  • 引入 Sdk 文件

对接方需要在预定签署的HTML文件中进入JS-SDK, 具体操作如下:

  <script src=/js/index.js/> 

该文件会在 windows 上挂载内嵌页面的构造函数qysSdk

  • 实例化qysSdk
var url = 'http://192.168.53.135:8080/proxy';
var instance = new qysSdk(url, {
                    query: { a: 1, token: 'ab1234' },
                });

参数说明:

参数名称必须参数说明
url对接方服务器接口地址,JS-SDK会请求该接口地址,实现要求见后续说明
query自定义参数,JS-SDK会在请求时带上这些参数

2 个人签署页面接口

描述: 个人签署页面提供个人认证以及合同签署相关服务,若用户未完成合同发起方指定的认证,则需要先行完成认证,再进行合同签署,签署方式支持使用验证码或者扫脸签署(需发起方指定)。

调用方式:

var contractId = '2603417854124281870';
var contact = '137******44';
var promise = instance.personalSign(contractId, contact , {
                    signSuccessCb: function() {
                        console.log('签署成功');
                    },
                    authFailCb: function() {
                        console.log('认证退出');
                    },
                });

参数说明:

参数名称必须描述
contractId对接方将要将要用于页面签署的合同Id
contact将要在页面上进行签署的用户联系方式,需要合同节点当前已经达到该用户的签署节点
signSuccessCb签署成功后的操作,需对接方自行进行维护代码逻辑,完成类似于页面跳转等操作,若不维护当前方法,签署成功后会停留在合同页面
authFailCb用户认证过程中,点击页面上的 “退出认证” 按钮后触发的操作,需对接方自行维护代码逻辑,完成类似于页面跳转等操作,若不维护当前方法,用户点击按钮后不会触发任何操作

页面生成示例:

<!DOCTYPE html>
<html lang=zh-CN>

<head> <meta charset=utf-8> <meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> <meta name=apple-mobile-web-app-capable content=yes> <meta name=apple-mobile-web-app-status-bar-style content=black> <meta name=baidu-site-verification content=MHGvTSMXM0> <meta name=author content=契约锁> <meta name=description content=契约锁-守护我们的契约精神!告别纸质合同,契约锁为您永久保管好您在契约锁上签约的电子合同> <meta content="telephone=no" name=format-detection> <title>契约锁电子合同云平台</title> <script src=https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js> </script> <link href=/js/index.js rel=preload as=script> </head><body style="margin: 0"><div id=app></div > <script> setTimeout(() => { var instance = new qysSdk('http://192.168.53.135:8080/proxy', { query: { a: 1, token: 'ab1234' }, });

            var promise = instance.personalSign('2603417854124281870', '137******44', {
                signSuccessCb: function () {
                    console.log('签署成功');
                },
                authFailCb: function () {
                    console.log('认证退出');
                },
            });

            promise.then(data =&gt; {
                var element = data;
                element.style.border = '1px solid red';
                element.style.width = '100%';
                element.style.height = '100%';
                element.style.position = 'fixed';

                document.body.append(element);
            });
        }, 1000);
&lt;/script&gt;
&lt;script src=/js/index.js&gt; &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;

3 个人认证页面接口

**描述:**个人认证页面提供个人认证的服务,对接方将想要认证的方式以及认证人的联系方式作为参数传递进来生成页面以供用户认证的效果,用户认证的结果会于契约锁云平台同步,该接口支持指定用户相关认证内容,但用户可以在页面上对指定内容进行修改,若待认证用户在契约锁云平台已经完成了实名认证,认证页面的姓名、身份证号以契约锁云平台的认证成功信息为准。

调用方式:

var promise = instance.personalAuth(
                    {
                        mode: 'FACE', // DEFAULT,FACE,BANK
                        contact: '137******44',
                    },
                    {
                        authSuccessCb: function(userInfo) {
                            console.log('认证成功 :', userInfo);
                            return userInfo;
                        },
                        authFailCb: function() {
                            console.log('认证退出');
                        },
                    }
                );

参数说明:

参数名称必须描述
mode认证模式,DEFAULT(“默认认证模式”)、FACE(“人脸认证模式”)、BANK(“银行卡四要素认证模式”)
contact待认证用户联系方式
username指定的认证姓名,仅待认证用户未实名时生效
idCardNo指定的身份证号码,仅待认证用户未实名时生效
bankNo指定的银行卡卡号,仅认证模式为银行卡四要素认证时生效
bankMobile指定的银行卡预留手机号,仅认证模式为银行卡四要素认证时生效
manual布尔值,认证失败后是否允许使用契约锁人工审核通过认证,默认false
callbackUrl认证结果回调地址
authSuccessCb认证成功后的操作,需对接方自行进行维护代码逻辑,完成类似于页面跳转等操作,若不维护当前方法,签署成功后会停留认证成功页面,同时会返回认证成功信息userInfo,前端可获取到用户认证信息
authFailCb用户认证过程中,点击页面上的 “退出认证” 按钮后触发的操作,需对接方自行维护代码逻辑,完成类似于页面跳转等操作,若不维护当前方法,用户点击按钮后不会触发任何操作
modifyFields认证可修改项 (姓名-USERNAME,身份证-IDCARDNO,银行卡号-BANKNO,银行卡预留手机号-BANKMOBILE)

默认认证模式说明:

DEFAULT为不指定认证模式,由用户在页面上填完基本信息后选择认证模式,页面支持选择的认证模式有:手机号认证、银行卡认证、人脸识别认证模式。

认证成功函数说明:

认证成功的函数会返回当前认证成功的信息userInfo,具体字段如下:username("认证姓名")、mobile("认证联系方式")、cardNo("认证身份证号")、bankNo("认证银行卡号,仅银行卡认证成功后返回")、contact("认证银行卡预留手机号,仅银行卡认证后返回")

页面生成示例:

<!DOCTYPE html>
<html lang=zh-CN>

<head> <meta charset=utf-8> <meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> <meta name=apple-mobile-web-app-capable content=yes> <meta name=apple-mobile-web-app-status-bar-style content=black> <meta name=baidu-site-verification content=MHGvTSMXM0> <meta name=author content=契约锁> <meta name=description content=契约锁-守护我们的契约精神!告别纸质合同,契约锁为您永久保管好您在契约锁上签约的电子合同> <meta content="telephone=no" name=format-detection> <title>契约锁电子合同云平台</title> <script src=https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js> </script> <link href=/js/index.js rel=preload as=script> </head><body style="margin: 0"><div id=app></div > <script> setTimeout(() => { var instance = new qysSdk('http://192.168.53.135:8080/proxy', { query: { a: 1, token: 'ab1234' }, });

            var promise = instance.personalAuth(
                {
                    mode: 'BANK', // DEFAULT,FACE,BANK
                    contact: '137******44',
                },
                {
                    authSuccessCb: function(userInfo) {
                        console.log('认证成功 :', userInfo);
                        return userInfo;
                    },
                    authFailCb: function() {
                        console.log('认证退出');
                    },
                }
            );

            promise.then(data =&gt; {
                var element = data;
                element.style.border = '1px solid red';
                element.style.width = '100%';
                element.style.height = '100%';
                element.style.position = 'fixed';

                document.body.append(element);
            });
        }, 1000);
&lt;/script&gt;
&lt;script src=/js/index.js&gt; &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;

4 个人认证回调说明

**描述:**接收回调请求的地址接口需要支持Content-Type: application/x-www-form-urlencoded 的post请求,每次回调不通会重复调用一次,如果调用不通,1分钟后再调用2次,一共调用4次。

参数说明:

参数名称类型描述
modeString认证模式:IVS:手机三要素认证、FACE:人脸认证、BANK:银行卡认证、MANUAL:人工审核
statusString1:认证通过,2:认证不通过

接收回调请求接口的返回值: 接口返回值必须包含以下参数,且转换成json字符串返回。

名称类型描述
codeInt接收回调消息 响应码

返回值说明:

code为0表示接收回调消息成功: {"code":0} code不为0表示接收回调消息失败: {"code":1001}

5 企业签署页面接口

描述: 企业签署页面提供企业认证以及合同签署相关服务,若用户未完成合同发起方指定的认证,则需要先行完成认证,再进行合同签署。

调用方式:

var contractId = '2603417854124281870';
var contact = '137******44';
var promise = instance.enterpriseSign(contractId, contact , {
                    signSuccessCb: function() {
                        console.log('签署成功');
                    },
                    authFailCb: function() {
                        console.log('认证退出');
                    },
                });

参数说明:

参数名称必须描述
contractId对接方将要将要用于页面签署的合同Id
contact将要在页面上进行签署的用户联系方式,需要合同节点当前已经达到该用户的签署节点
signSuccessCb签署成功后的操作,需对接方自行进行维护代码逻辑,完成类似于页面跳转等操作,若不维护当前方法,签署成功后会停留在合同页面
authFailCb用户认证过程中,点击页面上的 “退出认证” 按钮后触发的操作,需对接方自行维护代码逻辑,完成类似于页面跳转等操作,若不维护当前方法,用户点击按钮后不会触发任何操作

页面生成示例:

<!DOCTYPE html>
<html lang=zh-CN>

<head> <meta charset=utf-8> <meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> <meta name=apple-mobile-web-app-capable content=yes> <meta name=apple-mobile-web-app-status-bar-style content=black> <meta name=baidu-site-verification content=MHGvTSMXM0> <meta name=author content=契约锁> <meta name=description content=契约锁-守护我们的契约精神!告别纸质合同,契约锁为您永久保管好您在契约锁上签约的电子合同> <meta content="telephone=no" name=format-detection> <title>契约锁电子合同云平台</title> <script src=https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js> </script> <link href=/js/index.js rel=preload as=script> </head><body style="margin: 0"><div id=app></div > <script> setTimeout(() => { var instance = new qysSdk('http://192.168.53.135:8080/proxy', { query: { a: 1, token: 'ab1234' }, });

            var promise = instance.enterpriseSign('2603417854124281870', '137******44', {
                signSuccessCb: function () {
                    console.log('签署成功');
                },
                authFailCb: function () {
                    console.log('认证退出');
                },
            });

            promise.then(data =&gt; {
                var element = data;
                element.style.border = '1px solid red';
                element.style.width = '100%';
                element.style.height = '100%';
                element.style.position = 'fixed';

                document.body.append(element);
            });
        }, 1000);
&lt;/script&gt;
&lt;script src=/js/index.js&gt; &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;

6 企业认证页面接口

**描述:**企业认证页面提供企业认证的服务,对接方将想要认证的企业名称以及企业相关认证信息作为参数传递进来生成页面以供企业认证的效果,企业认证的结果会于契约锁云平台同步,该接口支持指定企业相关认证内容,但用户可以在页面上对指定内容进行修改,若待认证企业在契约锁云平台已经完成了实名认证,认证页面的相关信息以契约锁云平台的认证成功信息为准。

调用方式:

var promise = instance.enterpriseAuth(
                    {
                         companyName: '自测JSSDK企业认证x',
                         companyAuthBean: {
                             applicant: {
                                 name: '胡震坤',
                                 contact: '15164046497',
                             },
                             closeButton: true,
                         },
                     },
                     {
                         authSuccessCb: function(userInfo) {
                             console.log('认证成功 :', userInfo);
                             return userInfo;
                         },
                         authFailCb: function() {
                             console.log('认证退出');
                         },
                     }
                );

参数说明:

名称类型必须描述
companyNameString待认证公司名称
companyAuthBeanCompanyAuthBean待认证企业相关信息

companyAuthBean(企业认证相关信息,提交后将在对应页面显示相关信息)

参数名称类型必须描述
companyNameString待认证公司名称
applicantUserInfo认证提交人,企业认证通过后,认证提交人会自动成为该企业的系统管理员
registerNoString待认证公司注册号
legalPersonString待认证公司法人姓名
callbackUrlString认证回调地址
closeButtonBoolean是否显示关闭按钮,默认为true

UserInfo(提交人信息,企业认证通过后,提交人对应的账号会自动成为该公司的管理员) :

名称类型必须描述
nameString申请者姓名
contactString联系方式
contactTypeString联系方式类型:MOBILE、EMAIL

页面生成示例:

<!DOCTYPE html>
<html lang=zh-CN>

<head> <meta charset=utf-8> <meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> <meta name=apple-mobile-web-app-capable content=yes> <meta name=apple-mobile-web-app-status-bar-style content=black> <meta name=baidu-site-verification content=MHGvTSMXM0> <meta name=author content=契约锁> <meta name=description content=契约锁-守护我们的契约精神!告别纸质合同,契约锁为您永久保管好您在契约锁上签约的电子合同> <meta content="telephone=no" name=format-detection> <title>契约锁电子合同云平台</title> <script src=https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js> </script> <link href=/js/index.js rel=preload as=script> </head><body style="margin: 0"><div id=app></div > <script> setTimeout(() => { var instance = new qysSdk('http://192.168.53.135:8080/proxy', { query: { a: 1, token: 'ab1234' }, });

            var promise = instance.enterpriseAuth(
                {
                    companyName: '自测JSSDK企业认证x',
                    companyAuthBean: {
                        applicant: {
                            name: 'AAA',
                            contact: '151****6497',
                        },
                        closeButton: true,
                    },
                },
                {
                    authSuccessCb: function(userInfo) {
                        console.log('认证成功 :', userInfo);
                        return userInfo;
                    },
                    authFailCb: function() {
                        console.log('认证退出');
                    },
                }
            );

            promise.then(data =&gt; {
                var element = data;
                element.style.border = '1px solid red';
                element.style.width = '100%';
                element.style.height = '100%';
                element.style.position = 'fixed';

                document.body.append(element);
            });
        }, 1000);
&lt;/script&gt;
&lt;script src=/js/index.js&gt; &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;

7 企业认证回调说明

**描述:**接收回调请求的地址接口需要支持Content-Type: application/x-www-form-urlencoded 的post请求,每次回调不通会重复调用一次,如果调用不通,1分钟后再调用2次,一共调用4次。

参数说明:

名称类型描述
statusInteger认证结果状态:0(“认证中”)、1(“认证成功”)、2(“认证失败”)
actionEventInteger认证行为状态:0(“提交基本信息”)、1(“基本信息审核通过”)、2(“基础信息审核失败”)、4(“授权书审核失败”)、6(“反向打款失败”)、7(“认证成功”)、9(“法人实名认证人工审核失败”)
requestIdString认证请求Id
authInfoString认证详情内容参考CorpAuthDetail

CorpAuthDetail:

名称类型描述
nameString认证公司名称
registerNoString认证公司工商注册号
legalPersonString认证公司法人代表姓名

接收回调请求接口的返回值: 接口返回值必须包含以下参数,且转换成json字符串返回。

名称类型描述
codeInt接收回调消息 响应码