122 lines
4.0 KiB
Java

package com.ics.controller.mobile;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class SmallWxOkHttp {
static String APP_ID = "wx5582a07c1fbbcf06";
static String SECRET = "ad24130a8919c613efd9538f69abafd3";
public static JSONObject sendGet(String url , Map<String, String> map){
OkHttpClient client = new OkHttpClient();
// 创建url
HttpUrl.Builder urlBuilder = HttpUrl.parse(url).newBuilder();
// 添加参数
if(map != null){
for (Map.Entry<String, String> entry : map.entrySet()) {
urlBuilder.addQueryParameter(entry.getKey(), entry.getValue());
}
}
// 创建请求
Request request = new Request.Builder()
.url(urlBuilder.build().toString())
.build();
try {
Response response = client.newCall(request).execute();
String resultStr = response.body().string();
System.out.println(resultStr);
return JSON.parseObject(resultStr);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static JSONObject sendPost(String url, Map<String , String> paramMap) {
if(paramMap == null){
paramMap = new HashMap<>();
}
String jsonString = JSON.toJSONString(paramMap);
OkHttpClient client = new OkHttpClient().newBuilder().build();
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonString);
Request request = new Request.Builder()
.post(body)
.url(url)
.build();
Call call = client.newCall(request);
//返回请求结果
try {
Response response = call.execute();
String resultStr = response.body().string();
System.out.println(resultStr);
return JSON.parseObject(resultStr);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 获取AccessToken
*/
public static String getAccessToken(){
// url
String url = "https://api.weixin.qq.com/cgi-bin/token";
// 参数
Map<String, String> map = new HashMap<>();
map.put("grant_type", "client_credential");
map.put("appid", APP_ID);
map.put("secret", SECRET);
// 发送请求
JSONObject jsonObject = sendGet(url, map);
String accessToken = jsonObject.getString("access_token");
String expiresIn = jsonObject.getString("expires_in");
return accessToken;
}
/**
* 小程序登录
*/
public static JSONObject code2Session(String jsCode){
// url
String url = "https://api.weixin.qq.com/sns/jscode2session";
// 参数
Map<String, String> map = new HashMap<>();
map.put("appid", APP_ID);
map.put("secret", SECRET);
map.put("js_code", jsCode);
map.put("grant_type", "authorization_code");
// 发送请求
JSONObject jsonObject = sendGet(url, map);
return jsonObject;
}
/**
* 获取手机号
*/
public static JSONObject getPhoneNumber(String code, String openid, String accessToken){
// url
String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken;
// 参数
Map<String, String> map = new HashMap<>();
map.put("code", code);
map.put("openid", openid);
// 发送请求
JSONObject jsonObject = sendPost(url, map);
return jsonObject;
}
public static void main(String[] args) {
// getAccessToken();
getPhoneNumber("", "", "74_NGF_xru4Mt5gDVperBd9LYwtMjWaXGb7JNleZ-nqSOSGvtW3vIGYKkFY0ymMFn2aLYZaN9d1rAZ65X5X-mGX556bWQWFy1mawkWUorOvz37QH34q2YBJjsDCih8FYOfAHAWPF");
}
}