服务端接口
服务端对接人: 王金波wangjinbo@wifi.com
环境设置
接口参数大小写敏感 request 和 response 的编码格式为 UTF-8
demo代码
java:
wifi_demo.zip
sdk:
login-sdk.jar
接口路由映射
接口以请求参数pid为路由,URL只是规定了接口安全规范,
比如https://oauth.51y5.net/open-sso/fa.scmd 表示接口需要签名
公共返回头:
正确形式:
{
"retCd":"0",
...(业务字段)...
}
错误形式:
{
"retMsg":"xxxxxxx!",
"retCd":"H.USER.0001"
}
接口列表
获取AccessToken (getAccessToken)
accessToken刷新 (refreshToken)
查询用户个人信息 (qryOidUserInfo)
setUserInfo设置用户个人信息 (setUserInfo)
获取AccessToken接口
接口说明
通过授权码获取 access_token,同时返回oid和unionId。
oid即openid, 是同一个应用内用户的唯一标识 。 unionid用来打通同一开发者下的所有应用的用户体系,即:同一用户的unionid在同一开发者下的所有应用内唯一。
具体关系如下图所示:
特别需要注意的是,如果开发者拥有多个移动应用,可通过接口中的unionid来区分用户的唯一性,因为只要是同一个连尚开放平台帐号下的移动应用,用户的unionId是唯一的。换句话说,同一用户,对同一个连尚开放平台下的不同应用,unionId是相同的。
生产URL:https://oauth.51y5.net/open-sso/fa.scmd
测试URL: https://wifi30.51y5.net/open-sso/fa.scmd
pid: getAccessToken
HTTP 请求方式:POST
返回格式:JSON
使用SDK调用
LoginClient client = new LoginClient("appId", "md5key", "aeskey", "aesiv");
AccessTokenResponse response = client.getAccessToken("code");
//response.getOid()
//.....
业务请求参数:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
pid | string | 接口代码 | 是 |
appId | string | 应用ID | 是 |
code | string | 授权码 | 是 |
st | string | 签名方式:目前只支持MD5, 填写”m”即可 | 是 |
sign | string | 签名 具体可见接口安全 | 是 |
sign=md5(accessToken+appId+oid+pid+st+md5key);
返回结果:
成功返回示例
{
"retCd":"0",
"oid":"xxxxxx",
"unionId":"xxxxxx",
"accessToken":"xxxxxx",
}
错误返回示例:
{
"retMsg":"xxxxxxx!",
"retCd":"H.USER.0001"
}
字段说明
字段名 | 类型 | 说明 |
---|---|---|
oid | string | 授权登录后获取的开放Id |
accessToken | string | access token |
expiresIn | string | 过期时间 |
refreshToken | string | 更新TOKEN |
scope | string | 访问范围 |
unionId | string | 同个开发者账户下不同app打通账户标识用,同个集团内unionId相同 |
accessToken刷新接口
通过refreshToken刷新accessToken
接口说明
accessToken是调用授权关系接口的调用凭证,由于accessToken有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:
1.若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间;
2.若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。
refresh_token拥有较长的有效期(30天)且无法续期,当refresh_token失效的后,需要用户重新授权后才可以继续获取用户头像昵称。
生产URL:https://oauth.51y5.net/open-sso/fa.scmd
测试URL: https:/wifi30.51y5.net/open-sso/fa.scmd
pid: refreshToken
HTTP 请求方式:POST
返回格式:JSON
使用SDK调用
LoginClient client = new LoginClient("appId", "md5key", "aeskey", "aesiv");
RefreshTokenResponse response = client.getRefreshToken("refreshToken");
//response.getOid()
//.....
业务请求参数:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
pid | string | 接口代码 | 是 |
appId | string | 应用ID | 是 |
refreshToken | string | 更新Token | 是 |
st | string | 签名方式:目前只支持MD5, 填写”m”即可 | 是 |
sign | string | 签名 具体可见接口安全 | 是 |
返回结果:
成功返回示例
{
"retCd":"0",
"oid":"xxxxxx",
"accessToken":"xxxxxx",
"expiresIn":12312312313
"refreshToken":sdrt1231231
"scope":"USERINFO"
}
错误返回示例: 错误返回示例:
{
"retMsg":"xxxxxxx!",
"retCd":"H.USER.0001"
}
字段说明
字段名 | 类型 | 说明 |
---|---|---|
oid | String | 授权登录后获取的开放Id |
accessToken | String | access token |
expiresIn | String | 过期时间 |
refreshToken | String | 更新TOKEN |
scope | String | 访问范围 |
查询用户个人信息接口
接口说明
此接口用于获取用户个人信息。开发者可通过oid来获取用户基本信息。
请注意,在用户修改连尚统一帐号头像后,旧的头像URL将会失效,因此开发者应该自己在获取用户信息后,将头像图片保存下来,避免连尚统一帐号头像URL失效后的异常情况。
生产URL:https://oauth.51y5.net/open-sso/fa.scmd
测试URL: https:/wifi30.51y5.net/open-sso/fa.scmd
pid: qryOidUserInfo
HTTP 请求方式:POST
返回格式:JSON
使用SDK调用
LoginClient client = new LoginClient("appId", "md5key", "aeskey", "aesiv");
UserInfoResponse response = client.getUserInfoByOid("oid","accessToken");
//response.getOid()
//.....
业务请求参数:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
pid | string | 接口代码 | 是 |
appId | string | 应用ID | 是 |
accessToken | string | 授权登录后获取的access token | 是 |
oid | string | 授权登录后获取的开放Id | 是 |
st | string | 签名方式:目前只支持MD5, 填写”m”即可 | 是 |
sign | string | 签名 具体可见接口安全 | 是 |
sign=md5(accessToken+appId+oid+pid+st+md5key);
返回结果:
成功返回示例
{
"retCd":"0",
"nickName":"xxxxxx",
"minHeadImgUrl":"xxxxxx",
}
错误返回示例
{
"retMsg":"xxxxxxx!",
"retCd":"H.USER.0001"
}
字段说明
字段名 | 类型 | 说明 | 备注 |
---|---|---|---|
oid | string | 授权登录后获取的开放Id | |
nickName | string | 昵称 | 根据scope判断是否返回 |
mobileEd | string | 加密手机号 | 根据scope判断是否返回 |
minHeadImgUrl | string | 小头像 | 根据scope判断是否返回 |
headImgUrl | string | 头像URL | 根据scope判断是否返回 |
sex | string | 性别(M男,F女) | 根据scope判断是否返回 |
age | string | 年龄 | 根据scope判断是否返回 |
counrtyCode | 国家代码 | 签名方式:目前只支持MD5, 填写”m”即可 | 根据scope判断是否返回 |
maskMobile | 掩码手机号 | 签名 具体可见接口安全 | 根据scope判断是否返回 |
注意事项
本接口返回的用户相关属性需要根据scope参数进行选择, 具体的对应关系如下:
scope值 | 返回属性列表 |
---|---|
BASE | nickName, minHeadImgUrl |
MOBILE | nickName, minHeadImgUrl, mobile |
USERINFO | nickName, minHeadImgUrl, mobile, headImgUrl, sex, age |
MASKMOBILE | nickName, minHeadImgUrl, maskMobile |
setUserInfo设置用户信息接口
接口说明
修改用户信息
生产URL:https://oauth.51y5.net/open-sso/fa.scmd
测试URL: https:/wifi30.51y5.net/open-sso/fa.scmd
pid: setUserInfo
HTTP 请求方式:POST
返回格式:JSON
使用SDK调用
LoginClient client = new LoginClient("appId", "md5key", "aeskey", "aesiv");
BaseResponse response = client.setUserInfo("nickName","sex","headImgUrl","oid","accessToken");
//response.getRetCd();
//.....
业务请求参数:
参数 | 类型 | 说明 | 是否必填 |
---|---|---|---|
pid | string | 接口代码 | 是 |
appId | string | 应用ID | 是 |
nickName | string | 昵称 | nickName,sex,headImgUrl 必须传一个 |
sex | string | 性别(M男,F女) | nickName,sex,headImgUrl 必须传一个 |
accessToken | string | accessToken | 是 |
headImgUrl | string | 头像 | nickName,sex,headImgUrl 必须传一个 |
oid | string | 授权登录后获取的开放Id | 是 |
st | string | 签名方式:目前只支持MD5, 填写”m”即可 | 是 |
sign | string | 签名 具体可见接口安全 | 是 |
说明: nickName,sex,headImgUrl 必须传一个.
返回结果:
成功返回示例
{
"retCd":"0"
}
错误返回示例
{
"retMsg":"xxxxxxx!",
"retCd":"H.USER.0001"
}