微信小程序:获取不限制的小程序码后端Java实现

简介: 微信小程序:获取不限制的小程序码后端Java实现

文档


获取不限制的小程序码

看腾讯写的文档,对于不同的程序员来说,可能接收到的信息会不一样,往往需要花很多时间来调试


目录

1、请求参数

2、发起请求

3、响应结果

1、请求参数

根据文档,可以将入参提取为一个简单java类


用到的第三方库:


lombok

jackson

package com.demo.utils.wechat.entity;


import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;


/**

* 获取不限制的小程序码接口请求参数

* https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getUnlimitedQRCode.html

*/

@Data

public class UnlimitedQRCodeParam {

   /**

    * 默认是主页,页面 page,例如 pages/index/index,

    * 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),

    * 如果不填写这个字段,默认跳主页面。

    */

   private String page;


   /**

    * 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,

    * 其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)

    */

   private String scene;


   /**

    * 默认是true,检查page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错);

    * 为 false 时允许小程序未发布或者 page 不存在, 但page 有数量上限(60000个)请勿滥用。

    */

   @JsonProperty("check_path")

   private Boolean checkPath;


   /**

    * 否 要打开的小程序版本。

    * 正式版为 "release",默认

    * 体验版为 "trial"

    * 开发版为 "develop"

    */

   @JsonProperty("env_version")

   private String envVersion;


   /**

    * 否 默认430,二维码的宽度,单位 px,最小 280px,最大 1280px

    */

   private Integer width;


   /**

    * 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false

    */

   @JsonProperty("auto_color")

   private Boolean autoColor;


   /**

    * 默认是{"r":0,"g":0,"b":0} 。

    * auto_color 为 false 时生效,使用 rgb 设置颜色

    * 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示

    */

   @JsonProperty("line_color")

   private LineColor lineColor;


   /**

    * 否 默认是false,是否需要透明底色,为 true 时,生成透明底色的小程序

    */

   @JsonProperty("is_hyaline")

   private Integer isHyaline;


}


package com.demo.utils.wechat.entity;


import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;



@Data

public class LineColor {


   @JsonProperty("r")

   private Integer red;


   @JsonProperty("g")

   private Integer green;


   @JsonProperty("b")

   private Integer blue;

}


2、发起请求

请求时用 jackson 将参数序列化为json数据


发起请求时需要注意access_token 参数是查询参数形式传递,其他参数以json格式以body体形式传递


完整示例


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

Content-Type: application/json


{

"page": "pages/index/index",

"scene": "a=1",

"check_path": true,

"env_version": "release"

}


3、响应结果

响应结果


package com.demo.utils.wechat.entity;


import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;


@Data

public class UnlimitedQRCodeResult {


   @JsonProperty("errcode")

   private int errCode;


   @JsonProperty("errmsg")

   private String errMsg;


   private String contentType;


   private String buffer;

}



注意 这里需要注意:


文档上说返回值是json,实际操作下来会发现


如果调用成功,会直接返回图片二进制内容

如果请求失败,会返回 JSON 格式的数据

所以需要判断返回内容类型,根据contentType判断,


成功:如果是application/json就使用jackson解析,抛出异常

失败:如果是image/jpeg ,就使用byte[]接收二进制流

————————————————

版权声明:本文为CSDN博主「彭世瑜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/mouday/article/details/130302254

相关文章
|
4天前
|
移动开发 监控 供应链
JAVA智慧工厂制造生产管理MES系统,全套源码,多端展示(app、小程序、H5、台后管理端)
一开始接触MES系统,很多人会和博主一样,对MES细节的应用不了解,这样很正常,因为MES系统相对于其他系统来讲应用比较多!
15 1
JAVA智慧工厂制造生产管理MES系统,全套源码,多端展示(app、小程序、H5、台后管理端)
|
4天前
|
Dubbo Java 应用服务中间件
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
|
6天前
|
小程序 应用服务中间件 Linux
【Nginx】微信小程序后端开发、一个域名访问多个服务
【Nginx】微信小程序后端开发、一个域名访问多个服务
18 0
|
6天前
|
小程序 Java API
微信小程序和springboot实现微信支付
微信小程序和springboot实现微信支付
16 0
|
6天前
|
小程序 API
微信小程序-微信支付
微信小程序-微信支付
8 0
|
6天前
|
小程序
外卖小程序-购物车模块表结构设计和后端代码
外卖小程序-购物车模块表结构设计和后端代码
14 0
|
6天前
|
小程序 开发工具 Android开发
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(二)
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(二)
|
6天前
|
小程序 JavaScript 开发工具
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(一)
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(一)
|
6天前
|
移动开发 小程序 安全
使用阿里云短信+微信短链接跳转微信小程序
此内容是关于使用阿里云短信带传递参数的微信短链接跳转到微信小程序。首先,需要准备微信开发者工具和一个已认证的小程序。接着,开通云开发并配置云开发权限。然后,配置H5静态网页,包括设置云开发权限和处理不同设备的跳转方式。最后,上传云函数并修改其权限,获取微信短信链接,配置短链接参数,并开通阿里云短信服务以进行测试验证。整个过程涉及到了微信开发者工具、云开发、H5页面配置、云函数的创建和部署以及阿里云短信服务的开通和使用等步骤。
57 0
|
6天前
|
安全 Java 开发者
构建高效微服务架构:后端开发的新范式Java中的多线程并发编程实践
【4月更文挑战第29天】在数字化转型的浪潮中,微服务架构已成为软件开发的一大趋势。它通过解耦复杂系统、提升可伸缩性和促进敏捷开发来满足现代企业不断变化的业务需求。本文将深入探讨微服务的核心概念、设计原则以及如何利用最新的后端技术栈构建和部署高效的微服务架构。我们将分析微服务带来的挑战,包括服务治理、数据一致性和网络延迟问题,并讨论相应的解决方案。通过实际案例分析和最佳实践的分享,旨在为后端开发者提供一套实施微服务的全面指导。 【4月更文挑战第29天】在现代软件开发中,多线程技术是提高程序性能和响应能力的重要手段。本文通过介绍Java语言的多线程机制,探讨了如何有效地实现线程同步和通信,以及如

热门文章

最新文章