跳到主要内容

跳转电子签H5

1. App集成电子签H5兼容性适配

  1. 人脸核身兼容性适配。参考人脸核身 App 调用 H5 兼容性配置指引

  2. B2B场景或B2C填写场景,选择文件或图片上传适配。参考Android WebView选择图片、发送图片

  3. B2B场景,文件下载适配。企业认证时,用户可以下载模板文件。Android App中,需拦截 Webview 下载操作,转系统调用。调用 webview.setDownloadListener() 接口设置下载拦截,可以使用系统下载或者App自己实现。

  4. B2B场景,拦截weixin://可跳转到微信小程序创建印章。重写 Webview shouldOverrideUrlLoading 或 WKNavigationDelegate 接口,遇到weixin://开头的链接时,转系统调用。目前,H5 B2B合同签署未实现企业印章创建的流程,需引导到微信小程序中创建。

  5. (可选) 拦截返回应用的qianapp://。需要从电子签H5直接返回App原生页面时,且配置对应的JumpUrl格式之后,才需要适配。

初次使用Android Webview时,建议先参考 Android-AdvancedWebView ,了解各种适配相关的接口。Android Webview上需要各种适配之后,其功能才接近于手机浏览器。检验自己的适配是否成功,分别在手机浏览器与自己App Webview打开H5页面,两者的功能差异。同时,检查一下最基本的设置是否正确,webSetting.setJavaScriptEnabled(true) 与 webSetting.setDomStorageEnabled(true) 。

文件下载参考:

拦截 URL scheme 参考:

UniApp App端:

使用UniApp构建App时,可以直接使用其Webview组件集成电子签H5。先配置好App所需的相机、麦克风、文件存储、文件读取、访问文件系统等权限,可参考人脸核身 App 调用 H5 兼容性配置指引使用的权限点。

2. 获取电子签H5链接

可参考 获取跳转小程序查看或签署链接生成子客登录链接 ,以及其它与H5相关的接口。

H5签署、认证等链接因涉及人脸核身,不支持在iframe中使用,请参考“3.1 腾讯电子签H5 → 集成方H5”配置JumpUrl串联业务流程。

3. 返回应用JumpUrl格式

App集成H5时,在电子签H5页面完成签署之后,一般需要返回到集成方的H5或原生页面。针对这两种不同的集成方式,集成方需要传不同的JumpUrl数据格式与兼容性适配。

3.1 腾讯电子签H5 → 集成方H5

该场景表现为:双方H5均在普通浏览器或APP Webview中,在腾讯电子签H5中完成签署之后,再返回到集成方H5页面。

JumpUrl格式: https://YOUR_CUSTOM_URL/xxxx,只需满足 https:// 开头的正确且合规的网址即可。

注意: 根据安全要求,浏览器或Webview可能不允许跳转到普通的http协议。

返回应用时携带的数据:当query中有appendResult=qian时,在YOUR_CUSTOM_URL后面添加query参数签署成功的参数,具体格式参考 返回应用数据格式 ,比如 https://YOUR_CUSTOM_URL?flowId=xxx&action=sign&result=success&from=tencent_ess。 否则,直接跳转到原始的JumpUrl。

3.2 腾讯电子签H5 → 集成方原生App

该场景表现为:通过原生App的Webview组件承载腾讯电子签H5,在腾讯电子签H5中完成签署之后,再返回到原生页面。

JumpUrl格式: qianapp://YOUR_CUSTOM_URL,只需满足 qianapp:// 开头的URL即可。

注意: APP实现方,需要拦截Webview地址跳转,发现url是 qianapp:// 开头时跳转到原生页面。

返回应用时携带的数据:仅当query中有appendResult=qian时,在YOUR_CUSTOM_URL后面添加query参数签署成功的参数,具体格式参考 返回应用数据格式 ,比如 qianapp://YOUR_CUSTOM_URL?flowId=xxx&action=sign&result=success&from=tencent_ess。 否则,直接跳转到原始的JumpUrl。

3.3 腾讯电子签H5 → 集成方UniApp

该场景表现为:通过UniApp App端的Webview组件承载腾讯电子签H5,在腾讯电子签H5中完成签署之后,再返回到UniApp页面。

JumpUrl格式: qianuni://{YOUR_JSON_DATA},需满足 qianuni:// 开头且后面的JSON需满足以下 QianUniRouteType 格式。

例如,qianuni://{"method":"reLaunch","payload":{"url":"/pages/index/result?foo=bar"},"appendResult":"qian"}

type QianUniRouteType = {
method: 'navigateTo' | 'navigateBack' | 'switchTab' | 'reLaunch' | 'redirectTo',
payload: Object,
appendResult: 'qian', // 可选字段
}

其中的 payload 的数据格式,参考UniApp路由相关几个函数的参数。

仅 appendResult 等于 'qian' 时,将在 payload.url 的 query 参数中附加签署成功状态参数,具体格式参考 返回应用数据格式 ,比如,payload.url 自动附加的结果为 /pages/index/result?foo=bar&flowId=xxx&action=sign&result=success&from=tencent_ess。 否则,直接使用原始的 payload.url 完成页面跳转。

注意:跳转路由有绝对路径和相对路径之分。 带斜杠/开头的路由,表示绝对路径; 不带斜杠/开头的路由,表示相对路径。推荐统一使用/开头的绝对路径,可避免出现找不到页面的情况。

4. 返回应用数据格式

返回到集成方应用时,每个字段的TS类型定义如下:

// 签署、填写、拒签,返回格式如下
{
flowId: string,
action: 'fill' | 'sign' | 'reject_fill' | 'reject_sign' | 'view' | '',
result: 'success' | 'fail' | '',
from: 'tencent_ess'
}

注意: 有的场景不包含上面的所有字段。比如,批量签署或开通自动签,无flowId。

购买咨询
微信客服
4006-808-062
4006-808-062