This commit is contained in:
jinyu
2015-12-29 16:28:30 +08:00
parent 92a847ecac
commit 1850b4fcdd
9 changed files with 109 additions and 18 deletions
@@ -4,6 +4,7 @@ import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Consts;
@@ -35,7 +36,8 @@ public class OauthApi extends QyApi {
*/
public String getUserAuthorizeURL() {
String corpId = DEFAULT_WEIXIN_ACCOUNT.getId();
String redirectUri = Weixin4jConfigUtil.getValue("user.oauth.redirect.uri");
String redirectUri = Weixin4jConfigUtil
.getValue("user.oauth.redirect.uri");
return getUserAuthorizeURL(corpId, redirectUri, "state");
}
@@ -73,7 +75,8 @@ public class OauthApi extends QyApi {
*/
public String getThirdAuthorizeURL() {
String corpId = DEFAULT_WEIXIN_ACCOUNT.getId();
String redirectUri = Weixin4jConfigUtil.getValue("third.oauth.redirect.uri");
String redirectUri = Weixin4jConfigUtil
.getValue("third.oauth.redirect.uri");
return getThirdAuthorizeURL(corpId, redirectUri, "state");
}
@@ -121,7 +124,12 @@ public class OauthApi extends QyApi {
WeixinResponse response = weixinExecutor.post(
String.format(oauth_logininfo_uri, providerToken),
String.format("{\"auth_code\":\"%s\"}", authCode));
return JSON.parseObject(response.getAsString(), OUserInfo.class);
JSONObject obj = response.getAsJson();
OUserInfo oUser = JSON.toJavaObject(obj, OUserInfo.class);
oUser.getRedirectLoginInfo().setAccessToken(
obj.getJSONObject("redirect_login_info").getString(
"login_ticket"));
return oUser;
}
/**
@@ -135,7 +143,8 @@ public class OauthApi extends QyApi {
* @return
*/
public String getSuiteAuthorizeURL(String suiteId, String preAuthCode) {
String redirectUri = Weixin4jConfigUtil.getValue("suite.oauth.redirect.uri");
String redirectUri = Weixin4jConfigUtil
.getValue("suite.oauth.redirect.uri");
return getSuiteAuthorizeURL(suiteId, preAuthCode, redirectUri, "state");
}
@@ -52,10 +52,15 @@ public class AgentSetter implements Serializable {
@JSONField(name = "isreportuser")
private boolean isReportUser;
/**
* 是否上报用户进入应用事件。0:不接收;1:接收
* 是否上报用户进入应用事件。0:不接收;1:接收。主页型应用无需该参数
*/
@JSONField(name = "isreportenter")
private boolean isReportEnter;
/**
* 主页型应用url。url必须以http或者https开头。消息型应用无需该参数
*/
@JSONField(name = "home_url")
private String homeUrl;
public AgentSetter(int agentId) {
this.agentId = agentId;
@@ -85,6 +90,10 @@ public class AgentSetter implements Serializable {
return redirectDomain;
}
public String getHomeUrl() {
return homeUrl;
}
// ---------- setter 应该全部去掉
public void setReportLocationType(ReportLocationType reportLocationType) {
@@ -123,12 +132,17 @@ public class AgentSetter implements Serializable {
this.isReportEnter = isReportEnter;
}
public void setHomeUrl(String homeUrl) {
this.homeUrl = homeUrl;
}
@Override
public String toString() {
return "agentId=" + agentId + ", reportLocationType="
+ reportLocationType + ", logoMediaId=" + logoMediaId
+ ", name=" + name + ", description=" + description
+ ", redirectDomain=" + redirectDomain + ", isReportUser="
+ isReportUser + ", isReportEnter=" + isReportEnter;
+ isReportUser + ", isReportEnter=" + isReportEnter
+ ", homeUrl=" + homeUrl;
}
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.List;
import com.alibaba.fastjson.annotation.JSONField;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.AgentAuthType;
/**
@@ -48,6 +49,11 @@ public class OUserInfo implements Serializable {
*/
@JSONField(name = "auth_info")
private AuthInfo authInfo;
/**
* 登录跳转的票据信息
*/
@JSONField(name = "redirect_login_info")
private Token redirectLoginInfo;
public boolean isSysAdmin() {
return isSysAdmin;
@@ -73,6 +79,10 @@ public class OUserInfo implements Serializable {
return authInfo;
}
public Token getRedirectLoginInfo() {
return redirectLoginInfo;
}
// ---------- setter 应该全部去掉
public void setSysAdmin(boolean isSysAdmin) {
@@ -99,12 +109,16 @@ public class OUserInfo implements Serializable {
this.authInfo = authInfo;
}
public void setRedirectLoginInfo(Token redirectLoginInfo) {
this.redirectLoginInfo = redirectLoginInfo;
}
@Override
public String toString() {
return "OUserInfo [isSysAdmin=" + isSysAdmin + ", isInnerAdmin="
+ isInnerAdmin + ", adminInfo=" + adminInfo + ", corpInfo="
+ corpInfo + ", agentInfo=" + agentInfo + ", authInfo="
+ authInfo + "]";
+ authInfo + ", redirectLoginInfo=" + redirectLoginInfo + "]";
}
/**