当商家发布应用的时候, 京东万象会给商家的APP 分配一组秘钥,分别是 Appkey 和Appsecret 。第三方应用服务器发起的请求均需要通过appsecret 生成签名参数,认证服务器会验证。如果验证失败会拒绝请求。
创建应用后,在应用列表中,您可查看到每条应用对应的唯一Appkey ,点击“查看”获取Appsecret ,如下图:
万象将为商家提供以下接口文档,帮助商家获取用户的信息,比如:用户ID,是否购买服务,服务到期时间等信息。
1. 授权请求(获取临时授权码)
客户端(第三方应用)申请认证的接口。
URL :https://wxoauth.jdcloud.com/auth/authorize
请求方式:HTTP GET
Content-Type : application/x-www-form-urlencoded
参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
response_type | String | 必选 | 表示授权类型固定为"code" |
client_id | String | 必选 | 客户端的ID (appKey,32位) |
redirect_uri | String | 必选 | 重定向URI |
scope | String | 可选 | 申请的权限范围 |
state | String | 必选 | 客户端的当前状态,unixTimeStamp_MD5(unixTimestamp+AppSecret),认证服务器会原封不动地返回这个值 |
示例
备注
此接口中,redirect_url为商家提供的接受临时token 的地址,state 的值为 unixTimeStamp_MD5(unixTimestamp+AppSecret), Appkey 和 Appsecret由京东万象提供。
2. 授权响应(认证服务器跳转)
认证服务器回应第三方应用程序的URI,认证服务器分配临时授权码后立即跳转至第三方提供的跳转地址。该码的有效期应该很短,通常设为10分钟,客户端只能使用该码一次,否则会被授权服务器拒绝。该码与客户端ID和重定向URI,是一一对应关系。见步骤C
Content-Type : application/x-www-form-urlencoded
参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
code | String | 必选 | 临时授权码 |
state | String | 必选 | 与请求一致 |
备注
如果客户端的请求中包含state参数,认证服务器的回应也必须一模一样包含这个参数。
示例
3. 错误响应(获取临时令牌失败)
如果由于跳转URL、客户端标识(Appkey)、state 缺失、无效或者与预期不匹配则认证服务器需要告知用户,并且不能跳转到请求的跳转链接。认证服务器会返回第三方应用错误信息。
请求类型 : HTTP
Content-Type : application/x-www-form-urlencoded
参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
error | String | 必选 | invalid_request:无效请求 unauthorized_client:客户端未授权 access_denied:拒绝授权 unsupported_response_type:错误的响应类型 invalid_scope:无效scope server_error:服务器内部错误 temporarily_unavailable:服务器不可用 |
error_description | String | 可选 | 错误的描述 |
error_uri | String | 可选 | 错误页面 |
state | String | 可选 | 与请求一致 |
示例
4.令牌请求(获取授权令牌)
客户端向认证服务器申请令牌的HTTP请求
URL: https://wxoauth.jdcloud.com/auth/token
请求方式:HTTP POST
请求参数:
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
grant_type | String | 必选 | 表示授权类型固定为" authorization_code " |
client_id | String | 必选 | 客户端的ID (appKey,32位) |
redirect_uri | String | 必选 | 重定向URI |
code | String | 必选 | 步骤A中获取的授权码 |
示例
5.令牌响应(返回令牌数据)
认证服务器对请求参数进行验证,如果验证成功则发送的HTTP回复 给第三方应用服务器。
参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
access_token | String | 必选 | 访问令牌(32位) |
token_type | String | 必选 | 固定 wx_auth_token |
expires_in | String | 必选 | 过期时间,单位为秒 |
refresh_token | String | 可选 | 用来获取下一次的访问令牌,此项忽略 |
scope | String | 可选 | 权限范围与申请权限一致,此项忽略 |
示例
备注
相关参数使用JSON格式发送(Content-Type: application/json)。此外,HTTP头信息中明确指定不得缓存。
6. 错误响应(获取令牌失败)
如果客户端请求令牌失败,则认证服务器返回400错误。以及如下参数的响应
参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
error | String | 必选 |
nvalid_request:无效请求 invalid_client:无效客户端 invalid_grant:无效授权 unauthorized_client:未认证客户端 unsupported_grant_type:不支持的授权类型 invalid_scope:无效的scope |
error_description | String | 可选 | 错误的描述 |
error_uri | String | 可选 | 错误页面 |
示例
7. 查询请求(获取用户信息)
当第三方应用获取到正确的Token 之后,即可在Token 的有效期内向京东万象的认证服务器请求用户的基本信息,万象会返回给第三方服务提供商 用户的ID ,购买的产品ID 以及此产品的过期时间。
URL: https://wxoauth.jdcloud.com/auth/info
请求方式:HTTP GET
请求参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
token | String | 必选 | 获取到的授权码 |
client_id | String | 必选 | 用户的ID(Appkey) |
sign | String | 必选 | unixTimeStamp_MD5(timestamp+appsecret) |
示例
8. 查询响应(返回用户数据)
认证服务器验证用户的token 、client_id 、sign值是否合法。如果合法则会返回用户的信息
参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
client_id | String | 必选 | 用户的ID(Appkey) |
wx_user_id | String | 必选 | 万象用户名 |
app_expire_time | String | 必选 | 过期时间,单位为秒 |
wx_goods_url | String | 可选 | 复购地址 |
示例
9. 错误响应(获取用户信息失败)
如果客户端请求获取的用户信息失败,则认证服务器返回400错误。以及如下参数的响应
参数
参数名 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
error | String | 必选 | nvalid_token:无效请求 invalid_client:无效客户端 invalid_app:无效appid invalid_sign:无效签名 |
error_description | String | 可选 | 错误的描述 |
示例
Copyright © 2012-2020 JDCloud.com 版权所有 京ICP备11041704号-31 京ICP证070359号 隐私声明