二、认证接口

认证接口主要是接入系统和U聊服务器之间相互认证、信息交互的接口。

2.1 系统认证和绑定

联系U聊开发团队获取系统唯一标识和密码同时,U聊已经和此平台做了绑定,无需特殊处理

2.2 用户绑定

U聊系统使用各组织OA系统账号,在和各系统对接时候,已经导入。如果接入平台同样使用OA系统用户,则不需要做特殊处理,否则需要再各平台做U聊账号到各平台用户映射。

2.3 安全

服务后端接口调用建立在https基础上,保证系统安全。

2.3.1 平台调用U聊接口安全问题

平台通过申请开通时候的系统唯一标识和密码做系统签到,得到apikey凭证,在系统签退前,通过apikey作为调用U聊接口认证凭证(具体参考接口参数)。

2.3.2 U聊调用平台接口安全问题

  • 平台设置IP白名单,只信任U聊服务器发来的消息
  • 类似U聊,平台提供签到、签退功能,生成调用凭证,在有效期内通过此凭证调用

2.3.3 平台在客户端中运行安全问题

客户端交互参考如下时序

  1. 平台的前端页面嵌入U聊客户端中,客户端发起链接点击,平台前端需要先判断浏览器cookie是否有效,如果有效表明已经登陆,直接做业务操作,如果无效,需要从平台前端通过JS向U聊客户端框架拿到校验码后带上这个参数跳转到平台后端。
  2. 平台后端拿到校验码这个参数后,拿校验码向U聊后台询问此次链接点击是否合法,如果合法,U聊服务器会返回用户信息。
  3. 使用U聊服务器返回的客户信息,平台做模拟登陆后做正常业务,同时把用户信息存入cookie。

具体流程图如下:

2.3.4 平台页面接入U聊约束

  1. 为确保安全,对接系统嵌入U聊中的页面,请使用HTTPS发布
  2. 由于手机系统的安全控制,HTTPS证书必须由可信证书颁发机构颁发,并可通过浏览器默认安全检查。
  3. 对于HTTPS中引用的资源,请注意浏览器的本身安全规范约束,如不能引用HTTP资源、不能引入其他域名地址下的资源(否则带来跨域问题)、不能引用浏览器不可获资源(比如,google analytics访问分析需要引入的资源由于众所周知的原因国内可能无法访问,请不要引入)

2.4 接口详情

2.4.1 获取校验码接口

JS接口,使用cordova框架调用。服务号平台系统前端内嵌在客户端浏览器中,通过JS脚本调用获取校验码。

  • 提供方:U聊客户端
  • 发起方:接入系统页面JS
  • 接口路径:
  • 调用方式:JS
  • 请求格式:参考附件JS调用案例cordovaExec方法
  • 请求编码:UTF-8
  • 请求参数:参考附件JS调用案例cordovaExec方法
  • 应答格式:application/json;charset=UTF-8
  • 应答编码:UTF-8
  • 应答数据:
    1. status:应答码,0表示成功,非0时异常信息见msg
    2. msg:异常信息
    3. security:校验码

2.4.2 校验码验证接口

核对校验码是否是服务器颁发的,是否有效。

  • 提供方:U聊服务端
  • 发起方:接入系统
  • 接口路径:/upchat-public-gateway/api/app/checksecurity
  • 调用方式:HTTP POST
  • 请求格式:application/x-www-form-urlencoded;charset=utf-8
  • 请求编码:UTF-8
  • 请求参数:
    1. apikey:消息发送凭据
    2. security:校验码
  • 应答格式:application/json;charset=UTF-8
  • 应答编码:UTF-8
  • 应答数据:
    1. status:应答码,0表示成功,非0时异常信息见msg
    2. msg:异常信息;
    3. userinfo:用户信息

2.4.3 获取关注用户列表接口

获取平台关注用户列表。

  • 提供方:U聊服务端
  • 发起方:接入系统
  • 接口路径:/upchat-public-gateway/api/app/getattentions
  • 调用方式:HTTP POST
  • 请求格式:application/x-www-form-urlencoded;charset=utf-8
  • 请求编码:UTF-8
  • 请求参数:
    1. apikey:消息发送凭据
  • 应答格式:application/json;charset=UTF-8
  • 应答编码:UTF-8
  • 应答数据:
    1. status:应答码,0表示成功,非0时异常信息见msg
    2. msg:异常信息;
    3. userlist:关注用户列表

 

2.4.4 OpenApp校验码验证接口

核对校验码是否是服务器颁发的,是否有效。

  • 提供方:U聊服务端
  • 发起方:接入系统
  • 接口路径:/upchat-public-gateway/api/app/checkOpenSecurity
  • 调用方式:HTTP POST
  • 请求格式:application/x-www-form-urlencoded;charset=utf-8
  • 请求编码:UTF-8
  • 请求参数:
    1. app_id: OpenApp的标识
    2. app_secret: OpenApp消息发送凭据
    3. security: 校验码
  • 应答格式:application/json;charset=UTF-8
  • 应答编码:UTF-8
  • 应答数据:

    1. status:应答码,0表示成功,非0时异常信息见msg
    2. msg:异常信息;
    3. userinfo:用户信息,包括uoid-用户OpenApp唯一id,fname-姓氏,gender-性别,1-男,0-女

      
      {
       "status":"0",
       "msg":"成功",
       "userinfo":{
           "uoid":"uoid-xxxxxxxxxxx",
           "fname":"陈",
           "gender":"1"
       }
      }
      

2.4.5 获取组织架构树

  • 接口路径:upchat-public-gateway/api/org/getorgtree
  • 调用方式:HTTP POST
  • 请求格式:application/x-www-form-urlencoded;charset=utf-8
  • 请求编码:UTF-8
  • 请求参数:
    1. apikey: 公众号身份码
    2. fetchall: 是否获取全量组织架构(0:获取可见范围内的组织架构 1:获取全量组织架构)
  • 应答格式:application/json;charset=UTF-8
  • 应答编码:UTF-8
  • 应答数据:

    1. status:应答码,0表示成功,非0时异常信息见msg
    2. msg:异常信息;
    3. version:版本号
    4. org:{"xxxx" : "xxxx"……}

      案例

      {
        "status":"0",
        "msg":"成功",
        "version":"1521615438579",
        "org":{
          "name":"中国银联",
          "code":"22",
          "st":"0",
          "group":"0",
          "isCreate":null,
          "sortNo":"01",
          "chkDisabled":true,
          "children":[
            {
              "name":"U聊团队",
              "code":"33",
              "st":"0",
              "group":"0",
              "isCreate":null,
              "sortNo":"01!01.01",
              "chkDisabled":true,
              "children":null
            }
          ]
        }
      }
      

2.4.6 获取指定组织架构人员列表

  • 接口路径:upchat-public-gateway/api/org/{orgid}/members
  • 调用方式:HTTP POST
  • 请求格式:application/x-www-form-urlencoded;charset=utf-8
  • 请求编码:UTF-8
  • 请求参数:

    1. apikey: 公众号身份码
    2. orgid: 组织架构id
  • 应答格式:application/json;charset=UTF-8

  • 应答编码:UTF-8
  • 应答数据:

    1. status:应答码,0表示成功,非0时异常信息见msg
    2. msg:异常信息;
    3. userlist:{"xxxx" : "xxxx"……}

      案例

      {
        "status":"0",
        "msg":"成功",
        "userlist":[
          {
            "uid":"avc",
            "userid":"aaa",
            "empname":"a",
            "empcode":"0000000",
            "orgid":"1111",
            "remark":"cc/dd",
            "otel":"11111111111",
            "oemail":"aaa@XXXX.com",
            "pemail":"aaa@XXXX.com",
            "mobileno":"111111111",
            "gender":"1",
            "degree":null,
            "pinyin":"aaaaaa",
            "domain":"unionpay"
          },
          …………
        ]
      }
      

results matching ""

    No results matching ""