配置
<!--Hutool工具-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.9</version>
</dependency>
1.获取微信accessToken
@GetMapping("/accessToken")
@ApiOperation("获取微信accessToken")
public R<Object> accessToken() {
RestTemplate restTemplate = new RestTemplate();
String api = url + "/cgi-bin/token?appid={appid}&secret={appSecret}&grant_type=client_credential";
Map<String, Object> map = new HashMap<>();
map.put("appid", appid);
map.put("appSecret", appSecret);
Object obj = restTemplate.getForObject(api, Object.class, map);//此处三个参数分别是请求地址、请求体以及返回参数类型
System.out.println(map);
return R.success(obj);
}
2.获取二维码
@PostMapping("/qrCode")
@ApiOperation("获取微信二维码")
public R<String> cenerateTheQrCode(@RequestBody Wxma wxma){
System.out.println(wxma.getScene());
System.out.println(wxma.getPage());
System.out.println(wxma.getAccessToken());
Map<String,Object> param = new HashMap<String,Object>();
param.put("page",wxma.getPage());
//deviceId和I都只是参数,可以自己按需要定义,用&分隔
param.put("scene",wxma.getScene());
System.out.println(param);
System.out.println(wxma.getAccessToken());
//参数必须是Json格式
String json = JSON.toJSONString( param );
byte[] bytes= HttpRequest.post("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+wxma.getAccessToken())
.header(HTTP.CONTENT_TYPE, "application/json").body(json).execute().bodyBytes();
String encoded = "data:image/jpg;base64," + Base64.encodeBase64String(bytes).replaceAll("[\\s*\t\n\r]", "");
return R.success(encoded);
}