本文将为您介绍H5本机号码校验SDK的相关内容。

引入JSSDK

您需要在H5页面中集成号码认证服务的JSSDK,并在服务端完成API对接。有两种集成JSSDK的方法,您可任选其中一种:
  • 静态资源引入。登录号码认证产品控制台,在标准版选项卡下载并解压H5端 JSSDK,将解压后文件中的js文件引入项目目录。
    <script type="text/javascript" charset="utf-8" src="xxx/numberAuth-web-sdk-1.0.3.js"></script>
  • npm引入。下载npm资源:nmp资源
    //加载npm资源
    npm i aliyun_numberauthsdk_web
    为保证服务正常使用,在您的HTML代码head标签中增加以下代码:
     <meta name="referrer" content="origin">

SDK接口功能示例及参数说明

在H5本机号码校验SDK接口的整个过程中,您需要先关闭Wi-Fi连接再开启移动数据。
  • 初始化实例
    // 初始化实例
    var PhoneNumberServer = window.PhoneNumberServer; //引用静态资源包
    //引用npm包
    import { PhoneNumberServer } from 'aliyun_numberauthsdk_web';  //ES6
    
    var PhoneNumberServer = require('aliyun_numberauthsdk_web'); //ES5
    var phoneNumberServer = new PhoneNumberServer();
    设置SDK是否开启日志。开启后会在控制台打印更多内容便于排查问题。
    phoneNumberServer.setLoggerEnable();
    参数说明:
    参数 说明
    isEnable 默认true(开启日志)
  • 获取号码认证SDK版本号
    var sdkVersion = phoneNumberServer.getVersion();  //返回SDK版本号,例如'1.0.0'
  • 身份鉴权
    //调用之前先去用户服务端获取accessToken和jwtToken
    phoneNumberServer.checkAuthAvailable({
        phoneNumber: '151********',
        accessToken: 'XXXXXXXXxx',
        jwtToken:'******',
        success:function(res){
          console.log(res);
        }
        error: function(res){ 
        }  
    });
    参数名称及说明:
    参数名称 说明
    phoneNumber 本机号码
    AccessToken 号码认证业务鉴权Token由阿里云对外暴露的getAuthToken接口生成
    JwtToken API鉴权Token由阿里云对外暴露的getAuthToken接口生成
    timeout 可选参数(默认为10s)
    success 成功回调
    error 失败回调
  • 获取本机号码校验Token
    注意 身份鉴权成功后才可调用获取Token接口。
    phoneNumberServer.getVerifyToken({
        success:function(res){
        console.log(res)
        }   
        error: function(res){
        }
    });
    参数名称及说明:
    参数名称 说明
    success 成功回调
    error 失败回调
    返回参数及说明:
    返回参数 说明
    code 成功6000
    spToken 运营商Token
    content 失败时运营商返回的内容

返回码及说明

返回码 说明
600000 成功返回code
600004 方案号不存在
600009 无法判断运营商
600010 未知异常
600011 获取Token失败
600013 运营商维护升级,该功能不可用
600014 运营商维护升级,该功能调用次数已达上限
600015 调用接口超时
600025 接入方身份信息校验失败
600008 环境错误(未在蜂窝网络下使用或未使用手机浏览器)
600028 入参错误(未传入手机号码,accessToken,jwtToken)

常见问题

为什么使用中国联通4G网络,依然获取不到本机号码校验Token?

原因有以下几种:
  • 使用了物联网卡(通过装置在各类物体上的SIM卡、传感器、二维码等,经过接口与无线网络连接,可以实现人与物体、物体与物体间的沟通和对话。)。
  • 中国联通不支持接入点为wap的网络取号。
  • UC和QQ浏览器开启免流模式可能会导致取号不成功。

运营商错误码及说明

中国移动
错误码 说明
500 取号失败,可能原因有以下几种:
  • 传入的Referrer和创建方案号的URL不一致
  • 当前连网的可能不是中国移动的蜂窝网络
0 请求异常
999999 系统错误
130032 参数解析错误
130018 签名验证失败
130030 参数无效
110028 AppId不存在
中国联通
错误码 说明
100001 应用鉴权错误或获取Token失败
100002 未进行初始化操作
100003 请求超时
100009 未知错误
200001 初始化失败
错误详细码表
错误详细码(RespCode) 说明
102 客户端类型错误
104 clientId错误
106 请求时间超时
107 鉴权信息错误
108 应用签名错误
110 Referer未报备
111 网络环境错误(非移动数据环境,例如Wi-Fi)
113 客户端无权限
1002 网关错误
1003 预取号错误
1004 AccessCode错误
1011 数据解析错误
1012 网络环境错误(1012是公网IP错误)
1013 网络环境错误(私网IP错误)
中国电信
错误码 说明
30002 无法识别用户网络,返回两个重定向异网取号地址
30901 Code换Tokenfail(Code已经使用或者Code超过10分钟未使用)
-64 没有权限(天翼账号平台未授权应用访问权限)
-20005 签名非法
-10001 取号失败
-10002 参数错误
-10003 解密失败
-10004 无效的IP
-10005 异网授权回调参数异常
-10006 授权失败且属于中国电信网络
-10007 重定向到异网取号
-10008 超过预设取号阈值
-10009 时间戳过期
-20005 签名非法
-20006 应用不存在
-20007 公钥数据不存在
-20100 内部解析错误
-20102 加密参数解析失败
-30001 非法的时间戳
51002 参数为空
51114 无法获取手机号数据

更多运营商错误码请参见运营商SDK错误码