H5 号码校验

1. H5号码校验流程

1.1 流程说明

1)业务方 h5 集成取号 js sdk;
2)js sdk 向认证服务端发起取号请求,取号成功后认证服务端返回临时凭证、手机号掩码等;
3)用户授权并输入完整的手机号码,授权页面发起请求获取token,认证服务端返回token并返回业务方页面;
4)业务方服务端发起token校验请求,认证服务端校验通过后返回输入的手机号是否是本机号;

1.2 概览

1.3 流程图

2. 引入JS

简要描述

<!-- H5号码校验 -->
<script src='https://static.bitlib.cc/h5/universal.verify.min.js>'></script>

⚠️请勿将JS文件下载至本地

最新版本请查看版本更新日志:最新版

3. 初始化 JS SDK 并获取 token

获取appKey

<script>
    new Verify({ appKey: '填写你的Key'}).init().then(res => {
      // accessCode 
      // resultCode 
      // msg 
      // operatorType
    }).catch(error => {
      // 出错,请使用其他方式(如短信验证码)
    });
</script>

返回示例

{
    "accessCode":"ce8cebfd12c7c0a857c0ea4c8840e6b8",
    "operatorType": "CM",
    "resultCode": "0",
    "msg": "调用成功"
}

返回参数说明

参数名 类型 说明 是否必传
resultCode int 状态码,0:成功,其他状态码为失败
msg string 状态码描述信息
accessCode string 透传给服务端用于校验用户输入的号码是否为本机号码
operatorType string CM / CU / CT,分别表示中国移动,中国联通,中国电信

4. 授权说明(隐私协议中添加)

隐私协议

中国移动条款名称 《中国移动认证服务条款》

地址:https://wap.cmpassport.com/resources/html/contract.html

中国联通条款名称:《联通统一认证服务条款》

地址:https://opencloud.wostore.cn/authz/resource/html/disclaimer.html?fromsdk=true

中国电信条款名称:《天翼账号服务与隐私协议》

地址:https://e.189.cn/sdk/agreement/detail.do?hidetop=true

5. 校验手机号接口(服务端调用)

简要描述

直接用预取号获取的 accessCode 验证用户号码

访问授权说明 IP 授权:是,服务端调用

请求URL

POST https://api.bitlib.cc/api/v1/auth/verify

Content-Type:application/json

请求参数示例:

  {
    "key":"813994709***412f2e7390143e230851",
    "code":"0",
    "token":"419e6da***91411297ec609184792a52",
    "operator_type":"CU",
    "msg":"调用成功",
    "mobile_verify":"13900001234",
    "timestamp":"16151***70076",
    "sign":"3b1bebfb2336***87ff3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8"
}

请求参数说明:

参数名 必选 类型 是否参与签名 说明
key String 应用 key
code String 接口 precheck 返回值
token String 接口 precheck获取到的 accessCode (code=0 时必填)
operator_type String 接口 precheck 返回值,SDK 侧 接口获取,CU:联通,CT: 电信,CM:移动(code=0 时必填)
mobile String 接口 precheck 返回值,脱敏手机号,未返回时填000**0000
msg String 接口 precheck 返回值
mobile_verify String 待校验的手机号
timestamp String 时间戳
sign String \ 参数RSA加密值,加密算法:sign=RSA(key=值\&mobile=值\&operator_type=值& timestamp=值\&token=值,RSA_Private_key) 转16进制大写,签名算法为:SHA256withRSA。需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。其中 RSA_Private_key是合作方的RSA 私钥,合作方需要向平台提供RSA 公钥,用于访问接口时的验签

返回示例

{
    "code": 0,
    "msg": "",
    "verify":"bc4c1aceed723941a8e480b898c53b4c"
}

返回参数说明

参数名 类型 说明
code int 状态码,0:成功,其他状态码为失败
msg string 状态码描述信息
verify string 服务端采用业务端提供的公钥加密,业务端需要使用私钥解密,解密结果值: 0:一致;1:不一致;2:无法判断

6. 常见问题

  1. 是否支持wifi环境下使用?
    答:仅支持数据流量下使用,不支持wifi、热点环境下使用。请提醒用户请勿在wifi环境下使用。

  2. 用户处于蜂窝数据网络为什么获取token失败?
    答:①检查设备是否链接了VPN网络,VPN环境下可能会导致获取token失败;②网络环境差可能会导致取号请求超时。

  3. 返回“referer校验失败”是什么原因?
    答:请检查使用的referer与报备的集成页面地址不完全一致,请使用报备的referer或联系运营同事更换报备地址。

  4. token校验接口返回“验证签名失败”是什么原因?
    答:①使用的公钥与报备内容是否一致;②建议使用RSA工具类生成签名。

  5. token校验接口返回“token不存在”、“token失效”是什么原因?
    答:可能为token失效。

7.相关工具

公私钥生成及RSA工具类请参考开发工具包中的: RSA帮助文档

results matching ""

    No results matching ""