用户账号
更新时间:2019-02-22 15:18:26
用户账号OA SDK
概述
基于Oauth2.0协议,提供快速对接自有账号的能力,满足开发者在web开发中对接自有账号体系的需求。
接入说明
SDK包
下载链接:下载地址
环境准备
在接入账号前,请先设置好环境信息,请参见:自有账号登录流程说明
接入步骤
- 在pom.xml中添加如下依赖:
<dependency> <groupId>com.aliyun.api.gateway</groupId> <artifactId>sdk-core-java</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.52</version> </dependency>
2 引入SDK的API接口调用类
把sdk文件夹中所有Group(cn-shanghai)的通道类OpenAccount_http_*.java
、OpenAccount_https_*.java
文件复制到您的项目文件夹中;
3 初始化通信通道类
要提交请求至阿里云API网关,您首选要将所有的通道类初始化。您可以参考SDK中 Demo_*.java
中的示例代码,使用对应的ClientBuilderParams
类来初始化所有通道
4 API调用
参考SDK中Demo_*.java
中的示例代码loginByOauthHttpTest
和loginByOauthHttpsTest
loginByOauthRequest
参数的格式为
"{\"authCode\":\"2c7360fa72f44104b3e9527testtest\",\"oauthAppKey\":\"5017092208811922\",\"oauthPlateform\":23,\"riskControlInfo\":{\"signType\":\"RSA2\",\"createAccountIfNotExist\":\"true\"}}"
oauthPlateform固定填23
正确的返回数据:
{
"code":1,
"data":{
"checkCodeResult":null,
"doubleCheckToken":"",
"doubleCheckUrl":"",
"ivCancelTrustToken":"",
"ivRecreateAccountTrustToken":"",
"loginSuccessResult":{
"initPwd":"null",
"oauthOtherInfo":{
"gender":"0",
"avatarUrl":null,
"platformType":23,
"iotOauthPlatform":23
},
"openAccount":{
"alipayId":"",
"avatarUrl":"",
"bankCardNo":"",
"bankCardOwnerName":"",
"birthday":"",
"companyName":"",
"country":"",
"createAppKey":"",
"createDeviceId":"",
"createLocation":"",
"displayName":"test User",
"domainId":7222711,
"email":"",
"enableDevice":true,
"extInfos":"",
"gender":null,
"gmtCreate":null,
"gmtModified":null,
"hasPassword":false,
"id":379629,
"isvAccountId":"",
"locale":"",
"loginId":"",
"loginPwd":"",
"loginPwdEncryption":null,
"loginPwdIntensity":null,
"loginPwdSalt":"",
"mobile":"",
"mobileConflictAccount":false,
"mobileLocationCode":"86",
"name":"",
"oauthPlateform":null,
"openId":"testj0ab77a73329",
"parentId":null,
"pwdVersion":0,
"securityEmail":"",
"securityMobile":"",
"status":1,
"subAccount":false,
"tag":null,
"type":null,
"version":null,
"wangwang":"",
"weixin":""
},
"reTokenExpireIn":7776000,
"refreshToken":"OA-testtestc1d4049fab7c47e0579139be7",
"sid":"test",
"sidExpireIn":86400,
"token":"Uftdh_ctest-test",
"uidToken":"null",
"weiboResetPwdToken":""
},
"mobileBindRequired":false,
"redirectUrl":"",
"smsCheckTrustToken":"",
"userInputName":""
},
"deviceId":"",
"message":"SUCCESS",
"subCode":0,
"successful":true,
"traceId":"0a98a36815504759274668231e6c1d",
"type":"",
"vid":"testd253fa9a0d5c0"
}
公共错误码
网关错误
错误代码 | Http 状态码 | 语义 | 解决方案 |
---|---|---|---|
Throttled by USER Flow Control | 403 | 因用户流控被限制 | 调用频率过高导致被流控,可以联系 API 服务商协商放宽限制。 |
Throttled by APP Flow Control | 403 | 因APP流控被限制 | 调用频率过高导致被流控,可以联系 API 服务商协商放宽限制。 |
Throttled by API Flow Control | 403 | 因 API 流控被限制 | 调用频率过高导致被流控,可以联系 API 服务商协商放宽限制。 |
Throttled by DOMAIN Flow Control | 403 | 因二级域名流控被限制 | 直接访问二级域名调用 API,每天被访问次数上限1000次。 |
TThrottled by GROUP Flow Control | 403 | 因分组流控被限制 | 调用频率过高导致被流控,可以联系 API 服务商协商放宽限制。 |
Quota Exhausted | 403 | 调用次数已用完 | 购买的次数已用完。 |
Quota Expired | 403 | 购买次数已过期 | 购买的次数已经过期。 |
User Arrears | 403 | 用户已欠费 | 请尽快充值续费。 |
Empty Request Body | 400 | body 为空 | 请检查请求 Body 内容。 |
Invalid Request Body | 400 | body 无效 | 请检查请求 Body。 |
Invalid Param Location | 400 | 参数位置错误 | 请求参数位置错误。 |
Unsupported Multipart | 400 | 不支持上传 | 不支持上传文件。 |
Invalid Url | 400 | Url 无效 | 请求的 Method、Path 或者环境不对。请参照错误说明 Invalid Url。 |
Invalid Domain | 400 | 域名无效 | 请求域名无效,根据域名找不到 API。请联系 API 服务商。 |
Invalid HttpMethod | 400 | HttpMethod 无效 | 输入的 Method 不合法。 |
Invalid AppKey | 400 | AppKey 无效或不存在 | 请检查传入的 AppKey。注意左右空格的影响。 |
Invalid AppSecret | 400 | APP 的Secret 错误 | 检查传入的 AppSecret。注意左右空格的影响。 |
Timestamp Expired | 400 | 时间戳过时 | 请核对请求系统时间是否为标准时间。 |
Invalid Timestamp | 400 | 时间戳不合法 | 请参照 请求签名说明文档。 |
Empty Signature | 404 | 签名为空 | 请传入签名字符串,请参照 请求签名说明文档。 |
Invalid Signature, Server StringToSign:%s | 400 | 签名无效 | 签名无效,参照 Invalid Signature 错误说明 |
Invalid Content-MD5 | 400 | Content-MD5 值不合法 | 请求 Body 为空,但传入了 MD5 值,或 MD5 值计算错误。请参照 请求签名说明文档。 |
Unauthorized | 403 | 未被授权 | APP 未获得要调用的 API 的授权。请参照错误说明 Unauthorized。 |
Nonce Used | 400 | SignatureNonce | 已被使用 |
API Not Found | 400 | 找不到 API | 传入的APIdi地址或者HttpMethod不正确,或已下线。 |
服务器端错误(调用 API)
以下为API服务端错误,如果频繁错误,可联系服务商。
错误代码 | Http状态码 | 语义 | 解决方案 |
---|---|---|---|
Internal Error | 500 | 内部错误 | 建议重试,或者联系服务商 |
Failed To Invoke Backend Service | 500 | 底层服务错误 | API 提供者底层服务错误,建议重试,如果重试多次仍然不可用,可联系 API 服务商解决 |
Service Unavailable | 503 | 服务不可用 | 建议重试,或者联系服务商 |
Async Service | 504 | 后端服务超时 | 建议重试,或者联系服务商 |