二维码生成

一:后台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生成二维码

 

posted @ 2017-07-03 17:29  编码龟  阅读(191)  评论(0)    收藏  举报