com.foxinmy.weixin4j.mp.api
Class OauthApi

java.lang.Object
  extended by com.foxinmy.weixin4j.api.BaseApi
      extended by com.foxinmy.weixin4j.mp.api.MpApi
          extended by com.foxinmy.weixin4j.mp.api.OauthApi

public class OauthApi
extends MpApi

oauth授权

Since:
JDK 1.6
Author:
jinyu(foxinmy@gmail.com)

Constructor Summary
OauthApi()
          默认使用weixin4j.properties里面的appid、appsecret信息
OauthApi(WeixinAccount account)
          传入appid、appsecret信息
 
Method Summary
 OauthToken getAuthorizationToken(String code)
          公众号网页获取用户资料oauth授权:code换取token
 User 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默认填写state
 String getOpenAuthorizationURL(String redirectUri, String state)
          微信开放平台oauth授权(扫码登陆):请求CODE
 String getUserAuthorizationURL()
          公众号网页获取用户资料oauth授权:请求code redirectUri默认填写weixin4j.properties#user.oauth.redirect.uri scope默认填写snsapi_base state默认填写state
 String getUserAuthorizationURL(String redirectUri, String state, String scope)
          公众号网页获取用户资料oauth授权:请求code
 OauthToken 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 java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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
    See Also:
    #getUserAuthorizationURL(String, String,String)}

  • 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:
    #getAuthorizationToken(String)}, 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(String,Sring,Lang)}

    getAuthorizationUser

    public User getAuthorizationUser(String oauthToken,
                                     String openid,
                                     Lang lang)
                              throws WeixinException
    oauth获取用户信息(需scope为 snsapi_userinfo)

    Parameters:
    oauthToken - 授权票据
    openid - 用户openid
    lang - 使用语言
    Returns:
    用户对象
    Throws:
    WeixinException
    See Also:
    授权获取用户信息, #getAuthorizationToken(String)}, OauthToken, User

    getOpenAuthorizationURL

    public String getOpenAuthorizationURL()
    微信开放平台oauth授权(扫码登陆)
  • redirectUri默认填写weixin4j.properties#open.user.oauth.redirect.uri
  • state默认填写state

    Returns:
    请求授权的URL
    See Also:
    #getOpenAuthorizationURL(String, String)}

  • getOpenAuthorizationURL

    public String getOpenAuthorizationURL(String redirectUri,
                                          String state)
    微信开放平台oauth授权(扫码登陆):请求CODE

    Parameters:
    redirectUri - 重定向地址 域名与审核时填写的授权域名一致
    state - 用于保持请求和回调的状态,授权请求后原样带回给第三方
    Returns:
    请求授权的URL
    See Also:
    网站扫描登陆oauth授权, getAuthorizationToken(String)


    Copyright © 2014–2017. All rights reserved.