服务端
公共请求头
在Http Request Header
中配置以下参数
字段 | 格式 | 必填 | 描述 | 备注 |
---|---|---|---|---|
x-adm-appid | String | 是 | SDK应用id | - |
x-adm-ts | String | 是 | 请求毫秒时间戳, GMT+8 | - |
x-adm-once | String | 是 | 请求唯一数, 防止请求重放 | - |
x-adm-sign | String | 是 | 请求签名 | - |
注:
- x-adm-ts 有效期:出于安全性考虑,每个 x-adm-ts 的有效期为 5 分钟(用 x-adm-ts 计算),同时 x-adm-ts 要与标准时间同步,否则时间相差太大,服务端会直接认为 x-adm-ts 无效;
公共返回格式
Http响应统一采用JSON格式, 格式如下
标识 | 描述 |
---|---|
code | 操作结果编码 |
message | 提示信息 |
data | 结果集 |
返回值状态码
标识 | 描述 |
---|---|
200 | 成功 |
-1 | 失败 |
-1001 | 请求无效, message中会有提示 |
-1002 | 请求过期 |
-2001 | access token 无效 |
-3001 | 账号余额不足 |
其他值 | 都代表失败, message中会有对应信息 |
注:
- 服务端请根据状态码自定义操作逻辑, 建议不要把开放API的message直接返回给客户端
签名介绍
- 把
x-adm-appid
,x-adm-once
,x-adm-ts
的请求头字段和值放入集合中, 根据ASCII编码排序 - 把排序后的集合进行键值对拼接, 得到head1=value1&header2=value&head3=value3, 记为
stringToSign
- 把
stringToSign
拼接APP密钥
, 该密钥在开发者后台提供 - 把最终的
stringToSign
进行MD5大写输出, 即得到签名值, 把改签名值放入请求头x-adm-sign
代码示例:
SortedMap<String, String> sortedMap = new TreeMap<>();
sortedMap.put(HttpRequestHeader.appId, request.getHeader(HttpRequestHeader.appId));
sortedMap.put(HttpRequestHeader.once, request.getHeader(HttpRequestHeader.once));
sortedMap.put(HttpRequestHeader.timeStamp, request.getHeader(HttpRequestHeader.timeStamp));
StringBuilder sb = new StringBuilder();
for (String key : sortedMap.keySet()) {
Object value = sortedMap.get(key);
if (value == null) {
continue;
}
if (sb.length() > 0) {
sb.append("&");
}
String valueString = String.valueOf(value);
sb.append(key).append("=").append(valueString);
}
sb.append(secret);
return DigestUtils.md5Hex(sb.toString()).toUpperCase();
接口列表
获取手机号
http://open.yuyan.admobile.top/api/getMobile [POST, application/json]
请求Json参数:
字段 | 格式 | 必填 | 描述 | 备注 |
---|---|---|---|---|
accessToken | String | 是 | 客户端调用一键登录SDK拿到的accessToken | - |
outerId | String | 否 | 外部记录流水号 | - |
返回值
字段 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | Integer | 200 | 状态码 |
message | String | success | 状态码的描述 |
data | GetMobileResult结构体 | - | - |
GetMobileResult
字段 | 类型 | 示例值 | 描述 |
---|---|---|---|
phoneNumber | String | 188****8888 | 状态码 |
校验手机号
http://open.yuyan.admobile.top/api/verifyMobile [POST, application/json]
请求Json参数:
字段 | 格式 | 必填 | 描述 | 备注 |
---|---|---|---|---|
accessToken | String | 是 | 客户端调用一键登录SDK拿到的accessToken | |
phoneNumber | String | 是 | 手机号 | - |
outerId | String | 否 | 外部记录流水号 | - |
返回值
字段 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | Integer | 200 | 状态码 |
message | String | success | 状态码的描述 |
data | VerifyMobileResult结构体 | - | - |
VerifyMobileResult
字段 | 类型 | 示例值 | 描述 |
---|---|---|---|
status | String | PASS | PASS:一致, REJECT:不一致, UNKNOWN:无法判断 |