微信小程序生成带参数的二维码java_生成微信小程序码java实现

@Overridepublic ModelAndView onSubmit(HttpServletRequest req, HttpServletResponse res, WxQrCodeForm cmd, BindException err) throwsException {

SimpleResult result = SimpleResult.create(false);

Locale locale= new Locale("en", "US");

ResourceBundle resource= ResourceBundle.getBundle("config/wx-config", locale); //读取属性文件

String appId = resource.getString("appId"); //开发者设置中的appId

String secret = resource.getString("appSecret"); //开发者设置中的appSecret

AccessToken accessToken = null;

String requestUrl= "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" +secret;

JSONObject jsonObject= WeixinUtil.httpRequest(requestUrl, "GET", null);//如果请求成功

if (null !=jsonObject) {try{

accessToken= newAccessToken();

accessToken.setToken(jsonObject.getString("access_token"));

accessToken.setExpiresIn(jsonObject.getIntValue("expires_in"));

}catch(JSONException e) {

accessToken= null;//获取token失败

logger.error("获取token失败 errcode:{} errmsg:{}", jsonObject.getIntValue("errcode"), jsonObject.getString("errmsg"));

}

}

String token=accessToken.getToken();

getminiqrQr(token);returnModelAndViewUtil.json(result);

}publicMap getminiqrQr(String accessToken) {

RestTemplate rest= newRestTemplate();

InputStream inputStream= null;

OutputStream outputStream= null;try{

String url= "https://api.weixin.qq.com/weixin/getwxacode?access_token=" +accessToken;

Map param = new HashMap<>();

param.put("path", "pages/search/search"); //跳转到查询物流(自定义)

param.put("width", 430);

param.put("auto_color", false);

Map line_color = new HashMap<>();

line_color.put("r", 0);

line_color.put("g", 0);

line_color.put("b", 0);

param.put("line_color", line_color);

logger.info("调用生成微信URL接口传参:" +param);

MultiValueMap headers = new LinkedMultiValueMap<>();

HttpEntity requestEntity= newHttpEntity(JSON.toJSONString(param), headers);

ResponseEntity entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);

logger.info("调用小程序生成微信永久小程序码URL接口返回结果:" +entity.getBody());byte[] result =entity.getBody();

logger.info(Base64.encodeBase64String(result));

inputStream= newByteArrayInputStream(result);

File file= new File("/Users/apple/Desktop/abc.png");if (!file.exists()) {

file.createNewFile();

}

outputStream= newFileOutputStream(file);int len = 0;byte[] buf = new byte[1024];while ((len = inputStream.read(buf, 0, 1024)) != -1) {

outputStream.write(buf,0, len);

}

outputStream.flush();

}catch(Exception e) {

logger.error("调用小程序生成微信永久小程序码URL接口异常", e);

}finally{if (inputStream != null) {try{

inputStream.close();

}catch(IOException e) {

e.printStackTrace();

}

}if (outputStream != null) {try{

outputStream.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}return null;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值