Java 获取小程序码的两种方式

这篇具有很好参考价值的文章主要介绍了Java 获取小程序码的两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前小程序推出了自己的识别码,小程序码,圆形的码看起来比二维码好看。

本文总结微信小程序的获取小程序二维码的接口开发。官方地址

主要内容摘抄自微信小程序的API文档,java接口开发是自己总结开发。

一、简介

通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面。

目前微信支持两种二维码,小程序码(左),小程序二维码(右),如下所示:这篇文章主要讲解的是获取小程序码的两种方式。

获取<小程序码>的前提

必须获取小程序的TOKEN

获取 access_token
详见文档

/**
  * 获取token
  * @param url
  * @param grantType
  * @param appid
  * @param secret
  * @return
  */
 public static String getAccessToken(String url,String grantType,String appid,String secret){
     String access_token = "";
     String tokenUrl = url+"?grant_type="+ grantType+"&appid="+ appid + "&secret="+ secret;
     Object result = HttpUtils.doGet(tokenUrl);
     JSONObject jsons = JSONObject.parseObject(result.toString());
     String expires_in = jsons.getString("expires_in");
     if(BL3Utils.isNotEmpty(expires_in)&&Integer.parseInt(expires_in)==7200){
         //ok
         access_token = jsons.getString("access_token");
     }else{
         System.out.println("出错获取token失败!");
     }
     return access_token;
 }

参数介绍:

1.url :https://api.weixin.qq.com/cgi-bin/token
2.grantType: client_credential
3.appid:小程序appid,微信公众平台注册小程序时自动生成的。
4.secret:小程序secret,微信公众平台注册小程序时自动生成的。
5.url 和grantType参数官网其实有介绍的。

获取小程序码的两种方式

目前有两个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口

第一种

  1. 适用于需要的码数量较少的业务场景
  2. 是呢不带参数有限个小程序码接口
  3. 总共生成的码数量限制为100,000,请谨慎调用。

接口地址:

https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

(1)POST 参数说明

参数 类型 默认值 说明
path String 不能为空,最大长度 128 字节
width Int 430 二维码的宽度
auto_color Bool false 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
line_color Object {“r”:”0”,”g”:”0”,”b”:”0”} auth_color 为 false 时生效,使用 rgb
设置颜色 例如 {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}

注意:通过该接口生成的小程序码,永久有效,但数量有效,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。

(2)请求接口测试

使用http请求插件postman或者RESTClient请求测试。

请求测试结果返回一个小程序码图片,与微信公众平台生成二维码不同,小程序码直接返回文件流,不是微信公众平台的url和ticket。

(3)java接口开发

    /**
     1. 带参数有限个数小程序码接口
     2. @param url
     3. @param access_token
     4. @param path
     5. @param width
     6. @return
     */
     public static InputStream getwxacode(String url,String access_token,String path,String width){
         url = url + "?access_token=" + access_token;
         JSONObject jsonParam = new JSONObject();
         jsonParam.put("path", path);
         jsonParam.put("width", Integer.parseInt(width));
         jsonParam.put("auto_color", false);
         Map<String,Object> line_color = new HashMap<>();
         line_color.put("r", 0);
         line_color.put("g", 0);
         line_color.put("b", 0);
         jsonParam.put("line_color", line_color);
         InputStream instreams = HttpUtils.doWXPost(url, jsonParam);
         if(BL3Utils.isEmpty(instreams)){
             System.out.println("出错获取二维码失败!");
         }
         return instreams;
     }

参数说明

1.url : https://api.weixin.qq.com/wxa/getwxacode

2.access_token:上面有介绍(getAccessToken这个方法)

3.path:用户扫描该码进入小程序后,将直接进入 path 对应的页面;一般是首页地址:”pages/index/index”
也可以带上参数:”pages/index/index?query=1”。

4.width:二维码的宽度 int类型 默认 430

第二种

  1. 适用于需要的码数量极多的业务场景
  2. 没有数量限制呢
  3. 带参数

接口地址:

https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

(1)POST 参数说明

参数 类型 默认值 说明
scene String
最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&’()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用
urlencode 处理,请使用其他编码方式)
page String 必须是已经发布的小程序页面,例如 “pages/index/index” ,如果不填写这个字段,默认跳主页面
width Int 430 二维码的宽度
auto_color Bool false 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
line_color Object {“r”:”0”,”g”:”0”,”b”:”0”} auto_color 为 false 时生效,使用 rgb
设置颜色 例如 {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}

注意:通过该接口生成的小程序码,永久有效,数量暂无限制。用户扫描该码进入小程序后,开发者需在对应页面获取的码中 scene
字段的值,再做处理逻辑。使用如下代码可以获取到二维码中的 scene 字段的值。调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx
进行模拟,开发工具模拟时的 scene 的参数值需要进行 urlencode。同时需要注意,此接口的page参数中不能带任何参数,参数都在scene
参数中处理,切记!!!

// 这是首页的 js  
 Page({  
 onLoad: function(options) {  
 // options 中的 scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene  
 var scene = decodeURIComponent(options.scene)  
 }  
 })

(2)请求接口测试

(3)java接口开发

    /**
      * 带参数无限个数小程序码接口
      * @param url
      * @param access_token
      * @param path
      * @param width
      * @return
      */
      public static InputStream getwxacodeunlimit(String url,String access_token,String path,String width){
          String[] str = path.split("[?]");
          path = str[0];
          String scene = str[1];
          url = url + "?access_token=" + access_token;
          // 接收参数json列表
          JSONObject jsonParam = new JSONObject();
          jsonParam.put("scene", scene);
          jsonParam.put("page", path);
          jsonParam.put("width", Integer.parseInt(width));
          jsonParam.put("auto_color", false);
          Map<String,Object> line_color = new HashMap<>();
          line_color.put("r", 0);
          line_color.put("g", 0);
          line_color.put("b", 0);
          jsonParam.put("line_color", line_color);
          InputStream instreams = HttpUtils.doWXPost(url, jsonParam);
          if(BL3Utils.isEmpty(instreams)){
              System.out.println("出错获取二维码失败!");
          }
          return instreams;
      }

参数说明

1.url : https://api.weixin.qq.com/wxa/getwxacodeunlimit
2.access_token:上面有介绍(getAccessToken这个方法)
3.path:用户扫描该码进入小程序后,将直接进入 path 对应的页面;一般是首页地址”pages/index/index”
也可以带上参数:”pages/index/index?query=1”。
4.width:二维码的宽度 int类型 默认 430文章来源地址https://www.toymoban.com/news/detail-626345.html

注意:

  1. 第二种生成小程序码的情况 只有小程序上线后才能生成二维码。
  2. 其他方法生成的码只有小程序上线后才会有权限访问 否则会提示小程序尚未发布

到了这里,关于Java 获取小程序码的两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【钉钉小程序】钉钉小程序预览文件的两种方式,从获取权限到预览文件全过程

    最近写钉钉小程序项目过程中,要实现页面展示pdf、word、ppt等文件的功能。在网上搜了很多文章,研究了很久,总结了一下有两种实现该功能的方法,方法一:借助web-view组件打开外部网页;方法二:通过上传到钉盘,从钉盘打开文件。具体过程如下。 钉钉开放文档-web-vie

    2024年02月15日
    浏览(118)
  • 线程方法接收参数示例,Java的两种线程实现方式区别

    总所周知,Java实现多线程有两种方式,分别是继承Thread类和实现Runable接口,那么它们的区别是什么? 继承 Thread 类: 通过继承 Thread 类,你可以创建一个直接表示线程的类。你可以覆盖 Thread 类中的 run 方法来定义线程的逻辑。当调用 start 方法启动线程时,会执行该类中的

    2024年02月11日
    浏览(30)
  • 线程方法接收参数和返回参数,Java的两种线程实现方式对比

    总所周知,Java实现多线程有两种方式,分别是继承Thread类和实现Runable接口,那么它们的区别是什么? 继承 Thread 类: 通过继承 Thread 类,你可以创建一个直接表示线程的类。你可以覆盖 Thread 类中的 run 方法来定义线程的逻辑。当调用 start 方法启动线程时,会执行该类中的

    2024年02月11日
    浏览(31)
  • 微信小程序入门及开发准备,申请测试号以及小程序开发的两种方式,目录结构说明

    目录 1. 介绍 1.1 优点 1.2 开发方式 2. 开发准备 2.1 申请 2.2 申请测试号 2.2 小程序开发的两种方式 2.3 开发工具 3. 开发一个demo 3.1 创建项目 3.2 配置 3.3 常用框架 3.3 目录结构说明 3.4 新建组件 是一种不需要下载安装即可使用的应用,是一种 触手可及 的应用 可以借助微信的流量

    2024年02月05日
    浏览(33)
  • 【Redis,Java】Redis的两种序列化方式—nosql数据库

    redis和mysql的区别: redis是属于nosql的数据库,而mysql是属于sql数据库,redis是属于nosql数据库。mysql是存储在磁盘中的,redis是存储在内存中的,所以redis的读取书读快。这里所说的redis代表nosql,而mysql代表sql。 redis的数据库是以键值对为基础存储在内存中的,而mysql为代表的关

    2024年02月21日
    浏览(42)
  • ES的两种认证登录方式: JAVA REST Client/HTTP Client

    通过RestHighLevelClient发送的es请求验证方式: 通过http直接发送的es请求认证方式:

    2024年02月16日
    浏览(28)
  • 快速获取cookie的两种方式

    在需要获取Cookie的谷歌浏览器界面,按Ctrl+Shift+j打开js控制台。 输入 console.log(document.cookie) 回车打印Cookies 新建书签,书签名称随意,书签的网址是以下网址: 在需要获取Cookie的页面,点击这个小书签,就直接复制好了Cookie了。 以上两种方式是自用实测比较方便高效的,在此

    2024年02月11日
    浏览(44)
  • 微信小程序: java实现获取手机号方式

    目录 1. 现在比较简单的方式 - 接口名 --- 功能描述 - 调用方式 --- HTTPS 调用 --- 第三方调用 --- 请求参数 --- 返回参数 2. 实现方式 1. 加入fastjson依赖  2. http请求类 3. Json串工具类 4.接口方法 3.另外介绍一点access_token 微信官方文档介绍:  getPhoneNumber --- 功能描述 该接口需配合手机

    2024年02月16日
    浏览(53)
  • Shell脚本参数获取的两种方式

    方式一 示例 新建一个test.sh文件 执行脚本 : sh test.sh 5 6 3 6 2 输出的结果: 使用该方式有两点需要注意的地方:“$0” 表示的是脚本名称本身 优点 : 获取参数方便、简洁 缺点 :必须按照指定的顺序输入参数,中间不能漏参数。否则参数将会产生错乱。 方式二 使用 getopts 方式

    2024年02月12日
    浏览(61)
  • java 将word转为pdf文件的两种方式【spire.doc.free】【documents4j】

    如资产证明等场景下,一般要求同时生成word与pdf两种格式的证明文件,且两者格式需保持一致,可以各自单独生成,但那样可能需要维护两个模板文件,所以也可以仅定义一份word的模板文件,使用模板生成word文件,再将word转换为pdf,这样不仅少维护一个模板,也可以保证

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包