最近公司有在做一款APP和小程序,里面有一个扫一扫调到小程序页面的功能,所以就写了下面的一些内容,记录一下:

public class QrCodeUtils {public static String decodeQrcode(BufferedImage image) throws NotFoundException {MultiFormatReader formatReader = new MultiFormatReader();BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));//定义二维码的参数:Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();hints.put(DecodeHintType.CHARACTER_SET, "utf-8");//定义字符集hints.put(DecodeHintType.PURE_BARCODE, Boolean.TRUE);com.google.zxing.Result result = formatReader.decode(binaryBitmap, hints);//开始解析return result.getText();}public static String get(String url) {CloseableHttpClient httpClient = HttpClientBuilder.create().build();StringBuffer stringBuffer = new StringBuffer();HttpGet httpGet = new HttpGet(url);try {HttpResponse response = httpClient.execute(httpGet);HttpEntity entity = response.getEntity();InputStreamReader inputStreamReader = new InputStreamReader(entity.getContent(), "utf-8");char[] charbuffer;while (inputStreamReader.read(charbuffer = new char[10]) > 0) {stringBuffer.append(charbuffer);}} catch (IOException e) {e.printStackTrace();} finally {httpGet.releaseConnection();}return  stringBuffer.toString();}public static String getToken() {try {String result = get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" +Status.appid_s + "&secret=" +  Status.secret_s);
//我这边采用了截取的方法,不知道为什么 我在本地测试的话下面注释的方法是可以的,一放到服务器就不行了,我就用了最笨的方法截取,也可以采用下面我注释的方法           int index = result.indexOf(":");String newStr = result.substring(index + 1);int indexs = newStr.indexOf("\"");String newStrs = newStr.substring(indexs + 1);String access_token=newStrs.substring(0, newStrs.indexOf("\""));// String access_token = JSONObject.parseObject(result).getString("access_token");if (access_token != null || access_token != "") {return access_token;} else {return Status.message_null;}} catch (Exception e) {e.printStackTrace();return Status.message_fail;}}public static String getResult(int punchid,int userid){String lastName=null;String returnPath = "";try {URL url = new URL("https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + getToken());HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();httpURLConnection.setRequestMethod("POST");// 提交模式// conn.setConnectTimeout(10000);//连接超时 单位毫秒// conn.setReadTimeout(2000);//读取超时 单位毫秒// 发送POST请求必须设置如下两行httpURLConnection.setDoOutput(true);httpURLConnection.setDoInput(true);// 获取URLConnection对象对应的输出流PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());// 发送请求参数JSONObject paramJson = new JSONObject();
//这里是参数 不懂得可以看微信官方文档,不能写到path里面paramJson.put("scene", punchid);//参数
//这里要写二维码的路径paramJson.put("path", "pages/discover/sign_detail/index");paramJson.put("width", 430);printWriter.write(paramJson.toString());// flush输出流的缓冲printWriter.flush();//开始获取数据BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());ByteArrayOutputStream swapStream = new ByteArrayOutputStream();byte[] buff = new byte[100];int rc = 0;while ((rc = bis.read(buff, 0, 100)) > 0) {swapStream.write(buff, 0, rc);}ByteArrayInputStream inputStream = new ByteArrayInputStream(swapStream.toByteArray());BufferedImage image = ImageIO.read(inputStream);BufferedImage subImage = image.getSubimage(0, 0, image.getWidth(), (int) (image.getHeight() * 0.85));BufferedImage inputbig = new BufferedImage(256, 256, BufferedImage.TYPE_INT_BGR);Graphics2D g = (Graphics2D) inputbig.getGraphics();g.drawImage(subImage, 0, 0, 256, 256, null);g.dispose();inputbig.flush();String dateName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());// 重构文件名称String guid = RandomUtil.getYcode();String  images = dateName+guid + ".jpg" ;
//这边是我们公司自己的上传图片的方法,也可以采用下面注解的方法测试下载到本地returnPath = FormUtil.aliyunImageUploadByByte(swapStream.toByteArray(), Status.public_img, images);
//            StringBuffer wayName=new StringBuffer("D:/data");
//            wayName.append(dateName+".jpg");
//            lastName=wayName.toString();
//            pic_url="https://"+bucketName+"."+endpoint+"/"+filename;  Status.public_img
//            boolean jpg = ImageIO.write(inputbig, "jpg", new File(lastName));} catch (Exception e) {e.printStackTrace();}return returnPath;}}

大致就是这么多,这边我返回的是我们服务器上的一个路径,然后前端获取展示就可以扫描了,具体根据实际业务来。由于占时还没有数据,二维码我就不放上去了,可以自己随意测试。

小程序二维码(扫描二维码到小程序页面)相关推荐

  1. iOS AV Foundation 二维码扫描 02 扫码

    AVFoundation支持以下一维和二维码的扫描: QR code Aztec EAN13 EAN8 UPC-E PDF417 Code 93 Code 39 Code 39 mode 41 QR ...

  2. iOS-长按识别二维码/生成二维码/扫描二维码

    参考:http://www.jianshu.com/p/997cec333822 参考:https://github.com/nglszs/BCQRcode 方式一:长按识别二维码 #import & ...

  3. app生成二维码,扫描二维码

    一.扫描二维码 1.依赖: 1.1.添加到你的 Project Build.gradle:allprojects {repositories {...maven { url 'https://jitp ...

  4. 微信自主出题,答题小程序开发,微信扫描二维码实现方法,扫二维码出试卷答题的软件!

    自己手机做题,每个人都可以免费使用的答题小程序,只要扫一扫就可以使用,无需安装下载,还是挺方便的. 微信小程序在线考试系统的优点: 一.是成本低,基于网络化的电子题库资源的成本远远低于纸本的印刷高成本 ...

  5. 【Android】条形码/二维码扫描——ZXing源码分析及相关jar包导入

    转载自:http://blog.csdn.net/u010574567/article/details/51916604 *********************1.源码分析************ ...

  6. Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)...

    二维码的扫描,二维码的锁定与描边,二维码的扫描范围,二维码的生成(高清,无码,你懂得!),识别相册中的二维码 扫描二维码用到的三个重要对象的关系,如图: 1.懒加载各种类 // MARK: - 懒加载 ...

  7. ios客户端学习-二维码扫描和应用跳转

    转载至链接:http://sindrilin.com/ios-dev/2015/11/01/二维码扫描和应用跳转.html 序言 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...

  8. 二维码扫描和应用跳转

    转载自: http://sindrilin.com/ios-dev/2015/11/01/二维码扫描和应用跳转.html 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫 ...

  9. python+opencv制作电脑摄像头扫描二维码并自动打开

    在生活中我们有时候会遇到用电脑扫描更方便的情形,但是奈何现在的电脑程序都没有提供扫描二维码的功能,所以我花了半天的时间专门做了一个电脑扫描二维码程序. 实现目标:利用电脑摄像头识别二维码中的内容并自动 ...

  10. 二维码扫描的相关知识

    1.二维码扫描 二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或 ...

最新文章

  1. Tomcat安全加固
  2. centos下使用mysql,centos下使用mysql的一些问题和解决方法
  3. 1047. Student List for Course (25)
  4. 【Spark】开发Spark选择Java还是Scala?
  5. 请求接受json tp5_关于jq jsonp跨域请求错误处理bug
  6. 学生管理系统c语言代码实验报告,C语言学生信息管理系统实验报告(含源代码).doc...
  7. 漫谈并发编程(三):共享受限资源
  8. 拓端tecdat:R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化
  9. linux c Make file 的生成
  10. android随机抽奖代码_随机抽奖生成器app下载|随机抽奖生成器软件下载_v1.0_9ht安卓下载...
  11. chromebook安装devos和chrome os双启动经验分享
  12. SNP全称是什么? SNP是什么公司? SNP是什么意思?
  13. linux裸设备读写,Linux裸设备管理学习笔记
  14. panda3d场景的主要状态
  15. RestFul接口的安全验证事例
  16. 迸发中的小i机器人,2018年多处开花
  17. Python 练习题 身体素质指数
  18. RateLimiter配合ConcurrentHashMap对用户进行简单限流
  19. HP C7000刀片服务器实战5:VC模块配置
  20. 2020年第十二届全国大学生数学竞赛初赛(非数学)大题2-3题解析

热门文章

  1. 基于SSM的猫头鹰家教兼职平台
  2. java mysql数据库操作_java 操作mysql数据库
  3. 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创
  4. SPI 机制-插件化扩展功能
  5. ubuntu 15.10 升级 到Ubuntu 16.04.3 LTS
  6. Hibernate视频学习笔记(8)Lazy策略
  7. ARP (地址解析协议)
  8. WPF学习笔记(5):两个DataGrid的滚动条实现同步滚动(转)
  9. FFMPEG 常用命令行
  10. @@Autowired依赖注入先后顺序