H5/小程序/快应用

一键登录流程

1) 客户端通过预取号接口获取 accessCode;

2) 客户端回传 accessCode 至服务端;

3) 服务端通过用户信息接口获取用户信息,并返回客户端。

[info] 温馨提示

文档中所有接口均在服务端调用,校验IP白名单及签名校验。

1. 预取号接口

简要描述

该方法用于获取 accessCode, accessCode 将用于号码认证接口

访问授权说明 IP 授权:否, SDK 客户端封装使用,接受请求重定向

请求URL

POST http://***/api/v1/***

Content-Type:application/json

请求参数示例

{
    "key":"813994709c7****e7390143e230851",
    "platform":1,
    "timestamp":"161512***70076",
    "packname":"cn.bitlib.demo",
    "packsign":"dbc58e3e9d***79ad91f294acc3551e3",
    "format":"json",
    "sign":"3b1bebfb2336***3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8"
}

请求参数说明

参数名 必选 类型 是否参与签名 说明
key String 应用 key
platform Integer iOS(0)Android(1) 根据客户端类型传相应的参数
bundleid String IOS 平台 Bundle ID 必填,如果是H5,可不传该参数
packname String Android 平台 apk 包名必填,如果是H5,可不传该参数
packsign String Android 平台 apk 签名必填,如果是H5,可不传该参数
format String 预取号返回结果类型,默认返回jsonp格式,如需返回json,请传值“json”
callback String format参数如果不为json,则返回默认的jsonp请求,用于解决H5跨域请求问题,此时callback的默认返回值为reply,可通该参数自定义callback名称。format参数如果为json,则该参数始终返回空字符串。
timestamp String 时间戳
sign String / 参数RSA加密值,加密算法:sign=RSA(key=值\&platform=值& timestamp=值,RSA_Private_key) 转16进制大写,签名算法为:SHA256withRSA。需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。其中 RSA_Private_key是合作方的RSA 私钥,合作方需要向平台提供RSA 公钥,用于访问接口时的验签

该接口如果请求成功会先返回302重定向,从Header中获取Location用于重定向请求,重定向的请求才会返回如下结果。 该接口如果请求失败则会返回相应的状态码及错误信息。

返回示例 成功:

{
    "code":"0",
    "msg:"",
    "accessCode":"419e6dacb191411297ec609184792a52",
    "operatorType":"CM",
    "mobile":"139****1234"
 }

失败:

{
    "code":"-2",
    "msg:"错误信息"
 }

返回参数说明

参数名 类型 说明
code int 状态码,0:成功,其他状态码为失败
msg string 返回状态描述,code 不为 0 对应错误描述
accessCode string 授权码,成功时返回,用于号码认证
operatorType string 运营商标识,成功时返回,用于号码认 证, CU 代表联通,CT 代表电信,CM 代表移动
mobile string 脱敏手机号 139_****_1234
msgId string 随机表示,code 不为 0 对应错误描述

2. 置换手机号接口

简要描述

直接用预取号获取的 accessCode 换取用户信息

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

请求URL

POST http://***/api/v1/***

Content-Type:application/json

请求参数示例:

  {
    "key":"813994709c7***2f2e7390143e230851",
    "code":"0",
    "token":"419e6dacb1914***97ec609184792a52",
    "operator_type":"CM",
    "mobile":"139****1234",
    "msg":"调用成功",
    "msg_id":"",
    "timestamp":"1615***070076",
   "sign":"3b1bebfb233617a***f3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8"
}

请求参数说明:

参数名 必选 类型 是否参与签名 说明
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 返回值,脱敏手机号(code=0时必填)
msg String 接口 precheck 返回值
msg_id String 接口 precheck 返回值,或标识请求随机数
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": "",
    "phone":"bc4c1aceed723941a8e480b898c53b4c"
}

返回参数说明

参数名 类型 说明
code int 状态码,0:成功,其他状态码为失败
msg string 状态码描述信息
phone string 服务端采用业务端提供的公钥加密,业务端需要使用私钥解密

3. 校验手机号接口

简要描述

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

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

请求URL

POST http://***/api/v1/auth/verify

Content-Type:application/json

请求参数示例:

  {
    "key":"813994709***412f2e7390143e230851",
    "code":"0",
    "token":"419e6da***91411297ec609184792a52",
    "operator_type":"CU",
    "mobile":"139****1234",
    "msg":"调用成功",
    "msg_id":"",
    "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 返回值,脱敏手机号(code=0时必填)
msg String 接口 precheck 返回值
msg_id 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:无法判断

4.相关工具

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

results matching ""

    No results matching ""