微信公众号开发系列(三)公众号生成二维码
首先第一步得到一个二维码ticket,这个主要就是一个换取凭证的过程,可以类别于坐高铁的车票。我们看下这个api
这里的32位是指二进制数,按照你想传参的类型选则是id还是str,通过action_name可以决定二维码是否是永久的,下面是参数json结构
{ "action_info": { "scene": { "scene_id": 12 } }, "action_name": "QR_SCENE", "expire_seconds": 7200 }
发送post请求,部分代码清单
如果成功会有下面的返回值,如果时永久的就没有过期时间字段。
首先是api,非常简单
那么上代码
public void generateQrCodeOfficial(JSONObject ticketJson, HttpServletResponse response) { StringBuilder sb = new StringBuilder(WxOaUrlConfig.API_SHOW_QR_CODE); try { sb.append("ticket=").append(URLEncoder.encode(ticketJson.getString("ticket"),"utf-8")); String url =sb.toString(); httpUtil.getImage(response,url); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
首先是拼接url,然后发送请求,这里设置响应的格式,同时用 字节流进行输出
public void getImage(HttpServletResponse response,String url){ try { URL u = new URL(url); HttpURLConnection conn = (HttpURLConnection) u.openConnection(); conn.setRequestMethod("GET"); InputStream inputStream = conn.getInputStream(); byte[] bytes = readInputStream(inputStream); inputStream.close(); response.setContentType("image/jpg"); OutputStream outputStream = response.getOutputStream(); outputStream.write(bytes); outputStream.flush(); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } } private byte[] readInputStream(InputStream inputStream) throws IOException { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = inputStream.read(buffer)) != -1){ outputStream.write(buffer,0,len); } inputStream.close(); return outputStream.toByteArray(); }
然后调用结果就是这样的。好了大家一起愉快的买票上车吧
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
10分钟快速搭建小程序项目