服务端接口

服务端对接人: 王金波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_oid关系图

特别需要注意的是,如果开发者拥有多个移动应用,可通过接口中的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"
}