1. 服务端接口
1.1. 移动认证服务端接口
1.1.1. 获取用户登录手机号码的接口
简要描述
- 获取用户登录手机号码的接口
请求URL
请求方式
- POST+json,Content-type设置为application/json
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
channel | 是 | string | 运营商类型: (0:移动),(1:电信),(2:联通) |
platform | 是 | string | 平台编号: IOS (0, "ios"), ANDROID (1, "android") |
app_key | 是 | string | 应用APPKEY |
auth_code | 否 | string | 校验码,当运营商类型为1时,必填 |
token | 是 | string | 身份标识,获取用户信息 |
sign | 是 | string |
除sign 外其它参数的 RSA 加密值, 加密算法如下: sign=RSA(app_key+auth_code+channel+platform+token,RSA_Private_key) 转16进制。 签名算法为:SHA256withRSA。 需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。 其中 RSA_Private_key是合作方的 RSA 私钥,合作方需要向开放平台提供 RSA 公钥,用于访问接口时的验签 |
{
"header": {
"Content-type": application/json,
},
"body": {
"channel":"1",
"platform":"0",
"app_key":"99bfd12b542b36ad35ea378a07edf349",
"auth_code":"1234",
"token":"nm899e6f8f32b44f81972cbe28ca01623a",
"sign":"4B36329C1429512FD24C2C460065F677D3521EC56A91370AFF40E65990AF74C7D12C9F0E6061D2E2C6FE022B66CCD23554249ECA13D5F8FB0E8C7459DD6D25A0309FD6AE73D4918E45EAF85AB7D4DA942B3664966B92CEFC57B7B28CC4EE57186A1B27860FF74698FE6307A85F0DD9D3A13A34397CB8F4F921DC3869BAA9B80"
}
}
返回参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | int | 返回状态码 |
msg | 是 | string | 返回状态码描述信息 |
time | 是 | long | 请求消息发送的系统时间的毫秒值 |
body | 是 | string |
返回体,表示手机号码,加密方式为RSA, 开发者使用在社区配置的加密公钥对应的私钥进行解密, 密钥格式为PSKCS#8,生成密钥位数为1024位(bit),body为16进制字符串。 |
返回示例
{
"header": {
"code": 200,
"msg": "操作成功",
"time": 1561690611021
},
"body": "4B36329C1429512FD24C2C460065F677D3521EC56A91370AFF40E65990AF74C7D12C9F0E6061D2E2C6FE022B66CCD23554249ECA13D5F8FB0E8C7459DD6D25A0309FD6AE73D4918E45EAF85AB7D4DA942B3664966B92CEFC57B7B28CC4EE57186A1B27860FF74698FE6307A85F0DD9D3A13A34397CB8F4F921DC3869BAA9B80"
}
时序图
1.1.2. 校验用户登录号码接口
简要描述
- 校验用户登录号码接口
请求URL
请求方式
- POST+json,Content-type设置为application/json
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
channel | 是 | string | 运营商类型: (0:移动),(1:电信),(2:联通) |
platform | 是 | string | 平台 IOS (0, "ios"), ANDROID (1, "android") |
app_key | 是 | string | 应用APPKEY |
token | 是 | string | 身份标识,获取用户信息 |
phone_num | 是 | string | 手机号 |
sign | 是 | string |
除 sign 外其它参数的 RSA 加密值,加密算法如下: sign=RSA(app_key+channel+phone_num+platform+token,RSA_Private_key)转16进制。 签名算法为:SHA256withRSA, 1024位(bit)。 需要注意参数拼接 key 升序排序,密钥格式为PSKCS#8。 其中 RSA_Private_key 是合作方的 RSA 私钥,合作方需要向开放平台提供RSA公钥,用于访问接口时的验签 |
{
"header": {
"Content-type": application/json,
},
"body": {
"channel":"1",
"platform":"0",
"app_key":"99bfd12b542b36ad35ea378a07edf349",
"token":"nm899e6f8f32b44f81972cbe28ca01623a",
"phone_num":"18123972798",
"sign":"4B36329C1429512FD24C2C460065F677D3521EC56A91370AFF40E65990AF74C7D12C9F0E6061D2E2C6FE022B66CCD23554249ECA13D5F8FB0E8C7459DD6D25A0309FD6AE73D4918E45EAF85AB7D4DA942B3664966B92CEFC57B7B28CC4EE57186A1B27860FF74698FE6307A85F0DD9D3A13A34397CB8F4F921DC3869BAA9B80"
}
}
返回参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | int | 返回状态码 |
msg | 是 | string | 返回状态码描述信息 |
time | 是 | long | 请求消息发送的系统时间的毫秒值 |
body | 是 | string |
返回体,表示校验结果(true/false),加密方式为RSA, 开发者使用在社区配置的加密公钥对应的私钥进行解密, 密钥格式为PSKCS#8,生成密钥位数为1024位(bit),body为16进制字符串。 |
{
"header": {
"code": 200,
"msg": "操作成功",
"time": 1561690611021
},
"body": "4B36329C1429512FD24C2C460065F677D3521EC56A91370AFF40E65990AF74C7D12C9F0E6061D2E2C6FE022B66CCD23554249ECA13D5F8FB0E8C7459DD6D25A0309FD6AE73D4918E45EAF85AB7D4DA942B3664966B92CEFC57B7B28CC4EE57186A1B27860FF74698FE6307A85F0DD9D3A13A34397CB8F4F921DC3869BAA9B80"
}
时序图
1.1.3. 平台返回码说明
返回码 | 返回描述信息 |
---|---|
900001 | 解密运营商返回结果错误 |
900002 | 加签运营商请求错误 |
900003 | xxtea加密请求参数错误 |
900004 | 运营商参数3DesAndBase64加密错误 |
900005 | channel来源渠道参数错误 |
900006 | platform平台类型参数错误 |
900007 | authCode校验码参数错误 |
900008 | 手机号格式不正确 |
900009 | appId错误 |
900010 | token参数错误 |
900011 | 验签失败 |
900012 | token失效 |
900013 | 权限不足 |
900014 | 应用未授权 |
900015 | 参数异常 |
900016 | ip白名单校验失败 |
900017 | 加密失败 |
900018 | 无法获取手机号 |
900019 | 次数不足 |
900020 | 内部错误 |
1.2. 短信验证码接口
1.2.1. 短信通知
简要描述
· 使用短信通知时,调用此API,请求LinkAccount业务平台给指定用户发送短信验证码。
接口类型
表1 接口类型说明
请求方法 | post |
---|---|
请求URL | https://account.linkedme.cc/sms/text/send |
通信协议 | https |
请求参数
表2 请求Header参数说明
参数名称 | 是否必选 | 参数类型 | 默认值 | 说明 |
---|---|---|---|---|
Content-Type | 是 | String | 无 | 固定填application/json; charset=UTF-8 |
表3 请求Body参数说明
参数名称 | 是否必选 | 参数类型 | 默认值 | 说明 |
---|---|---|---|---|
app_key | 是 | String | 无 | appKey |
recipient | 是 | String | 无 | 被叫号码 格式:国家码+手机号码。示例:+8613423222222,如果携带多个接收方号码,则以英文逗号分隔。每个号码最大长度为21位,最多允许携带1000个号码(目前只支持国内号码) |
sign_name | 是 | String | 无 | 签名名称 是用户在LinkAccount平台申请通过的短信签名 |
template_id | 是 | String | 无 | 模版ID 是用户在LinkAccount平台申请通过的短信模版ID |
template_params | 是 | String[] | 无 | 短信模板的变量值列表,用于依次填充“template_id”参数指定的模板内容中的变量,该参数需填写为JSONArray格式 |
status_callback_url | 否 | String | 无 | LinkAccount平台将业务产生的话单推送至此服务器 |
sign | 是 | String | 无 | sign=RSA(app_key+extend+recipient+sign_name+status_callback_url+template_id+template_params, RSA_Private_key),转16进制,签名算法为:SHA256withRSA。需要注意参数拼接 key 升序排序,密钥格式为 PSKCS#8,1024 位(bit),其中 RSA_Private_key 是合作方的 RSA 私钥, 合作方需要向开放平台提供 RSA 公钥,用于访问接口时的验签.(template_params转变为字符串) |
extend | 否 | String | 无 | 用户附属信息,此标识由第三方服务器定义,会在后续的通知消息中携带此信息。不允许携带以下字符:“{”,“}”(即大括号) |
请求实例
{
"app_key":"7e289a2484f4368dbafbd1e5c7d06903",
"recipient":"+8613412345678",
"sign_name":"短信",
"template_id":"45",
"template_params":["1224","你好","2019/12/12","12:12"],
"status_callback_url":"http://requestbin.fullcontact.com/scvavdsc",
"sign":"226964223a202230313233343536372d383961622d636465662d303
132332d343536373839616263646566222c0d0a2020226e616d65223a20226
4656d6f617070222c0d0a2020226f776e6572223a207b0d0a2020202022656d
61696c223a2022757365726e616d65406578616d706c652e636f6d222c0d0a2
0202020226964223a202230313233343536372d383961622d636465662d3031
32332d3435363738396162636464ff",
"extend":"linkedme"
}
参数类型 | 是否必选 | 参数类型 | 默认值 | 说明 |
---|---|---|---|---|
result | 是 | SmsResult[] | 无 | 短信结构体,当返回响应出现异常时不包含此字段 |
表5 SmsResult 定义
参数名称 | 是否必选 | 参数类型 | 默认值 | 说明 |
---|---|---|---|---|
smsMsgId | 是 | String | 无 | 短信的唯一标识 |
originTo | 是 | String | 无 | 接收方号码 |
createTime | 是 | String | 无 | 创建时间(LinkAccount接收到发送短信请求的时间) |
status | 是 | String | 无 | 状态码 |
响应实例
{
"header": {
"code": 200,
"msg": "操作成功",
"success": true,
"alert": true,
"time": 1564486490320
},
"body": {
"result": [
{
"smsMsgId": "7524a9aa-19d1-4be6-bef0-2b0ce5dd6107",
"originTo": "+8613412345678",
"createTime": 1564486490192,
"status": "000000"
}
]
}
}
时序图
平台返回码说明
返回码 | 返回信息描述 |
---|---|
000000 | 成功 |
19 | appKey不能为空 |
21 | 验签失败 |
24 | 验签签名为空 |
1100008 | app_key无效 |
1100016 | 消息发送为空 |
1100018 | 签名名称为空 |
1100020 | 短信接收方号码格式错误 |
1100021 | 短信签名无效 |
1100022 | 模版ID无效 |
1100023 | 模版参数个数不匹配 |
1100024 | 参数值长度超过预设值 |
1100025 | 日期格式错误 |
1100026 | 模版数字格式错误 |
1100030 | 模版ID为空 |
1100041 | ip白名单校验失败 |
1100042 | 公钥为空 |
1300014 | 该号码超出当日发送限制 |
1300015 | 该号码超出小时发送限制 |
1300016 | 该号码超出分钟发送限制 |
200000 | 签名名称不能为空 |
300005 | 模板Code为空 |
900019 | 余额不足 |
-10003 | 验签失败 |
-10004 | ip白名单校验失败 |
-10005 | 公钥为空 |
-10006 | 验签签名为空 |
1.2.2. 短信回调通知
简要描述
· 该接口用于客户接收短信平台主动发送的短信状态报告
· 请求方向 :LinkAccount业务平台 → 客户服务器
· 使用前提: 开发者在开发应用时,若需订阅状态通知,必须要提供状态接收URL(status_callback_url),并且确保URL能够正常处理LinkAccount业务平台发送的通知信息
· 使用限制: 仅支持POST方式
表1 接口类型说明
请求方法 | post |
---|---|
请求URL | 开发者应用接收短信报告状态的URL |
通信协议 | https |
表2 请求Body参数说明
参数名称 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
smsMsgId | 是 | String | 发送短信成功时返回的短信唯一标识 |
total | 是 | String | 长短信拆分后的短信条数。当短信未拆分时该参数取值为1 |
sequence | 是 | String | 长短信拆分后的短信序号,当total参数取值大于1时,该参数才有效。当短信未拆分时该参数取值为1 |
status | 是 | String | 短信状态码 |
msg | 是 | String | 短信报告内容 |
source | 是 | String | 短信状态报告来源 : 1:短信平台自行产生的状态报告。2:短信中心返回的状态报告。3:短信安全管控产生的状态报告。 |
updateTime | 是 | String | 通常为短信平台接收短信状态报告的时间 |
to | 是 | String | 接收方号码 |
extend | 否 | String | 用户附属信息,此参数的值与“语音通知API”中的"extend"参数值一致 |
请求实例
{
"smsMsgId":"e1f27fd2-59cb-4827-b926-4550856e2c44",
"total": "1",
"sequence": "1",
"status": "1300001",
"msg": "用户已成功收到短信",
"source": "2",
"updateTime": "2019-07-27",
"extend": "linkedme",
"to": "+8613412345678"
}
平台返回码说明
返回码 | 返回信息描述 |
---|---|
1300001 | 用户已成功收到短信 |
1300002 | 短信已超时 |
1300003 | 短信已删除 |
1300004 | 短信递送失败 |
1300005 | 短信已接收 |
1300006 | 短信发送失败 |
1300007 | 短信被拒绝 |
1300008 | 平台内部路由错误 |
1300009 | 号码达到分钟下发限制 |
1300010 | 号码达到下发限制 |
1300011 | 短信关键字拦截 |
1300012 | 号码黑名单 |
1300013 | 手机号码不合法 |
1.3. 语音验证码接口
1.3.1. 语音通知
简要描述
· 使用语音通知功能时,调用此API,请求LinkAccount业务平台给指定用户播放语音通知。
接口类型
表1 接口类型说明
请求方法 | post |
---|---|
请求URL | https://account.linkedme.cc/sms/voice/send |
通信协议 | https |
请求参数
表2 请求Header参数说明
参数名称 | 是否必选 | 参数类型 | 默认值 | 说明 |
---|---|---|---|---|
Content-Type | 是 | String | 无 | 固定填application/json; charset=UTF-8 |
表3 请求Body参数说明
参数名称 | 是否必选 | 参数类型 | 默认值 | 说明 |
---|---|---|---|---|
recipient | 是 | String | 无 | 被叫号码 格式:国家码+手机号码。示例:+8613423222222 |
template_id | 是 | String | 无 | 语音通知模板ID,用于唯一标识语音通知模板 |
template_params | 是 | String[1-10] | 无 | 语音通知模板的变量值列表,用于依次填充templateId参数指定的模板内容中的变量,该参数需填写为JSONArray格式 |
app_key | 是 | String | 无 | appKey |
status_callback_url | 否 | String | 无 | LinkAccount平台将业务产生的话单推送至此服务器 |
sign | 是 | String | 无 | sign=RSA(app_key+extend+recipient+status_callback_url+template_id+template_params, RSA_Private_key),转16进制,签名算法为:SHA256withRSA。需要注意参数拼接 key 升序排序,密钥格式为 PSKCS#8,1024 位(bit),其中 RSA_Private_key 是合作方的 RSA 私钥, 合作方需要向开放平台提供 RSA 公钥,用于访问接口时的验签.(template_params中的参数用逗号隔开) |
extend | 否 | String | 无 | 用户附属信息,此标识由第三方服务器定义,会在后续的通知消息中携带此信息。不允许携带以下字符:“{”,“}”(即大括号) |
请求实例
{
"recipient": "15970704470",
"app_key": "7e289a2484f4368dbafbd1e5c7d06903",
"status_callback_url": "http://requestbin.fullcontact.com/scvavdsc",
"extend": "linkedme",
"sign":"226964223a202230313233343536372d383961622d636465662d30
3132332d343536373839616263646566222c0d0a2020226e616d65223a2
02264656d6f617070222c0d0a2020226f776e6572223a207b0d0a202020
2022656d61696c223a2022757365726e616d65406578616d706c652e63
6f6d222c0d0a20202020226964223a202230313233343536372d383961
622d636465662d303132332d3435363738396162636464ff",
"template_id": "TTS01",
"template_params": [
"2222"
]
}
响应参数
表4响应结果参数
参数名称 | 是否必选 | 参数类型 | 默认值 | 说明 |
---|---|---|---|---|
sms_msg_id | 是 | String | 无 | 请求返回的会话sms_msg_id,如果请求失败,则sms_msg_id为空 |
status | 是 | String | 无 | 请求返回的结果码 |
响应实例
{
"header": {
"code": 200,
"msg": "操作成功",
"success": true,
"alert": true,
"time": 1564108757224
},
"body": {
"sms_msg_id": "977713dc-386b-4a3e-b6a0-a783629c2c87",
"status": "000000"
}
}
时序图
平台返回码说明
返回码 | 返回信息描述 |
---|---|
000000 | SUCCESS |
19 | appKey不能为空 |
21 | 验签失败 |
24 | 验签签名为空 |
300006 | 参数格式不正确 |
300007 | 模版ID不能为空 |
300008 | 模版不存在 |
900019 | 余额不足 |
1100008 | app_key无效 |
1100017 | 短信接收方号码为空 |
1100020 | 短信接收方号码格式错误 |
1100039 | 语音信息设置失败 |
1100041 | ip白名单校验失败 |
1100042 | 公钥为空 |
110036 | 语音播放信息为空 |
-10006 | 验签签名为空 |
1.3.2. 语音回调通知
简要描述
· 用户通话结束后,LinkAccount业务平台通过此接口向SP推送通话的状态信息
**· 请求方向 :LinkAccount业务平台(客户端) → 客户服务器(服务端)
· 使用前提: 开发者在开发应用时,若需订阅状态通知,必须要提供状态接收URL(status_callback_url),并且确保URL能够正常处理LinkAccount业务平台发送的通知信息
· 使用限制: LinkAccount业务平台推送话单信息给开发者应用,仅支持POST方式
表1 接口类型说明
请求方法 | post |
---|---|
请求URL | 开发者应用接收通话状态通知的URL |
通信协议 | https |
表2 请求Body参数说明
参数名称 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
msgId | 是 | String | 通话链路的唯一标识 |
status | 是 | Integer | 通话状态 0:成功接听, 1:未接听, 2:其他原因 |
callerNum | 是 | String | 主叫号码,号码为全局号码格式(包含国家码) |
to | 是 | String | 被叫号码,号码为全局号码格式(包含国家码) |
callOutStartTime | 是 | String | 呼出开始时间 |
callEndTime | 是 | String | 呼叫结束时间, 时间格式为“yyyy-MM-dd HH:mm:ss” |
extend | 否 | String | 用户附属信息,此参数的值与“语音通知API”中的"extend"参数值一致 |
请求实例
{
"msgId": "11fb06c3-b5ca-4822-99fe-15000cc43d83",
"status": 0,
"callerNum": "+8631180985016",
"to": "+86134123456578",
"callOutStartTime": "2019-07-29 06:27:08",
"callEndTime": "2019-07-29 06:27:21",
"extend": "linkedme"
}
平台返回码说明
返回码 | 返回信息描述 |
---|---|
0 | 成功接听 |
1 | 未接听 |
2 | 其他原因 |