二维码生成
一:后台java代码生成二维码
1.所需jar包:qrcode.jar、qrcode_swetake.jar(这两个jar在maven仓库中好像没有,这里只能将其放到lib下)
2.前台请求
<script type="text/javascript"> $(document).ready(function(){ var strUrl="http://m.quicksure.com/ludiquickSureMobileServer/"; //拼接url $.ajax({ url: getUrl()+"/loginUser/parseQRCode.do?userId="+userId+"&strUrl="+strUrl, type:'post', success : function(data) { $('#qrcode').attr('src',"data:image/jpeg;base64,"+data); //注意:img 的src前面需要拼接data:image/jpg;base64, 在加上后台生成的二进制才能正确解析二进制 } }) }); </script>
3.后台java代码生成二维码并输出到前台
/** * 生成二维码 * @throws Exception */ @RequestMapping("parseQRCode.do") @ResponseBody public String parseQRCode(HttpServletRequest httprequest) throws Exception{ String result=""; CreateQRCodeUtils codeUtil = new CreateQRCodeUtils();//二维码生成工具类 String userId = httprequest.getParameter("userId"); String strUrl = httprequest.getParameter("strUrl"); //获取web项目全路径 String basePath = httprequest.getScheme()+"://" +httprequest.getServerName()+":"+httprequest.getServerPort()+httprequest.getContextPath() +"/"; String ccbPath = basePath+"views/quicksure/images/logo5.png"; //获取图片路径(URL) logger.info("userid = "+userId); /** 再此调用扫描二维码的方法获取Id */ String codeId="1";//二维码登录ID,用于判断是否是生成二维码时候再次登录 String data=""; //生成二维码的链接(车险首页) data=strUrl+"?userId="+userId+"&codeId="+codeId; //读取文件转换为字节数组 ByteArrayOutputStream output = new ByteArrayOutputStream(); //生成二维码(data:二维码内容,output:字节输出流,png:图片类型 ,8:图片尺寸大小, ccbPath:logo图片所在路径URL) result = codeUtil.encoderQRCode(data, output, "png", 7, ccbPath); return result; }
这样生成的二维码是中间带有图标的,并且可以在微信里面长按可以识别二维码的
二:JS生成二维码

浙公网安备 33010602011771号