|
@@ -7,6 +7,7 @@ import com.aliyun.opensearch.sdk.dependencies.org.apache.http.client.ResponseHan
|
|
import com.aliyun.opensearch.sdk.dependencies.org.apache.http.client.methods.HttpGet;
|
|
import com.aliyun.opensearch.sdk.dependencies.org.apache.http.client.methods.HttpGet;
|
|
import com.aliyun.opensearch.sdk.dependencies.org.apache.http.impl.client.BasicResponseHandler;
|
|
import com.aliyun.opensearch.sdk.dependencies.org.apache.http.impl.client.BasicResponseHandler;
|
|
import com.aliyun.opensearch.sdk.dependencies.org.apache.http.impl.client.DefaultHttpClient;
|
|
import com.aliyun.opensearch.sdk.dependencies.org.apache.http.impl.client.DefaultHttpClient;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -19,64 +20,83 @@ import java.util.Map;
|
|
public class WxUtils {
|
|
public class WxUtils {
|
|
public final static String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
|
|
public final static String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
|
|
public final static String GET_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
|
|
public final static String GET_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
|
|
|
|
+ public final static String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
|
|
|
|
+ public final static String GET_USER_INFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";
|
|
|
|
|
|
|
|
+ @Value("${caimei.appid}")
|
|
|
|
+ public static String appId;
|
|
|
|
+ @Value("${caimei.secret}")
|
|
|
|
+ public static String appSecret;
|
|
/**
|
|
/**
|
|
- * 获取accessToken
|
|
|
|
|
|
+ * 获取accessToken(公众号配置数据)
|
|
* @param appId 公众号appId
|
|
* @param appId 公众号appId
|
|
* @param appSecret 公众号appSecret
|
|
* @param appSecret 公众号appSecret
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public static String getAccessToken(String appId,String appSecret){
|
|
|
|
|
|
+ public static String getAccessToken(String appId,String appSecret) throws Exception {
|
|
String requestUrl = GET_TOKEN_URL.replace("APPID", appId).replace("SECRET", appSecret);
|
|
String requestUrl = GET_TOKEN_URL.replace("APPID", appId).replace("SECRET", appSecret);
|
|
- HttpClient client = null;
|
|
|
|
- String accessToken = null;
|
|
|
|
- try {
|
|
|
|
- client = new DefaultHttpClient();
|
|
|
|
- HttpGet httpget = new HttpGet(requestUrl);
|
|
|
|
- ResponseHandler<String> responseHandler = new BasicResponseHandler();
|
|
|
|
- String response = client.execute(httpget, responseHandler);
|
|
|
|
- JSONObject tokenJson = JSONObject.parseObject(response);
|
|
|
|
- accessToken = String.valueOf(tokenJson.get("access_token"));
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- } finally {
|
|
|
|
- client.getConnectionManager().shutdown();
|
|
|
|
- }
|
|
|
|
- return accessToken;
|
|
|
|
|
|
+ String response = HttpRequest.sendGet(requestUrl);
|
|
|
|
+ JSONObject tokenJson = JSONObject.parseObject(response);
|
|
|
|
+ return String.valueOf(tokenJson.get("access_token"));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 获取jsapi_ticket
|
|
|
|
|
|
+ * 获取jsapi_ticket(公众号配置数据)
|
|
* @param accessToken accessToken
|
|
* @param accessToken accessToken
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public static Map<String,String> getJsapiTicket(String accessToken){
|
|
|
|
|
|
+ public static Map<String,String> getJsapiTicket(String accessToken) throws Exception {
|
|
String requestUrl = GET_TICKET_URL.replace("ACCESS_TOKEN", accessToken);
|
|
String requestUrl = GET_TICKET_URL.replace("ACCESS_TOKEN", accessToken);
|
|
- HttpClient client = null;
|
|
|
|
- Map<String, String> result = new HashMap<String, String>();
|
|
|
|
- try {
|
|
|
|
- client = new DefaultHttpClient();
|
|
|
|
- HttpGet httpget = new HttpGet(requestUrl);
|
|
|
|
- ResponseHandler<String> responseHandler = new BasicResponseHandler();
|
|
|
|
- String response = client.execute(httpget, responseHandler);
|
|
|
|
- JSONObject ticketJson = JSONObject.parseObject(response);
|
|
|
|
- String errcode = String.valueOf(ticketJson.get("errcode"));
|
|
|
|
- String errmsg = String.valueOf(ticketJson.get("errmsg"));
|
|
|
|
- String ticket = String.valueOf(ticketJson.get("ticket"));
|
|
|
|
- String expiresIn = String.valueOf(ticketJson.get("expires_in"));
|
|
|
|
- result.put("errcode", errcode);
|
|
|
|
- result.put("errmsg", errmsg);
|
|
|
|
- result.put("ticket", ticket);
|
|
|
|
- result.put("expiresIn", expiresIn);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- } finally {
|
|
|
|
- client.getConnectionManager().shutdown();
|
|
|
|
- }
|
|
|
|
|
|
+ Map<String, String> result = new HashMap<>(4);
|
|
|
|
+ String response = HttpRequest.sendGet(requestUrl);
|
|
|
|
+ JSONObject ticketJson = JSONObject.parseObject(response);
|
|
|
|
+ String errcode = String.valueOf(ticketJson.get("errcode"));
|
|
|
|
+ String errmsg = String.valueOf(ticketJson.get("errmsg"));
|
|
|
|
+ String ticket = String.valueOf(ticketJson.get("ticket"));
|
|
|
|
+ String expiresIn = String.valueOf(ticketJson.get("expires_in"));
|
|
|
|
+ result.put("errcode", errcode);
|
|
|
|
+ result.put("errmsg", errmsg);
|
|
|
|
+ result.put("ticket", ticket);
|
|
|
|
+ result.put("expiresIn", expiresIn);
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取accessToken(用户授权)
|
|
|
|
+ * @param code 公众号appId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static Map<String,String> getAccessToken(String code) throws Exception {
|
|
|
|
+ String requestUrl = GET_ACCESS_TOKEN_URL.replace("APPID", appId).replace("secret",appSecret).replace("CODE", code);
|
|
|
|
+ Map<String, String> result = new HashMap<>(5);
|
|
|
|
+ String response = HttpRequest.sendGet(requestUrl);
|
|
|
|
+ JSONObject ticketJson = JSONObject.parseObject(response);
|
|
|
|
+ String accessToken = String.valueOf(ticketJson.get("access_token"));
|
|
|
|
+ String refreshToken = String.valueOf(ticketJson.get("refresh_token"));
|
|
|
|
+ String openId = String.valueOf(ticketJson.get("openid"));
|
|
|
|
+ String expiresIn = String.valueOf(ticketJson.get("expires_in"));
|
|
|
|
+ String scope = String.valueOf(ticketJson.get("scope"));
|
|
|
|
+ result.put("accessToken", accessToken);
|
|
|
|
+ result.put("refreshToken", refreshToken);
|
|
|
|
+ result.put("openId", openId);
|
|
|
|
+ result.put("expiresIn", expiresIn);
|
|
|
|
+ result.put("scope", scope);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 拉取用户信息
|
|
|
|
+ * @param accessToken
|
|
|
|
+ * @param openId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static Map<String,String> getUserInfo(String accessToken, String openId) throws Exception {
|
|
|
|
+ String requestUrl = GET_USER_INFO_URL.replace("ACCESS_TOKEN", accessToken).replace("OPENID",openId);
|
|
|
|
+ Map<String, String> result = new HashMap<>(5);
|
|
|
|
+ String response = HttpRequest.sendGet(requestUrl);
|
|
|
|
+ JSONObject ticketJson = JSONObject.parseObject(response);
|
|
|
|
+ String nickName = String.valueOf(ticketJson.get("nickname"));
|
|
|
|
+ result.put("nickName", nickName);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
}
|
|
}
|