集成方式说明
1 初始化
对接方预设页面需要引入JS-SDK
,目前JS-SDK
由3个部分组成。
目录名称 | 作用 |
---|---|
fonts | JS-SDK字体资源文件 |
img | JS-SDK图片资源文件 |
js | JS-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 => {
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);
</script>
<script src=/js/index.js> </script> </body> </html>
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 => {
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);
</script>
<script src=/js/index.js> </script> </body> </html>
4 个人认证回调说明
**描述:**接收回调请求的地址接口需要支持Content-Type: application/x-www-form-urlencoded 的post请求,每次回调不通会重复调用一次,如果调用不通,1分钟后再调用2次,一共调用4次。
参数说明:
参数名称 | 类型 | 描述 |
---|---|---|
mode | String | 认证模式:IVS:手机三要素认证、FACE:人脸认证、BANK:银行卡认证、MANUAL:人工审核 |
status | String | 1:认证通过,2:认证不通过 |
接收回调请求接口的返回值: 接口返回值必须包含以下参数,且转换成json字符串返回。
名称 | 类型 | 描述 |
---|---|---|
code | Int | 接收回调消息 响应码 |
返回值说明:
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 => {
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);
</script>
<script src=/js/index.js> </script> </body> </html>
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('认证退出');
},
}
);
参数说明:
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
companyName | String | 是 | 待认证公司名称 |
companyAuthBean | CompanyAuthBean | 是 | 待认证企业相关信息 |
companyAuthBean(企业认证相关信息,提交后将在对应页面显示相关信息)
参数名称 | 类型 | 必须 | 描述 |
---|---|---|---|
companyName | String | 否 | 待认证公司名称 |
applicant | UserInfo | 是 | 认证提交人,企业认证通过后,认证提交人会自动成为该企业的系统管理员 |
registerNo | String | 否 | 待认证公司注册号 |
legalPerson | String | 否 | 待认证公司法人姓名 |
callbackUrl | String | 否 | 认证回调地址 |
closeButton | Boolean | 否 | 是否显示关闭按钮,默认为true |
UserInfo(提交人信息,企业认证通过后,提交人对应的账号会自动成为该公司的管理员) :
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
name | String | 否 | 申请者姓名 |
contact | String | 是 | 联系方式 |
contactType | String | 是 | 联系方式类型: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 => {
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);
</script>
<script src=/js/index.js> </script> </body> </html>
7 企业认证回调说明
**描述:**接收回调请求的地址接口需要支持Content-Type: application/x-www-form-urlencoded 的post请求,每次回调不通会重复调用一次,如果调用不通,1分钟后再调用2次,一共调用4次。
参数说明:
名称 | 类型 | 描述 |
---|---|---|
status | Integer | 认证结果状态:0(“认证中”)、1(“认证成功”)、2(“认证失败”) |
actionEvent | Integer | 认证行为状态:0(“提交基本信息”)、1(“基本信息审核通过”)、2(“基础信息审核失败”)、4(“授权书审核失败”)、6(“反向打款失败”)、7(“认证成功”)、9(“法人实名认证人工审核失败”) |
requestId | String | 认证请求Id |
authInfo | String | 认证详情内容参考CorpAuthDetail |
CorpAuthDetail:
名称 | 类型 | 描述 |
---|---|---|
name | String | 认证公司名称 |
registerNo | String | 认证公司工商注册号 |
legalPerson | String | 认证公司法人代表姓名 |
接收回调请求接口的返回值: 接口返回值必须包含以下参数,且转换成json字符串返回。
名称 | 类型 | 描述 |
---|---|---|
code | Int | 接收回调消息 响应码 |