yWQModule

来自于:开发者立即使用

signData openIndex onpenPage existsCert getUserInfo clearCert clearPin isPinExempt getVersion 返回码说明

概述

医网签简介

医网签,是一款服务于医疗互联网应用的强身份认证和数字签名安全工具,针对的用户群体为活跃在互联网医疗信息平台的医护人员。该产品基于北京数字认证最具价值的医护人员数字证书资源库,以此作为部分医护人员的互联网身份凭证。远程实名鉴证服务解决了互联网医疗服务医师的身份真实性,同时引入可靠的数字签名服务解决了互联网医疗服务开展网上问诊以及电子处方的法律瓶颈问题。15年的电子认证服务经验,服务近500家医院,拥有30多万的优质医生实名认证信息。

医网签提供电子证书下发、OAuth认证登陆、数据签名等服务,为互联网医疗体系提供最具价值的信息安全服务。

医网签功能服务

  • 电子证书下发:用户在互联网医疗应用厂商同步其身份数据后,可以进行电子证书的下载。
  • 身份认证:用户可以通过扫描二维码进行医网签的授权登陆。
  • 电子签名:用户可以进行数据的点子签名

模块使用攻略

医网签仅针对第三方互联网医疗厂商提供服务,暂不对个人开发者提供服务。

使用之前必须和联系医网签运营人员申请账号并创建应用,获取 clientId(集成环境和运营环境不一样)。

医网签平台接入流程请联系医网签运营人员获取包括服务端接入的全套流程。

集成医网签平台后,如果需要上线,则需要联系医网签运营人员获取运营环境的clientId并替换,同时serverType也需要变更为运营环境(’public’)

yWQModule 封装了医网签基于医师的的SDK,集成了证书管理、数据签名功能;可用于实现用户下载证书、找回证书、设置签章图片、进行数据签名的业务

注意:为了您能顺利引用yWQModule,您还需要引用yWQGsonModule,该模块仅仅包含了gson2.2.2.jar,该功能依附于YWQModule模块一起使用,由于当前平台在处理第三方jar包的冲突方面没有很好的方案,因此我们只有暂时先把模块YWQModule依赖的第三方jar包全部拆分到另一个模块,如果第三方在使用我们YWQModule模块的时候,请务必一块使用yWQGsonModule,若加入yWQGsonModule导致了您的应用因为gson包的冲突无法编译,说明您引用的其它模块已经有了gson的jar包,您只需要移除对yWQGsonModule模块的依赖即可

使用此模块之前必须先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:yiwangqian
  • 参数:serverType、clientId
  • 配置示例:
  1. <feature name="yiwangqian">
  2. <param name="serverType" value="integrate"/>
  3. <param name="clientId" value="2015112716143758"/>
  4. </feature>
  • 字段描述:

    serverType:(必须配置)用于指定当前sdk使用的是医网签集成环境还是运营环境。其中integrate表示集成环境,public表示运营环境,厂商在集成过程中使用集成环境,应用上线需要替换成运营环境

    clientId:(必须配置)从医网签平台获取的厂商唯一标识,医网签运营人员会将集成环境和运营环境的两个clientId都告知厂商,请在对应环境下使用相应的clientId

模块接口

signData

数据签名(批量签名最大限度不能超过100条)

signData({params}, callback(ret, err))

params

uniqueIds:

  • 类型:字符串数组
  • 描述:(必须项)厂商通过同步待签名数据到医网签平台返回的待签名数据唯一标识

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: ‘’, //字符串类型;0 签名成功。 1001-用户证书不存在,1002-签章不存在,1003-参数为空,1004-程序运行缺少权限,1006-签名数量超出100条
  3. message: '', //字符串类型 返回描述
  4. clientId: '', //字符串类型;接口调用凭证,传给 getUserInfo 接口 获取用户信息;有效期2小时
  5. uniqueIds: '', //字符串数组;厂商服务端将待签名数据同步到医网签平台返回的待签名数据唯一标识的数组,注意:不能超过100条
  6. stamp: '', //用户签章值 建议以医网签服务端回调给厂商服务端的签章为准
  7. stampPic: '' //用户签章图片 建议以厂商通过医网签服务度回调的签章验签返回的图章为准
  8. }

err: 不通过err回调

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. //uniqueId为第三方同步签名数据到医网签服务端返回的待签名数据唯一标识
  3. var list = [];
  4. list.push(uniqueId)
  5. var listJson = JSON.stringify(list);
  6. var param ={'uniqueIds':listJson}
  7. yWQModule.signData(param,function(ret,err){
  8. alert(JSON.stringify(ret));
  9. });

补充说明

此接口需要访问网络并且跳转到原生模块的界面,异步调用 callback 需要一段时间才能返回

可用性

iOS系统,Android系统

同步接口

openIndex

进入医网签证书管理首页

openIndex()

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. yWQModule.openIndex();

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

onpenPage

启动证书管理对应页面

onpenPage({params})

params

page:

  • 类型:int
  • 描述:(必须)启动证书管理的对应页面(可以配合判断是否存在证书已经获取用户信息的接口使用)

    1. //0 首页
    2. //1 证书下载
    3. //2 证书找回
    4. //3 设置签章

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. yWQModule.openPage({
  3. page: 0
  4. };

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

existsCert

判断当前是否存在本地证书

existsCert()

return

ret

  • 类型:boolean
  • 描述:true-当前存在本地证书, false-当前本地不存在证书

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. var ret = yWQModule.existsCert();
  3. var tip = ret?'当前存在证书':'当前不存在证书'
  4. alert(tip)

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

getUserInfo

获取用户信息

getUserInfo(callback(ret,err))

return

ret:

  • 类型:JSON 对象
  • 描述:有对应数据-当前存在本地证书, 可以根据用户的到期时间以及提前更新开放时间,判断是否需要调用openPage()方法进入证书更新页面

  • 内部字段:

  1. {
  2. status; //状态码,为“0”时成功,1001-证书不存在,
  3. message;//返回说明
  4. openId; //用户唯一标识
  5. userName; //用户名
  6. startTime; //证书颁发时间
  7. endTime; //证书有效时间
  8. nowTime; //医网签服务器当前时间
  9. certUpdateTipDay; //证书更新􏰀前􏰀醒天数。假设为 30 天, 即证书到期前 30 天可以进行证书更新操作
  10. existsStamp;//当前用户是否已经设置个人签章
  11. }

err: 不通过err回调

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. yWQModule.getUserInfo(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

clearCert

清除本地证书

clearCert()

return

ret:

  • 类型:string
  • 描述:有值,则表示成功删除了本地证书并且返回用户的唯一标识openId, 返回值为空或者undefined则表示本地没有证书

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. var ret = yWQModule.clearCert();

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

clearPin

清除用户在签名过程中在本地保存的密码

clearPin()

return

ret:

  • 类型:boolean
  • 描述:true-成功删除了用户在本地保存的签名密码, false-当前本地不存在证书

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. var ret = yWQModule.clearPin();

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

isPinExempt

判断用户当前是否处于免密签名状态

isPinExempt()

return

ret:

  • 类型:boolean
  • 描述:true-当前用户处于免密签名状态, false-其他(android由于平台差异可能会返回null)

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. var ret = yWQModule.isPinExempt();

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

getVersion

获取当前SDK对应的业务版本号()

getVersion()

return

ret:

  • 类型:string
  • 描述:当前SDK对应的业务版本号

示例代码

  1. var yWQModule = api.require('yWQModule');
  2. var ret = yWQModule.getVersion();

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

返回码说明

0:

  • 类型:string
  • 描述:业务操作成功

1001

  • 类型:string
  • 描述:证书不存在

1002

  • 类型:string
  • 描述:签章不存在

1003

  • 类型:string
  • 描述:参数为空

1004

  • 类型:string
  • 描述:程序运行缺少权限

1006:

  • 类型:string
  • 描述:批量签名数量错误—不能大于 100 条

2001:

  • 类型:string
  • 描述:网络异常

2002:

  • 类型:string
  • 描述:当前二维码业务医网签无法处理

3000:

  • 类型:string
  • 描述:用户取消操作

003x070:

  • 类型:string
  • 描述:当前待签数据状态异常,请联系管理员查询原因

004x001:

  • 类型:string
  • 描述:用户证书异常(用户需要重新下载或找回)

004x009:

  • 类型:string
  • 描述:用户证书被停用

004x030:

  • 类型:string
  • 描述:用户证书已过期(需要引导用户进行证书更新)

002x033:

  • 类型:string
  • 描述:用户证书已被注销

002x039:

  • 类型:string
  • 描述:当前设备不是用户绑定的设备(用户可能在别的设备上进行了 找回证书操作,可以引导用户进行证书找回)