1.生成二维码的代码片段

private String getQRCode(Integer id) {Map<String, Object> map = new HashMap<>();map.put("r", 0);map.put("g", 162);map.put("b", 232);HttpsUtil client = new HttpsUtil();try {String token = wxAccessTokenProvider.getAccessToken();String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+token File local = client.getWXACodeImg(url, id, 360, false, map,"二维码临时保存的位置");//把文件上传到了阿里云,可以改为保存到本地的,并返回能访问的路径       String smallUrl = ossFileUploadController.uploadQrCodeToOss(local, false, false);return smallUrl;} catch (Exception e) {e.printStackTrace();logger.info("二维码获取失败");}return null;}

2.构建请求客户端

private CloseableHttpClient client = null;//这里通过构造器,创建了httpClient。可以修改为别的方式httpClient请求方式
public HttpsUtil() {RequestConfig requestConfig = RequestConfig.custom()// connectionRequestTimeout 指从连接池获取连接的超时时间 (timeout requesting a connection from the connection manager).setConnectionRequestTimeout(100)// connectTimeout 指客户端和服务器建立连接的超时时间 (timeout until a connection is established).setConnectTimeout(1000)// socketTimeout 指客户端从服务器读取数据的超时时间 (timeout for waiting for data).setSocketTimeout(3000).build();client = HttpClients.custom().setDefaultRequestConfig(requestConfig)// The ConnectionTimeToLive determines the maximum age of a connection (after which it will be closed), // regardless of when the connection was last used// 参考: https://stackoverflow.com/questions/31566851/setconnecttimeout-vs-setconnectiontimetolive-vs-setsockettimeout.setConnectionTimeToLive(60 * 1000, TimeUnit.MILLISECONDS)// 默认只 2, 请求单个域名支持的最大连接.setMaxConnPerRoute(200)// 默认值 20, 最大总连接.setMaxConnTotal(400)// 设置重试次数, 默认是3次; requestSentRetryEnabled==false 如果请求已成功发送则不再重试. // 接收到response表示请求发送成功, 参考 HttpRequestExecutor#doSendRequest - context.setAttribute(HttpCoreContext.HTTP_REQ_SENT, Boolean.TRUE).setRetryHandler(new DefaultHttpRequestRetryHandler(0, false)).build();}//请求微信获取生成的小程序二维码
public File getWXACodeImg(String url, Integer inviteCode, int size, boolean autoColor, Object lineColor,String tempQRCodeDir) throws UnsupportedOperationException, IOException, Exception {HttpPost post = new HttpPost(url);setHeaderKeepAlive(post);Map<String, Object> map = new HashMap<>();map.put("scene", inviteCode);map.put("width", size);map.put("auto_color", autoColor);map.put("line_color", lineColor);String json = Convertor.toJson(map);logger.info(json);
//        System.out.println(json);HttpEntity entity = new StringEntity(json, Constants.CS_UTF_8);post.setEntity(entity);CloseableHttpResponse response = client.execute(post);InputStream inStream = response.getEntity().getContent();byte data[] = readInputStream(response.getEntity().getContent());
//      inStream.read(data); // 读取该数据inStream.close();if (data.length < 1024 * 10) {throw new BusinessException(new String(data));} else {File path = new File(tempQRCodeDir);if (!path.exists()) {path.mkdirs();}String file = tempQRCodeDir + "/"+ IDGenerator.getUUID()+ System.currentTimeMillis() + ".jpg";FileOutputStream os = new FileOutputStream(file);BufferedOutputStream bos = new BufferedOutputStream(os);InputStream in = new ByteArrayInputStream(data);byte[] b = new byte[1024];int nRead = 0;while ((nRead = in.read(b)) != -1) {os.write(b, 0, nRead);}os.flush();os.close();in.close();return new File(file);}}

3.获取accessToken

//请求获取tokenpublic String getWxToken(){String json = "";try {String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ "小程序的appId" + "&secret=" + "小程序的秘钥";json = httpUtil.get(url);} catch (Exception e) {throw new SystemException("获取微信接口accessToken网络异常", e);}            return json ;
}

微信-生成小程二维码相关推荐

  1. 微信生成门店渠道二维码总结记录

    微信生成门店渠道二维码总结记录 公司有几百家门店,给店长分配的有公众号关注量任务,于是需要知道每个店的扫码关注量以考核. 又不想有太多公众号以免难以管理,要求只用一个公众号,又要区分每个店,我想到的是 ...

  2. php生成小程序二维码出现40001的情况

    php生成小程序二维码出现40001的情况 获取二维码时,小程序的access_token莫名奇妙失效了? 生成小程序二维码时遇到的坑,明明刚获取到的access_token,生成二维码时总是提示说 ...

  3. node 无脑生成小程序二维码图

    RT 新建createwxaqrcode.js: const request = require('request') const fs = require('fs')// eg:生成购物车列表圆形二 ...

  4. 聚合二维码生成(小程序二维码、付款码)

    1. 付款码 点击前往 2. 小程序二维码 扫码进入小程序 第一步: 配置微信小程序二维码 微信公众平台 >开发 >开发设置 >扫普通链接二维码打开小程序 点击添加,配置二维码规则 ...

  5. 三种方式生成小程序二维码

    通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面,所有生成的二维码永久有效,可放心使用.目前微信支持两种二维码,小程序码(左),小程序二维码(右),如下所示: 为满 ...

  6. 调用支付宝接口生成小程序二维码的坑(PHP)

    引言:最近在开发支付宝小程序生成二维码的时候碰到了一点问题,记录一下 1.需求 正在开发的这个项目是一个电商类小程序,需求是给每个产品生成一个独立的小程序二维码 2.实现 了解了需求之后,开始查官方文 ...

  7. PC端生成小程序二维码海报并下载

    我采用了前端截屏+前端生成二维码的方法展示海报并下载 上代码 //截屏组件 import html2canvas from 'html2canvas' //生成二维码组件 import QRCode ...

  8. 微信生成带头像二维码

    生成带头像二维码 <?php //文档 //https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542header ...

  9. 【小程序】node/小程序云开发生成小程序二维码并添加文件到云存储/腾讯云存储

    [前情提要] 1-小程序云函数生成小程序码 2-小程序云函数上传到云存储,云存储包括 小程序云存储/腾讯云存储 (因为云函数 就是node.js语法写的吗,所以下面写法对于node同样适用) 3-这里 ...

最新文章

  1. 【设计模式】适配器模式 ( 概念 | 适用场景 | 优缺点 | 外观模式对比 | 适配器模式相关角色 | 类适配器 | 对象适配器 | 实现流程 )
  2. 面向小白:git和github的简明使用教程
  3. .Net 事件类型的实现和推荐做法
  4. ArcGIS实验教程——实验三:矢量数据采集与编辑(矢量化)
  5. JSP根据状态动态改变数据表格按钮
  6. DropDownList实现无限分级
  7. opensource项目_最佳Opensource.com:硬件
  8. java 安卓 html文件怎么打开方式_android 浏览器 打开本地html文件的方法
  9. 声智科技完成B轮2亿元融资,AI方案遍布百度小米华为阿里产品
  10. [Java] 蓝桥杯ALGO-99 算法训练 薪水计算
  11. 校园推广方案:常用手段及百试不爽的方法
  12. 24.UART串口通讯框图、波特率计算方法
  13. 写给Gallen1983
  14. 我的世界1.12.2java下载_我的世界1.12.2
  15. 20155305乔磊2016-2017-2《Java程序设计》第五周学习总结
  16. 3,uniapp功能之—蓝牙秤,连接蓝牙秤获取重量实时显示在页面上(坤宏的蓝牙秤)
  17. 医疗数字化:区块链或成最强辅助
  18. 沈阳市计算机学校辛亮,2017-2018学年度(下)听评课总结.doc
  19. 浅析客户端渲染(CSR)与服务端渲染(SSR)
  20. freepascal linux 界面,FreePascal中的编译器选项

热门文章

  1. [Pytorch框架] 5.1 kaggle介绍
  2. 我的理想200字计算机工程师,我的理想:工程师
  3. ***cgy学长爱吃糖果***
  4. 一个金融行业站SEO优化方案
  5. 计算思维(1)-质因数
  6. 【231】判断是否是2的次幂--位运算相关
  7. 假如自家APP被苹果下架了 你会怎么处理?
  8. LogicFlow自定义业务节点
  9. win10可以上网但是网路连接显示小地球-解决办法
  10. 数据处理--图片像素点聚类