1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

微信小程序 提审时隐藏功能;微信小程序添加微信快捷登录、随便看看(登的user用户)

This commit is contained in:
2023-04-17 02:36:04 +08:00
parent 62ed92029c
commit 0238251ab0
29 changed files with 1205 additions and 624 deletions

View File

@@ -12,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Objects;
@Controller
@RequestMapping("/access/wechat")
public class WeChatTokenController {
@@ -47,4 +49,18 @@ public class WeChatTokenController {
return responseBody.bytes();
}
@GetMapping(value = "/rpc/getOpenIdFromApi")
@ResponseBody
@SneakyThrows
public Res getOpenIdFromApi(@RequestParam(value = "code", required = true) String code) {
if (Objects.isNull(code) || "".equals(code)) {
return Res.error("参数错误");
}
String openId = weChatTokenService.getOpenIdFromApi(code);
if (openId == null) {
return Res.error("微信OpenId接口调用失败请刷新重试");
}
return Res.success(openId);
}
}

View File

@@ -97,8 +97,8 @@ public class WeChatTokenServiceImpl implements WeChatTokenService {
params.put("check_path", unlimitedQRCodeParam.getCheckPath());
params.put("env_version", unlimitedQRCodeParam.getEnvVersion());
params.put("width", unlimitedQRCodeParam.getWidth());
params.put("auto_color",unlimitedQRCodeParam.getAutoColor());
params.put("is_hyaline",unlimitedQRCodeParam.getIsHyaline());
params.put("auto_color", unlimitedQRCodeParam.getAutoColor());
params.put("is_hyaline", unlimitedQRCodeParam.getIsHyaline());
String paramsString = JSON.toJSONString(params);
OkHttpClient okHttpClient = new OkHttpClient();
@@ -108,11 +108,40 @@ public class WeChatTokenServiceImpl implements WeChatTokenService {
.post(RequestBody.create(paramsString, MediaType.parse("application/json; charset=utf-8")))
.build();
Response response = okHttpClient.newCall(request).execute();
// String result = response.body()response.body().string();
// String result = response.body().string();
// System.out.println("headers: " + response.headers());
// System.out.println("body: " + response.body());
System.out.println("paramsString: " + paramsString);
return response.body();
}
@SneakyThrows
public String getOpenIdFromApi(String code) {
// refer:
// https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
// https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html
String url = String.format("https://api.weixin.qq.com/sns/jscode2session?" +
"appid=%s&secret=%s&js_code=%s&grant_type=authorization_code", APPID, APPSECRET, code);
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.get()
.build();
Response response = okHttpClient.newCall(request).execute();
ResponseBody body = response.body();
if (body != null) {
String jsonString = body.string();
// {"session_key":"7DnwgV6kUALcO+j65k5Gcw==","openid":"oFzuC4pvbPzY7vI6vmP6_57iTk-U","unionid":"oZxJH1kLie37EpC4FzslnCcWDEA4"}
JSONObject result = JSONObject.parseObject(jsonString);
String openId = result.getString("openid");
System.out.println("body: " + body + ", result: " + result);
return openId;
} else {
return null;
}
}
}