调用微信接口获取带参二维码生成图片打不开,图片损坏
发布于 5 年前 作者 hejun 11745 次浏览 来自 问答
 String access_token = this.getAccessTokenString();

//封装参数
Map<String, Object> parMap = new HashMap<String, Object>();
parMap.put("medicalOrgCode",medicalOrgCode);
parMap.put("departmentCode",departmentCode);
Gson gson = new Gson();
String scene = gson.toJson(parMap);//带参
if(width==null||width==0){
width = 430;//默认
}

String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+access_token;
Map<String,Object> param = new HashMap<>();
param.put("scene", parMap);
param.put("page", "pages/index/index");
param.put("width", width);
param.put("auto_color", false);
Map<String,Object> line_color1 = new HashMap<>();
line_color1.put("r", 0);
line_color1.put("g", 0);
line_color1.put("b", 0);
param.put("line_color", line_color);
System.out.println("调用生成微信URL接口传参:" + param);
MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
HttpEntity requestEntity = new HttpEntity(param, headers);
RestTemplate rest = new RestTemplate();
ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
System.out.println("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody());
byte[] result = entity.getBody();
System.out.println(Base64.encodeBase64String(result));
InputStream instreams = new ByteArrayInputStream(result);

String uploadSysUrl = "F:\\upload"+"/";
saveToImgByInputStream(instreams, uploadSysUrl, id+".jpg"); //保存图片到本地(代码没问题)

String resUrl = ossService.uploadObject(instreams, "wxaqrcode/",
        id, FileUtils.getFileExt(".jpg"));  //上传到阿里云   (代码没问题)

求解决

10 回复

请问您是怎么解决的?

我也遇到了,解决了吗

这样啊,非常感谢!

参数无误,用DHC插件模拟POST请求可以返回二维码图片,只是在保存到本地的时候打开图片,会出现与楼主所说一样的情况。

这里我有个疑问,是不是必须是审核通过已发布的小程序才可以正常调用该接口?

或者方便的话,能分享下您保存到本地的代码吗?

求把getwxacodeunlimit接口的返回值转为图片的那部分代码,万分感谢

对 必须是审核通过的。。。而且appid和页面路径都不能有问题

请问解决了吗,我也遇到了

确定参数是否有误,页面路径的

你看看方法哪错了吧  。。。这是我生成的

appid和page(你的【页面路径】是指这个吧?)没啥问题,

流程在postman上可以正常显示出二维码(小程序码),但是在java代码中却不知如何将此二维码保存于本地硬盘上,直接将返回值打印出来是乱码,就好强记事本打开一个图片一样,现在就是想把这些乱码文本转成可以看到的图片。用常规的FileOutputStream保存出来的图片文件会打不开

回到顶部