应为是直接返回二进制数据所有与其他接口些许差别,希望能帮助现在的你!

          谢谢!!! 

 

/**
* 37、微信二维码生成
*/
public String getWeiXinCourseMap() {
  String courseId = StringUtils.defaultString(getPara("courseId"));
  String codeUrl = "";
  String path = "你的二维码指向路径(可以拼接参数)";
  try {
    codeUrl = GetUserOpenId.getCourseMap(path+courseId, 450);
  } catch (Exception e) {
  }

  return codeUrl; //二维码文件下载路径
}

/**
* @方法名:获取小程序二维码
* @参数:path:路径加上参数 width:宽
* @输出: result 文件下载路径
* @备注:
* @作者: 林
* @时间: 2019年12月1 1:15:30
* @修改:
*/
public static String getCourseMap(String path , Integer width){
String assessToken = getAccess_token();
String weixin_url ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token="+assessToken;
JSONObject js = new JSONObject();
js.put("access_token", assessToken);
js.put("path", path);
js.put("width", width);
String result = CommonUtil.httpsRequestToMap(weixin_url, "POST", js.toJSONString());
Map<String, String> map = new Hashtable<String, String>();
return result;
}

/**
* @方法名:获取access_token
* @参数:
* @输出:
* @备注:
* @作者: 林
* @时间: 2019年12月1 1:21:46
* @修改:
*/
public static String getAccess_token(){
String access_token = "";
String grant_type = "client_credential";
String weixin_url ="https://api.weixin.qq.com/cgi-bin/token";
String params = "appid=" + ConstantUtil.APP_ID + "&secret=你的密钥&grant_type=" + grant_type;
String result = CommonUtil.httpsRequest(weixin_url, "POST", params);
try {
//解析相应内容(转换成json对象)
JSONObject json =JSONObject.parseObject(result);
//操作标识(access_token)
access_token =String.valueOf(json.get("access_token"));
} catch (Exception e) {
}
return access_token;
}

/**
* 发送https请求 返回图片
*
* @param requestUrl
* 请求地址
* @param requestMethod
* 请求方式(GET、POST)
* @param outputStr
* 提交的数据
* @return 返回微信服务器响应的信息
*/
public static String httpsRequestToMap(String requestUrl, String requestMethod, String outputStr) {
try {
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setSSLSocketFactory(ssf);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
// 设置请求方式(GET/POST)
conn.setRequestMethod(requestMethod);
conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
// 当outputStr不为null时向输出流写数据
if (null != outputStr) {
OutputStream outputStream = conn.getOutputStream();
// 注意编码格式
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 从输入流读取返回内容
long start = System.currentTimeMillis();
InputStream inputStream = conn.getInputStream();
String interUrl = 需要存储的路径+文件名称.png";
FileOutputStream fos = new FileOutputStream(interUrl);
// 一次读取一个字节
int by = 0;
while ((by = inputStream.read()) != -1) {
fos.write(by);
}
// 释放资源
fos.close();
long end = System.currentTimeMillis();
long gong = end - start;
inputStream.close();
inputStream = null;
conn.disconnect();
return interUrl;
} catch (ConnectException ce) {
log.error("连接超时:{}", ce);
} catch (Exception e) {
log.error("https请求异常:{}", e);
}
return null;
}

微信小程序获取二维码(直接上代码)https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN的更多相关文章

  1. 关于微信小程序获取二维码的踩坑记录

    1.踩坑需求:获取小程序的二维码 2.踩坑接口: https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN3 踩坑代码 pu ...

  2. 微信小程序获取二维码并把logo替换为自己的头像

    $avatarUrl = 'http://cms-bucket.nosdn.127.net/2018/05/28/a1a44ffdc2d24f928c1860d4fbf54703.jpeg?image ...

  3. 微信小程序获取二维码API

    <%@ WebHandler Language="C#" Class="ce" %> using System; using System.Web; ...

  4. 微信小程序获取二维码参数

    var scene = decodeURIComponent(options.scene)

  5. .NET开发微信小程序-生成二维码

    1.生成小程序二维码功能 直接请求相应的链接.传递相应的参数 以生成商铺的付款码为例: var shopsId = e.ShopsId //付款码的参数 var codeModel = new fun ...

  6. .NET开发微信小程序-生成二维码 - 转

    1.生成小程序二维码功能 直接请求相应的链接.传递相应的参数 以生成商铺的付款码为例: var shopsId = e.ShopsId //付款码的参数 var codeModel = new fun ...

  7. 微信小程序- 生成二维码

    wx.request({ // 获取token url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential', ...

  8. 微信小程序通过二维码获取参数运行

    小程序开发过程中会遇到参数id会通过二维码获取,然后执行接口获取数据,但是难免会遇到带过来的参数出现乱码,这样就需要解码,多个参数时就需要进行处理取我们需要的字段值:小程序开发过程中会遇到参数id会通 ...

  9. 微信小程序--扫描二维码

    场景---在微信中扫描朋友发来的二维码后进入小程序,其实那个地址是带有参数的,那么如何接收那个参数呢,其实就是进入小程序页面的onLoad生命周期行数的options参数里面.

随机推荐

  1. Vue学习系列(四)——理解生命周期和钩子

    前言 在上一篇中,我们对平时进行vue开发中遇到的常用指令进行归类说明讲解,大概已经学会了怎么去实现数据绑定,以及实现动态的实现数据展示功能,运用指令,可以更好更快的进行开发.而在这一篇中,我们将通过 ...

  2. SpringBoot之响应式编程

    一 Spring WebFlux Framework说明 Spring WebFlux 是 Spring Framework 5.0 中引入的新 reactive web framework.与 Sp ...

  3. Ubuntu svn 安装 Rabbitvcs

    先添加源 sudo add-apt-repository ppa:rabbitvcs/ppa 必要的话在源清单里面也添加一下 sudo gedit /etc/apt/sources.list 内容是 ...

  4. ansible模块之yum、pip、service、corn、user、group

    ansible相关模块 yum rpm 和yum 的区别 rpm:全称redhat package manager (红帽包管理器) 不能解决包之间的依赖关系 yum:可以解决依赖关系 yum 源配置 ...

  5. 一分钟带你了解JWT认证!

    目录 一.JWT简介 二.JWT认证和session认证的区别 三.JWT认证流程 四.JWT组成 五.JWT使用场景 一.JWT简介 JSON Web Token(JWT)是一个开放的标准(RFC ...

  6. 创建WebApi

    一.创建 Web 项目 使用vs创建项目,选择“ASP.NET Core Web 应用程序”模板,将项目命名为 TodoApi,然后单击“确定”. 在“新建 ASP.NET Core Web 应用程序 ...

  7. Flask:数据库的建模

    学习完模板系统,接下来要研究的就是框架对数据库的操作,不论python的那个框架,直接使用数据库API(redis.pymysql等)都可以进行操作,但是这些操作不够方便,于是就有了ORM 1.Fla ...

  8. 【XSY2131】【BZOJ1857】【SCOI2010】传送带

    Description 题目描述: 在一个二维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.小y在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动 ...

  9. SpringBoot之集成MyBatis

    引入工程依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  10. EffectiveJava-3

    一.如果其他类型更适合,则尽量避免使用字符串 1. 字符串不适合代替枚举类型 2. 字符串不适合代替聚合类型,例如: String compoundKey = className+ "#&q ...