生成带参二维码--微信公众平台开发(二)
2016-10-17 16:57
387 查看
微信公众号平台的生成二维码接口,生成的二维码里面保存的地址是当前公众号的URL,如果用户未关注公众号,扫描此二维码便会自动跳转到公众号关注页面;如果用户关注了此公众号,再次扫描二维码便会直接进入公众号。
生成二维码的时候可携带自定义的参数,譬如携带上生成者的userId,这样二维码分享出去的时候,别人扫描了此二维码关注了公众号,我们便能知道哪些人扫描了谁的二维码关注了公众号,方便做推广统计。
生成带参二维码总共需要3步:
1:获取access_token,方法参见:http://blog.csdn.net/qq_33556185/article/details/52758781
2:调用带参二维码接口创建二维码:
在jsp里面调用通过ticket换取二维码接口,直接将二维码显示在image标签里。
最后将此二维码页面嵌入app显示,效果如下:
生成二维码的时候可携带自定义的参数,譬如携带上生成者的userId,这样二维码分享出去的时候,别人扫描了此二维码关注了公众号,我们便能知道哪些人扫描了谁的二维码关注了公众号,方便做推广统计。
生成带参二维码总共需要3步:
1:获取access_token,方法参见:http://blog.csdn.net/qq_33556185/article/details/52758781
2:调用带参二维码接口创建二维码:
@RequestMapping("ansy/get2dBarCode") public Callable<String> get2dBarCode(final Model model, String userId, final HttpServletRequest request) { return new Callable<String>() { @Override public String call() throws Exception { if (userId != null && !userId.equals("")) { BarCode barCode = barCodeService.getBarCodeByUserId(Long.parseLong(userId)); // 生成过 if (barCode != null && barCode.getUser2dBarCode() != null&& !barCode.getUser2dBarCode().equals("")) { model.addAttribute("ticket", barCode.getUser2dBarCode()); } else { // 如果没有生成过 String accessToken = coreService.getWeixinAccessToken(); if (accessToken != null && !accessToken.equals("")) { String create2dBarCodeUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token="+ accessToken; Object param = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": " + userId + "" + "}}}"; String returnData = Common.sendPost(create2dBarCodeUrl, param); JSONObject json = JSONObject.fromObject(returnData); if (json.get("ticket").toString() != null && !json.get("ticket").toString().equals("")) { model.addAttribute("ticket", json.get("ticket").toString()); // 将2dBarCodeTicket存进barCode表 BarCode tempBarCode = new BarCode(); tempBarCode.setUser2dBarCode(json.get("ticket").toString()); tempBarCode.setUserId(Long.parseLong(userId)); barCodeService.add(tempBarCode); } } } } return Common.BACKGROUND_PATH + "/api/2dBarCode"; } }; }3)通过ticket获取二维码:
在jsp里面调用通过ticket换取二维码接口,直接将二维码显示在image标签里。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.js"></script> <title>推广二维码</title> <script> window.onload=function show2dBarCode(){ $("#imageId").attr("src","https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="+document.getElementById("ticket").value); } </script> </head> <body> <input type="hidden" value="${ticket }" id="ticket"/> <div align="center"> <image id="imageId" src="" width="90%" style="max-width: 400px;"> <br/> <small style="color: gray">扫一扫上面的二维码,关注蝌蚪冷暖在线公众号</small> </div> </body> </html>
最后将此二维码页面嵌入app显示,效果如下:
相关文章推荐
- Java微信公众平台开发之生成带参二维码
- 微信公众平台开发 批量生成及下载带参二维码图片
- Java微信公众平台开发之生成带参二维码
- Java微信公众平台开发之生成带参二维码
- 生成带参二维码--微信公众平台开发(二)
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众平台开发文档 生成带参数的二维码
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众号开发---生成带参二维码
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众平台开发文档 生成带参数的二维码
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众平台开发文档 生成带参数的二维码
- 微信公众号开发---生成带参二维码
- 微信公众平台开发(83) 生成带参数二维码(转)
- 微信公众平台开发(83) 生成带参数二维码
- 微信公众平台开发(83) 生成带参数二维码