All Downloads are FREE. Search and download functionalities are using the official Maven repository.

me.chanjar.weixin.cp.api.impl.WxCpOAuth2ServiceImpl Maven / Gradle / Ivy

The newest version!
package me.chanjar.weixin.cp.api.impl;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.URIUtil;
import me.chanjar.weixin.common.util.json.GsonHelper;
import me.chanjar.weixin.cp.api.WxCpOAuth2Service;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpUserDetail;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;

/**
 * 
 *
 * Created by Binary Wang on 2017-6-25.
 * @author Binary Wang
 *
 * @author Binary Wang
 * 
*/ public class WxCpOAuth2ServiceImpl implements WxCpOAuth2Service { private WxCpService mainService; public WxCpOAuth2ServiceImpl(WxCpService mainService) { this.mainService = mainService; } @Override public String buildAuthorizationUrl(String state) { return this.buildAuthorizationUrl( this.mainService.getWxCpConfigStorage().getOauth2redirectUri(), state ); } @Override public String buildAuthorizationUrl(String redirectUri, String state) { return this.buildAuthorizationUrl(redirectUri, state, WxConsts.OAuth2Scope.SNSAPI_BASE); } @Override public String buildAuthorizationUrl(String redirectUri, String state, String scope) { StringBuilder url = new StringBuilder("https://open.weixin.qq.com/connect/oauth2/authorize?"); url.append("appid=").append(this.mainService.getWxCpConfigStorage().getCorpId()); url.append("&redirect_uri=").append(URIUtil.encodeURIComponent(redirectUri)); url.append("&response_type=code"); url.append("&scope=").append(scope); if (WxConsts.OAuth2Scope.SNSAPI_PRIVATEINFO.equals(scope) || WxConsts.OAuth2Scope.SNSAPI_USERINFO.equals(scope)) { url.append("&agentid=").append(this.mainService.getWxCpConfigStorage().getAgentId()); } if (state != null) { url.append("&state=").append(state); } url.append("#wechat_redirect"); return url.toString(); } @Override public String[] getUserInfo(String code) throws WxErrorException { return this.getUserInfo(this.mainService.getWxCpConfigStorage().getAgentId(), code); } @Override public String[] getUserInfo(Integer agentId, String code) throws WxErrorException { String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?code=%s&agentid=%d", code, agentId); String responseText = this.mainService.get(url, null); JsonElement je = new JsonParser().parse(responseText); JsonObject jo = je.getAsJsonObject(); return new String[]{GsonHelper.getString(jo, "UserId"), GsonHelper.getString(jo, "DeviceId"), GsonHelper.getString(jo, "OpenId"), GsonHelper.getString(jo, "user_ticket"), GsonHelper.getString(jo, "expires_in") }; } @Override public WxCpUserDetail getUserDetail(String userTicket) throws WxErrorException { String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail"; JsonObject param = new JsonObject(); param.addProperty("user_ticket", userTicket); String responseText = this.mainService.post(url, param.toString()); return WxCpGsonBuilder.create().fromJson(responseText, WxCpUserDetail.class); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy