1.生成微信小程序二维码
获取不限制的小程序码 | 微信开放文档
2.经过验证,下面两种方式可行
2.1直接将官方生成的内容直接在src标签里面是可以展示的 接口要支持GET请求
html代码
<body >
<!--get请求可以,post请求不行-->
<img src="http://localhost:18092/api/wechat/wxa/getwxacodeunlimit/direct">
</body>
接口
/*** 生成无限制的二维码(postman可以直接展示,浏览器也可以直接展示,html怎么展示还没搞定)* @param getwxacodeunlimitRequest 参数* @return 结果*/@PostMapping("/wxa/getwxacodeunlimit")Object getwxacodeunlimit(@RequestBody GetwxacodeunlimitRequest getwxacodeunlimitRequest, HttpServletResponse response){AccessTokenResponse accessTokenResponse = wechatFeign.getAccessToken(appid, secret, accesstokenType);ResponseEntity<Resource> getwxacodeunlimit = wechatFeign.getwxacodeunlimit(getwxacodeunlimitRequest, accessTokenResponse.getAccess_token());return getwxacodeunlimit;//response.setContentType("image/jpeg");//return getwxacodeunlimit;}
2.2将官方接口数据转为base64,然后展示
接口统一前缀/api/wechat
html
<body >
<img id="image" src=""/>
</body>
js
const API_URL = 'http://localhost:18092/api/wechat'
$(document).ready(function() {// 页面加载完毕后执行的代码getWechatQrcodeBase64();//getWechatQrcodeStr();
});function getWechatQrcodeBase64() {var param = {"page": "pages/index/index","scene": "a=1","check_path": false,"env_version": "trial"};$.ajax({url: API_URL + "/wxa/getwxacodeunlimit/base64", // 目标资源//url: API_URL + "/test", // 目标资源cache: false, //true 如果当前请求有缓存的话,直接使用缓存。如果该属性设置为 false,则每次都会向服务器请求async: false, //默认是true,即为异步方式data: JSON.stringify(param),contentType: "application/json",dataType: "blob", // 服务器响应的数据类型type: "POST", // 请求方式responseType:"blob",success: function (data) {console.log("成功"+data)},complete: function (data){/*var bytes = data.responseText;//new Uint8Array(data);var blob = new Blob([bytes], { type: "image/jpeg" });var url = URL.createObjectURL(blob);var image = document.getElementById('image');if (image) {console.log("图片存在")image.src = url;}else {console.log("图片不存在")}console.log("完成",data)*/var base64 = data.responseText;var image = document.getElementById('image');if (image) {console.log("图片存在")image.src = "data:image/png;base64,"+base64;}else {console.log("图片不存在")}console.log("完成",data)}});
}
接口
/*** 生成无限制的二维码并转成base64* @param getwxacodeunlimitRequest 参数* @return 结果*/@PostMapping("/wxa/getwxacodeunlimit/base64")String getwxacodeunlimitBase64Str(@RequestBody GetwxacodeunlimitRequest getwxacodeunlimitRequest, HttpServletResponse response) throws IOException {AccessTokenResponse accessTokenResponse = wechatFeign.getAccessToken(appid, secret, accesstokenType);ResponseEntity<Resource> getwxacodeunlimit = wechatFeign.getwxacodeunlimit(getwxacodeunlimitRequest, accessTokenResponse.getAccess_token());return Base64.getEncoder().encodeToString(getwxacodeunlimit.getBody().getInputStream().readAllBytes());//response.setContentType("image/jpeg");//return getwxacodeunlimit;}