From 4301e9ddbe70e38a08d6f4c1d6c886988393b8bb Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 10 Nov 2021 10:56:21 +0800 Subject: [PATCH] 20211108 --- gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java | 31 +++++++++++++++++++++---------- 1 files changed, 21 insertions(+), 10 deletions(-) diff --git a/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java b/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java index 81fb8ed..14268ff 100644 --- a/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java +++ b/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java @@ -5,6 +5,7 @@ import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; @@ -73,6 +74,9 @@ return openid; } + public String generateAcode(String scene,String path,String imgName,String width){ + return generateAcode(scene, path, imgName, width, null); + } /** * 生成小程序码 @@ -81,19 +85,25 @@ * @param imgName 图片唯一名称 * @return */ - public String generateAcode(String scene,String path,String imgName,String width){ + public String generateAcode(String scene,String path,String imgName,String width, Integer type){ String urlPrefix=businessUtil.getViewUrl(); String imgPath=Constants.IMG_UPLOAD_PATH+imgName; if(!FileUtil.exist(imgPath)){ - //调用二维码接口 - String url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}", getAccessToken()); + cn.hutool.json.JSONObject obj = JSONUtil.createObj(); - //最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~, - // 其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式) - obj.put("scene", scene); - //必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, - // 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面 - obj.put("path", path); + //调用二维码接口 + String url = null; + if (type == null) { + // 该接口无数量限制,但是 scene 传参最大字符长度为32个字符 + url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}", getAccessToken()); + obj.put("scene", scene); + obj.put("path", path); + } else { + // 该接口存在数量限制, 总共可生成10w个, 但参数是接在path后面 + url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacode?access_token={}", getAccessToken()); + obj.put("path", path + "?" + scene ); + } + //最小 280px,最大 1280px obj.put("width", width); obj.put("auto_color", false); @@ -105,7 +115,8 @@ //是否需要透明底色,为 true 时,生成透明底色的小程序码 obj.put("is_hyaline", false); try { - InputStream inputStream = HttpRequest.post(url).body(obj.toString(), "application/json").execute().bodyStream(); + HttpResponse execute = HttpRequest.post(url).body(obj.toString(), "application/json").execute(); + InputStream inputStream = execute.bodyStream(); File file = new File(imgPath); FileUtil.writeFromStream(inputStream, file); long uploadUrl = FileUtil.size(file); -- Gitblit v1.9.1