获取小程序二维码并保存为图片
项目中遇到一个生成小程序二维码的需求,经过调研采用官方提供的wxacode.getUnlimited 方法来生成,
官方文档地址: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html
思路:
- 首先请求接口,获取到二进制内容
- 然后将二进制转为图片,保存到本地/服务器
package org.jsola.hr.common.wechat;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;/*** 小程序二维码处理类*/
@Slf4j
@Component
public class QRCodeUtils {public void getQRCode() {Map<String, Object> parameters = new HashMap<>();// 小程序appidString appid = "xxx";// 小程序秘钥String secret = "xxx";log.info("appid:{},secret:{}", appid, secret);String accessToken = MessageHandlerUtil.getAccessToken(appid, secret).getAccessToken();parameters.put("scene", "");parameters.put("width", 430);String url= "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;// 请求生成二维码接口,返回图片二进制内容byte[] bytes = HttpUtils.httpPostByte(url, parameters);try {ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);BufferedImage bi1 = ImageIO.read(byteArrayInputStream);//可以是jpg,png,gif格式 File file = new File("C:\\Users\\Administrator\\Desktop\\123.png");// TODO: 将本地文件上传到服务器,返回图片存储地址// 不管输出什么格式图片,此处不需改动ImageIO.write(bi1, "jpg", file);} catch (IOException e) {log.error("生成小程序二维码失败:{}", e.getMessage());}}}
请求接口获取二进制流
package org.jsola.hr.common.wechat;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import kong.unirest.Unirest;
import lombok.extern.slf4j.Slf4j;import java.util.Map;/*** @Author* @Description:* @Date in 16:57* @Modify By:*/
@Slf4j
public class HttpUtils {private static ObjectMapper objectMapper = new ObjectMapper();/*** 获取二进制流** @param url url* @param params 参数值*/public static byte[] httpPostByte(String url, Map<String, Object> params) {String jsonParams = "";try {jsonParams = objectMapper.writeValueAsString(params);} catch (JsonProcessingException e) {e.printStackTrace();}kong.unirest.HttpResponse<byte[]> httpResponse = Unirest.post(url).body(jsonParams).asBytes();byte[] body = httpResponse.getBody();log.info("body:{}", body);return body;}}
获取小程序二维码并保存为图片相关推荐
- 微信小程序获取二维码接口整理,.Net Core后台获取小程序二维码
2019独角兽企业重金招聘Python工程师标准>>> 一.关于二维码接口说明 参考:https://my.oschina.net/tianma3798/blog/1811307 获 ...
- 获取小程序二维码携带的参数
小程序获取二维码参数 生成二维码的时候使用的是 wxacode.getUnlimited,接口 B(数量不受限制,参数较短) 文档的截图如下: 可以看到生成的二维码的参数需要放在 scene 中 假设 ...
- 微信小程序——服务端获取小程序二维码 永久有效 数量无限制
因为现在做的小程序,想要分享小程序中的页面给微信好友,那就可以使用二维码,很方便. 而且通过后台接口可以获取小程序任意页面的小程序码 扫描该小程序码可以直接进入小程序对应的页面,所有生成的小程序码永久 ...
- 小程序+二维码(带logo图片,可直接运行)
前言: 因为业务需要,再小程序上也得实现带logo的二维码效果,这里整理带logo二维码和不带logo二维码两种效果 效果图: 不带logo二维码效果图: 带logo二维码效果图: 一. 不带logo ...
- php生成小程序二维码出现40001的情况
php生成小程序二维码出现40001的情况 获取二维码时,小程序的access_token莫名奇妙失效了? 生成小程序二维码时遇到的坑,明明刚获取到的access_token,生成二维码时总是提示说 ...
- java获取微信小程序二维码图片并保存到本地
java获取微信小程序二维码保存到本地并返回图片,下次如果检查到本地有图片,那么就返回本地的图片,不再发起请求,否则重新发起请求并保存到本地,直接看代码吧. 获取access_token的方法可以参考 ...
- 小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈
小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈 一.概述 需要用到的生成二维码组件(可自行下载添加到小程序根目录utils里):https://github.com/demi52 ...
- 手把手教你Nodejs获取微信小程序二维码
[小程序二维码和普通二维码] 下图左为小程序码,右为普通二维码, 普通二维码的生成比较简单,只用jquery就可以生成,详见:https://blog.csdn.net/uikoo9/article/ ...
- 获取url地址后面参数的2种方法(小程序二维码跳转参数解析)
微信扫描小程序二维码后,在页面的onLoad函数的参数options内可以拿到跳转参数scene值,但是需要对scene进行decodeURIComponent操作,方法如下: 方法一: 扫码二维码地 ...
最新文章
- 如何高效读论文?剑桥CS教授亲授“三遍论”
- centos 安装php5.6
- python爬虫教程网-python爬虫入门10分钟爬取一个网站
- oracle 10046详解
- ASP.NET2.0数据库入门之SQL Server
- ceph中查看一个rbd的image的真实存储位置
- 物联网避坑 3 大指南!
- JAMA子刊:20来岁就要控制体重!分析超8万中国人数据发现,成年到中年体重每多增加10斤,老了之后死亡风险增加10%...
- 大数据之-Hadoop3.x_MapReduce_区内排序案例---大数据之hadoop3.x工作笔记0117
- 合并table中某一列相邻的相同的行
- DevExpress WinForm 控件汉化方法 代码(一)
- Mybatis学习教程②
- 应有尽有,Python 程序员需要掌握的机器学习“四大名著”发布啦
- html表格(网页里制作表格)
- 社保到底是多交好,还是少交好?
- JAVA视频资料百度网盘分享
- 后缀自动机(模板+例题)
- [前端框架]-VUE(下篇)
- Java之Builder模式使用
- iQQ 学习笔记3 :编写代码打包Ant脚本