Package com.foxinmy.weixin4j.mp.api
Class OauthApi
- java.lang.Object
-
- com.foxinmy.weixin4j.api.BaseApi
-
- com.foxinmy.weixin4j.mp.api.MpApi
-
- com.foxinmy.weixin4j.mp.api.OauthApi
-
public class OauthApi extends MpApi
oauth授权- Since:
- JDK 1.6
- Author:
- jinyu(foxinmy@gmail.com)
-
-
Field Summary
-
Fields inherited from class com.foxinmy.weixin4j.api.BaseApi
weixinExecutor
-
-
Constructor Summary
Constructors Constructor Description OauthApi()
默认使用weixin4j.properties里面的appid、appsecret信息OauthApi(WeixinAccount account)
传入appid、appsecret信息
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OauthToken
getAuthorizationToken(String code)
公众号网页获取用户资料oauth授权:code换取tokenUser
getAuthorizationUser(OauthToken token)
oauth授权获取用户信息(需scope为 snsapi_userinfo)User
getAuthorizationUser(String oauthToken, String openid, Lang lang)
oauth获取用户信息(需scope为 snsapi_userinfo)String
getOpenAuthorizationURL()
微信开放平台oauth授权(扫码登陆) redirectUri默认填写weixin4j.properties#open.user.oauth.redirect.uri state默认填写stateString
getOpenAuthorizationURL(String redirectUri, String state)
微信开放平台oauth授权(扫码登陆):请求CODEString
getUserAuthorizationURL()
公众号网页获取用户资料oauth授权:请求code redirectUri默认填写weixin4j.properties#user.oauth.redirect.uri scope默认填写snsapi_base state默认填写stateString
getUserAuthorizationURL(String redirectUri, String state, String scope)
公众号网页获取用户资料oauth授权:请求codeOauthToken
refreshAuthorizationToken(String refreshToken)
公众号网页获取用户资料oauth授权:刷新token,由于access_token拥有较短的有效期,当access_token超时后, 可以使用refresh_token进行刷新, refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。boolean
verifyAuthorizationToken(String oauthToken, String openId)
验证access_token是否正确-
Methods inherited from class com.foxinmy.weixin4j.mp.api.MpApi
weixinBundle
-
Methods inherited from class com.foxinmy.weixin4j.api.BaseApi
getRequestUri
-
-
-
-
Constructor Detail
-
OauthApi
public OauthApi()
默认使用weixin4j.properties里面的appid、appsecret信息
-
OauthApi
public OauthApi(WeixinAccount account)
传入appid、appsecret信息- Parameters:
account
-
-
-
Method Detail
-
getUserAuthorizationURL
public String getUserAuthorizationURL()
公众号网页获取用户资料oauth授权:请求code- redirectUri默认填写weixin4j.properties#user.oauth.redirect.uri
- scope默认填写snsapi_base
- state默认填写state
- Returns:
- 请求授权的URL
-
getUserAuthorizationURL
public String getUserAuthorizationURL(String redirectUri, String state, String scope)
公众号网页获取用户资料oauth授权:请求code- Parameters:
redirectUri
- 重定向地址
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的开发者中心页配置授权回调域名。请注意, 这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为 :www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html
都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权
3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可state
- 用于保持请求和回调的状态,授权请求后原样带回给第三方scope
- 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)
1、 以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的, 并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
2、以snsapi_userinfo为scope发起的网页授权 ,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过 ,所以无须关注,就可在授权后获取该用户的基本信息。
3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后 ,才能根据用户OpenID来获取用户基本信息 ,这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。- Returns:
- 请求授权的URL
-
getAuthorizationToken
public OauthToken getAuthorizationToken(String code) throws WeixinException
公众号网页获取用户资料oauth授权:code换取token- Parameters:
code
- 用户同意授权获取的code, code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次 ,5分钟未被使用自动过期。- Returns:
- oauthtoken信息
- Throws:
WeixinException
- See Also:
getUserAuthorizationURL(String, String,String)
,getAuthorizationUser(OauthToken)
-
refreshAuthorizationToken
public OauthToken refreshAuthorizationToken(String refreshToken) throws WeixinException
公众号网页获取用户资料oauth授权:刷新token,由于access_token拥有较短的有效期,当access_token超时后, 可以使用refresh_token进行刷新, refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。- Parameters:
refreshToken
- 填写通过access_token获取到的refresh_token参数- Returns:
- oauthtoken信息
- Throws:
WeixinException
- See Also:
OauthToken
-
verifyAuthorizationToken
public boolean verifyAuthorizationToken(String oauthToken, String openId)
验证access_token是否正确- Parameters:
oauthToken
- 接口调用凭证openId
- 用户标识- Returns:
- 验证结果
-
getAuthorizationUser
public User getAuthorizationUser(OauthToken token) throws WeixinException
oauth授权获取用户信息(需scope为 snsapi_userinfo)- Parameters:
token
- 授权信息(token&openid)- Returns:
- 用户对象
- Throws:
WeixinException
- See Also:
- 授权获取用户信息,
User
,OauthToken
-
getAuthorizationUser
public User getAuthorizationUser(String oauthToken, String openid, Lang lang) throws WeixinException
oauth获取用户信息(需scope为 snsapi_userinfo)- Parameters:
oauthToken
- 授权票据openid
- 用户openidlang
- 使用语言- Returns:
- 用户对象
- Throws:
WeixinException
- See Also:
- 授权获取用户信息,
OauthToken
,User
-
getOpenAuthorizationURL
public String getOpenAuthorizationURL()
微信开放平台oauth授权(扫码登陆)- redirectUri默认填写weixin4j.properties#open.user.oauth.redirect.uri
- state默认填写state
- Returns:
- 请求授权的URL
-
getOpenAuthorizationURL
public String getOpenAuthorizationURL(String redirectUri, String state)
微信开放平台oauth授权(扫码登陆):请求CODE- Parameters:
redirectUri
- 重定向地址 域名与审核时填写的授权域名一致state
- 用于保持请求和回调的状态,授权请求后原样带回给第三方- Returns:
- 请求授权的URL
- See Also:
- 网站扫描登陆oauth授权,
getAuthorizationToken(String)
-
-