wxHelper使用教程

2023-05-16

方法介绍

  • 前言
  • 1.工具介绍🔗
    • 1.1 环境介绍
    • 1.2 功能介绍
    • 1.3 源码地址
  • 2.使用说明🔗
    • 2.1.Server说明
    • 2.2.引入jar包
  • 3.方法介绍🔗
    • 1.服务器配置(token验证)
    • 2.自定义菜单
    • 3.网页授权-回调地址
    • 4.网页授权-用户凭证
    • 5.基础支持
    • 6.签名获取(用户分享)
    • 7.消息推送(模板消息)

前言

  如果你能看到这篇博文,说明你目前正在进行【公众号开发】,希望这篇博文能帮助到你。
  我在19年1月份更了第一篇关于微信开发的文章链接: 【微信授权登录:移动端(一)】,截止到现在也陆续的更新了微信公众号开发相关的其它功能实现。由于时间跨度大和其它原因。导致【微信公众号开发专栏】中的博文没办法整体连贯起来。内容相对独立,其中用的技术栈也不同。有些内容现在看起来已经不太适用了。奈何时间久远加上没有合适的机会的情况下,就没有去大刀阔斧的更新博文内容。
  封装API是在21年2月开始的,在公司开发公众号的过程中,由于项目较多以及每个项目的功能实现可能不一样,就导致每个公众号里面都要写一些与其它项目重复的代码。有时候随着项目功能的变更就会导致关于微信功能开发的代码从一个项目Copy到另一个项目中,在这样的环境下产生了封装API的想法法,那就是减少重复的工作量,提高开发效率。使关注点放在业务。

1.工具介绍🔗

  使用java语言开发的一个工具类,wxHelper,旨在将实现公众号功能简单化,通过一个简单的方法调用实现功能。

1.1 环境介绍

工具idea
语言JAVA
框架SpringBoot
JDK8

1.2 功能介绍

  对微信公众号中的常用API进行了封装,通过简单的调用,即可实现功能,提高开发效率。对于token的处理,内置了缓存机制,以保证token的有效,无需担心token的过期情况。

1.3 源码地址

https://gitee.com/BuYaoPenXiangShui/wechat-packaging
这里提供一个已经打好的jar包:jar包下载
:此jar包版本教早,不过常用功能都有,需要最新版的,可点击上方地址查看下载

2.使用说明🔗

  访问上方👆源码地址,将源码下载到本地后,打成jar包。然后引入自己的项目即可,也可使用上方提供的jar包。
本项目已在公司多个项目中使用,至今未发现任何问题,请放心使用,如果出现问题请先检查appid和密钥是否配置正确
如果以上问题确认无误后仍有问题,欢迎下方留言💬

2.1.Server说明

  目前提供了一下几个Server类以供使用,这里简要说明下作用,后面会对其中的方法进行详细的说明。

入口类作用
WeChatTokenCheckServer服务器配置(token验证)
WeChatMenuServer自定义菜单
WeChatAuthServer 微信网页授权
WeChatSNSAuthServer 网页授权,获取用户相关信息
WeChatCgiBinServer 基础接口调用
WeChatSignatureServer 签名服务
WeChatMsgServer 消息推送

2.2.引入jar包

1️⃣.项目根目录下创建lib文件夹,并添加jar包
在这里插入图片描述
2️⃣.修改pom.xml 文件
  在pom.xml中,引入依赖即可,然后再根据自己的项目打包情况进行相应的配置即可。
1.引入依赖

<dependency>
            <groupId>wx.control.centre</groupId>
            <!--填写引入jar包包名-->
            <artifactId>wxHelper</artifactId>
            <!--填入版本号-->
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${pom.basedir}/lib/wxHelper-1.0.jar</systemPath>
</dependency>

2.打包配置
如果你的项目要打包成war包,则进行如下配置👇

			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>${basedir}\lib</directory>
                            <targetPath>WEB-INF/lib/</targetPath>
                            <includes>
                                <include>**/*.jar</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

如果你的项目要打包成jar包,则进行如下配置👇

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>

3.方法介绍🔗

所有的方法调用方式如下👇
xxxxServer.serverName(param);

1.服务器配置(token验证)

  服务器配置开启后,自动回复和菜单设置将不能在微信公众平台中配置,只能通过api去配置。

📖相关博文📖👉微信公众号-服务器配置(token验证)

WeChatTokenCheckServer
①.token验证

方法参数说明
checkToken()request
token微信公众平台配置的token值
返回的是个布尔类型。true时代表token验证通过,false表示验证失败。

2.自定义菜单

  使用此功能需要先开启服务器配置

📖相关博文📖👉微信公众号开发-自定义菜单

WeChatTokenCheckServer
①.创建菜单

方法参数说明
menuCreatWithAccessToken() button:按钮数据集合
accessToken:基础接口中获取的值
appId:微信公众平台appId
appSecret:微信公众平台appSecret
两个方法都是用来创建菜单的,只
是入参不一样
menuCreat()
菜单的查询和删除接口暂时没实现,一般用不到就没整。

3.网页授权-回调地址

  获取微信授权回调地址

📖相关博文📖👉微信授权登录:移动端[unionid](一)

WeChatAuthServer
①.获取微信授权回调地址

方法参数说明
参数说明
getAuthorizeUrl() APPID 第三方用户唯一凭证 此方法可以根据自己的业务自由传参。
getAuthorizeUrlByBase() REDIRECT_URI 授权后重定向的回调链接地址,无需使用urlEncode对链接进行处理静默授权(不会弹出授权页面,直接跳转,只能获取用户openid)。
getAuthorizeUrlByUserInfo() snsapi_userinfo 授权后重定向的回调链接地址,无需使用urlEncode对链接进行处理非静默授权(弹出授权页面,可通过openid拿到昵称、性别、所在地)

返回的是一个授权地址,回调地址无需进行转码,方法已经处理。

4.网页授权-用户凭证

  获取网页授权凭证(主要网页授权Access_Token和openId),此处的access_token为网页授权的,并非普通的access_token
注:授权回调返回的code值只能使用一次

📖相关博文📖👉微信授权登录:移动端[unionid](一)

WeChatSNSAuthServer

①.获取授权凭证
  获取accessToken和openId

方法参数说明
getOauth2TokenByCode()appId 公众号的唯一标识
appSecret 公众号的appsecret
Code 填写授权后获取的code参数(跟在回调路由后)
返回网页授权凭证,用WeixinOauth2Token接收 WeixinOauth2Token 参数如下:👇
参数说明
accessToken 网页授权接口调用凭证
expiresIn 凭证有效时长
refreshToken 用于刷新凭证
openId 用户标识
scope 用户授权作用域

②.获取openId
  仅获取openId,请勿与 getOauth2TokenByCode()同时使用

方法参数说明
getOpenIdByCode()appId 公众号的唯一标识
appSecret 公众号的appsecret
Code 填写授权后获取的code参数(跟在回调路由后)

③.获取用户信息
  获取微信用户信息-网页授权作用域为snsapi_userinfo时生效。

方法参数说明
getSnsUserInfo()openId 用户的openId
accessToken 第①个方法中获取的accessToken

返回用户信息,使用 SNSUserInfo 对象接收,SNSUserInfo 对象参数如下:👇

用户头像链接用户特权信息(即将废弃)
参数说明
openId 用户标识
nickname 用户昵称
sex 性别(1是男性,2是女性,0是未知)
country 国家
province 省份
city 城市
headImgUrl 国家
privilegeList 国家
unionid 用户unionid,需要绑定开放平台才会获取到

④.获取refresh_token
   获取refresh_token 用于刷新access_token(如果需要)

方法参数说明
getRefreshTokenByCode()appId 公众号的唯一标识
appSecret 公众号的appsecretn
Code 填写授权后获取的code参数(跟在回调路由后)

⑤.刷新access_token

方法参数说明
refreshToken()appId 公众号的唯一标识
refreshToken 通过getRefreshTokenByCode获取到的refresh_token参数值

⑥.检验授权凭证

方法参数说明
checkSnsAuth()openId 用户标识
accessToken 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

5.基础支持

  主要用于获取token,直接调用方法获取就行,不用担心token过期的情况。


WeChatCgiBinServer

①.获取token

方法参数说明
getToken()appId 公众号的唯一标识
appSecret 公众号的appsecret

②.获取ticket

方法参数说明
getTicket()()accessToken getToken()获取的值

6.签名获取(用户分享)

  获取签名,用于实现分享功能

📖相关博文📖👉微信分享开发:代码实现[前端+后端](二)

WeChatSignatureServer

①.获取签名
  获取签名,通过appId和secert

方法参数说明
getSignature()AppId 公众号的唯一标识
SECRET 公众号的appsecret
url 当前网页的URL,不包含#及其后面部分

②.获取签名
  获取签名,通过jsapiTicket

方法参数说明
getSignatureByTicket()AppId 公众号的唯一标识
jsapiTicket WeChatCgiBinServer.getTicket(String accessToken)
url 当前网页的URL,不包含#及其后面部分

返回数据使用JSONObject接收,参数如下:👇

参数说明
state 状态值
appId 公众号的唯一标识
timestamp 时间戳
nonceStr 随机码
signature 签名
jsapi_ticket ticket

7.消息推送(模板消息)

  消息推送,目前仅实现了消息模板推送,使用此方法时,注意模板参数,此方法用的是keyword,请知悉

📖相关博文📖👉微信公众号消息推送开发(模板消息):开发实现(二)

WeChatMsgServer

①.根据模板id推送消息
  根据模板id推送消息-接收对象 Message

方法参数说明
templateSend()voMessage 对象
accessToken accessToken
Message 参数如下:👇
参数说明
toUser 接收者openid
templateId模板ID
title 标题
remark 备注
keyword1 keyword1
keyword2 keyword2
keyword3 keyword3
keyword4keyword4
keyword5keyword5
smUrl模板跳转链接(海外帐号没有跳转能力)
smAppId 所需跳转到的小程序appid(该小程序appid必须与发模板消息
的公众号是绑定关联关系,暂不支持小游戏) 不跳转小程序可不填
smPagePath 所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),
要求该小程序已发布,暂不支持小游戏)不跳转小程序可不填
remarkColor 备注字体颜色,不填默认为黑色
titleColor 标题字体颜色,不填默认为黑色
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wxHelper使用教程 的相关文章

  • ctags使用教程

    Ctags ctags在http ctags sourceforge net 下载源码 xff0c 编译后安装 常规的标记命令为 ctags R 34 R 34 表示递归创建 xff0c 也就包括源代码根目录下的所有子目录下的源程序 绝大多
  • Tmux 使用教程

    转载自Tmux 使用教程 作者 xff1a 阮一峰 URL xff1a http www ruanyifeng com blog 2019 10 tmux html Tmux 1 Tmux 是什么 xff1f 1 1 会话与进程1 2 Tm
  • Burpsuite 使用教程

    目录 一 简介 二 Kali 下的基本配置及使用 1 启动 burpsuite 2 点击 Next xff0c 进入下一个页面 xff0c 点击 Start Burp 启动 三 基本功能配置及使用 3 1 Burpsuite 代理截获通信的
  • you-get使用教程

    you get爬虫 xff0c 依赖于Python3 10 xff0c 可以爬取网页无法下载的视频文件 xff0c 具体步骤如下 xff1a 1 xff0c 下载Python3 10无脑下一步安装 2 xff0c 新建一个空白文件夹 xff
  • CCProxy和Proxifier使用教程

    CCProxy使用 xff08 服务端 xff09 xff1a CCProxy运行在需要配置为代理服务器的电脑上 1 点击设置 xff0c 按自己需要选择要开的服务 xff1a 2 点击高级 xff0c 取消勾选 34 禁止局域网外部用户
  • Snipaste下载安装(使用教程)

    Snipaste下载安装 使用教程 一 简单介绍 Snipaste 是一个免费简单但强大的截图工具 xff0c 也可以让你将截图贴回到屏幕上 xff01 下载并打开 Snipaste xff0c 按下 F1 来开始截图 xff0c 再按 F
  • Intel Realsense T265使用教程(转载)

    这里面很重要一点说了获取T265相机参数的方式 xff0c 包括 相机的内参和相机与IMU之间的外参 转载自 xff1a https blog csdn net crp997576280 article details 109544456
  • git submodule 使用教程

    1 submoude 介绍 xff08 1 xff09 项目很大参与开发人员多的时候 xff0c 需要将各个模块文件进行抽离单独管理 xff08 2 xff09 使用git submodule来对项目文件做成模块抽离 xff0c 抽离出来的
  • Redis性能测试——redis-benchmark使用教程

    谨以此作为读书摘要 xff0c 无它 xff0c 唯以后快速查阅 Redis 自带了一个叫 redis benchmark 的工具来模拟 N 个客户端同时发出 M 个请求 xff08 类似于 Apache ab 程序 xff09 你可以使用
  • HX711使用教程-数字电子秤常用芯片

    1 简介 HX711是一款专为高精度称重传感器而设计的24位A D转换器芯片 与同类型其它芯片相比 xff0c 该芯片是专门为称重传感器设计的 xff0c 称重传感器只需要一个HX711芯片即可完成称重信号的处理及AD转换 xff1b 对于
  • JUnit 5 使用教程 及 JUnit 4/5的差异

    1 JUnit 5产生的原因 JDK 8在java中带来了迷人的功能 最值得注意的是lambda表达式 为了适应 Java 8 风格的编码和新的功能特性 JUnit 提供了JUnit 5 2 JUnit 5 架构 与 JUnit 4 相比
  • cmake使用教程

    CMakeLists txt文档编写以及packsge xml文档介绍 CMakeLists txt文档一 cmake minimum required命令二 CMake中的编译类型三 cmake编译选项 xff08 与2对应 xff09
  • git-cola使用教程_使用Git Cola轻松实现Git

    git cola使用教程 Git是一个Linux命令 xff0c 可帮助您管理工作的版本 它已被移植到BSD xff0c macOS xff0c Windows等 它是流行的代码托管服务的基础 xff0c 包括GitLab和NotABug等
  • W25QXX使用教程

    W25QXX是华邦公司生产的一块FLASH储存芯片 那W25Q256为例 xff1a 驱动方式 xff1a 单路双路四路SPI QSPI xff1b 擦写周期 xff1a 10W次 支持电压 xff1a 2 7 3 6V 频率 xff1a
  • OptiTrack Motive 使用教程

    相机标定 最近在使用Quanser的地面车做实验 xff0c 需要用到OptiTrack系统进行定位 xff0c 记录一下使用过程 xff0c 供需要的人参考 本文参考了以下博客 xff1a https blog csdn net banz
  • postman使用教程

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 市场上有很多优秀的 xff0c 完善的接口测试工具 xff0c 比如SoapUI xff0c Postman xff0c JMeter yapi等 xff0c
  • Source Insight使用教程

    作为一个开放源代码的操作系统 xff0c Linux 附带的源代码库使得广大爱好者有了一个广泛学习 深入钻研的机会 xff0c 特别是Linux 内核的组织极为复杂 xff0c 同时 xff0c 又不能像windows 平台的程序一样 xf
  • Postman 使用教程 - 手把手教你 API 接口测试

    Postman 教程目录 API 是什么 xff1f Postman 是什么 xff1f 一 如何安装 Postman二 API 模拟工具 GoRest三 用 Postman 发出第一个 GET 请求 1 GET 请求基本操作2 带参数的
  • Curl(C++)使用教程

    1 Curl简介 2 Easy interface 3 Multi interface 1 Curl简介 libcurl作为是一个多协议的便于客户端使用的URL传输库 xff0c 基于C语言 xff0c 提供C语言的API接口 xff0c
  • OOQP 使用教程 c++

    最近学习了一下OOQP的使用在这里记录一下 在matlab代码中是quadprog xff0c 而这次使用OOQP也主要是为了计算二次规划问题 安装OOQP 首先是安装问题 xff0c 不得不说 xff0c 当时安装也花了不少时间 xff0

随机推荐

  • css如何换行

    在css中通过word break与white space这两个属性来设置自动换行 xff0c 其中word wrap属性允许长单词或URL地址换行到下一行 xff1b 而white space属性可以设置文本换行方式 本文操作环境 xff
  • JS 实现复制功能(document.execCommand)

    功能 xff1a 点击按钮 xff0c 复制值 实现方法 xff1a 通过原生js 的方法document execCommand 39 copy 39 坑 xff1a document execCommand copy 不生效 不能实现的
  • Linux chmod命令 修改文件权限被禁止(not permitted)的解决办法

    解决方法 在Linux环境下 xff0c 修改文件时以外导致文件没有权限读取和修改 xff0c 在修改相关文件 usr bin docker的属性的时 chmod 777 usr bin containerd chmod changing
  • springsource-tools下载安装

    下载springsource tools我弄了一个多小时才找到下载地址 xff0c 必须得好好记录一下 首先 需要避免一个误区 xff1a 下载的不是spring tools 这个下载后是一个jar包 也不是一个可执行文件的压缩包 xff0
  • canvas节点无法导出图片_前端实现图片压缩及遇到的问题

    图片上传是前端中常见的的业务场景 无论是前台还是后台 xff0c 适当的对图片进行压缩处理 xff0c 可以显著的提升用户体验 而在后台管理系统中 xff0c 图片压缩不仅仅能够提升后台管理员操作体验 xff0c 更是可以防止后台设置过大的
  • iframe嵌套其它网站页面详解

    iframe基本内涵 通常我们使用iframe直接直接在页面嵌套iframe标签指定src就可以了 lt iframe src 61 34 demo iframe sandbox htm 34 gt lt iframe gt 但是 xff0
  • iframe嵌入其他网站,如何自适应高度

    终于有一周时间 xff0c 工作不那么忙了 xff0c 腾出手来总结下工作过程中学到的知识 每天遇到新问题 xff0c 解决新问题 xff0c 但是却很少有时间去仔细研究下 xff0c 或者总结下 攒的多了 xff0c 就得从头捋一遍 说下
  • 解决anaconda安装pil包时的问题

    在anaconda中安装pil时出现UnsatisfiableError 看了较多的解决方法 看了较多的解决方法 很多都是讲怎样创建新的环境再安装 xff0c 在Linux中只需要将这样做 xff1a xff08 Linux小白的详细操作
  • 1.5 字符串

    1 5 1 单引号 双引号 三引号 a 61 34 Hello world 34 双引号 b 61 39 python is groovy 39 单引号 c 61 34 34 34 Computer says 39 No 39 34 34
  • leetcode 1357. 每隔 n 个顾客打折(C++)

    超市里正在举行打折活动 xff0c 每隔 n 个顾客会得到 discount 的折扣 超市里有一些商品 xff0c 第 i 种商品为 products i 且每件单品的价格为 prices i 结账系统会统计顾客的数目 xff0c 每隔 n
  • (Taro篇)如何自定义小程序Swiper面板指示点的样式

    效果图 轮播组件jsx span class token keyword import span span class token punctuation span Component span class token punctuatio
  • 如何使用Docker搭建Heimdall-打造你自己的专属浏览器首页

    一 介绍 Heimdall是一种以简单的方式组织所有指向您最常用的网站和 Web 应用程序的链接的方法 简单是 Heimdall 的关键 它甚至可以使用 Google Bing 或 DuckDuckGo 包含一个搜索栏 二 安装环境 系统
  • CentOS8中使用Libreoffice7.3遇到的问题

    首先借鉴了这篇文章对Libreoffice进行了下载和安装 https blog csdn net UnicornRe article details 119677482 在本地的centos7环境中测试word转pdf是没有问题的 xff
  • UIImageView的基本使用

    UIImageView作为iOS开发里基本控件 xff0c 是我们第四个需要学习的 下面我来为大家介绍一下UIImageView的一些常用属性和它们的用法 这里附上UI控件演示的源码地址 xff1a https github com LOL
  • 如何使用Docker搭建PhotoPrism - 打造基于AI私有化的个人相册系统

    一 简介 PhotoPrism 是一款由人工智能驱动的应用程序 xff0c 用于浏览 组织和分享您的照片集 它利用最新技术自动标记和查找图片 您可以在家里 私人服务器或云端运行它 PhotoPrism对很多设备提供了支持 xff0c 包括M
  • Power Keys - 彻底解放电脑使用效率

    简介 Power Keys 是一款十分强大的 快速启动 系统辅助工具 xff0c 支持 Windows 与 macOS xff0c 它可以利用 F1 F12 43 字母或数字 来启动程序或打开网页等操作 xff0c 还拥有类似 VIM 编辑
  • Windows安装Gradle详细图文教程

    简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具 它使用一种基于Groovy的特定领域语言 DSL 来声明项目设置 xff0c 也增加了基于Kotlin语言的kotlin based D
  • CentOS7防火墙(Firewalld篇)

    一 防火墙设置 1 启用防火墙 systemctl start firewalld 2 关闭防火墙 systemctl stop firewalld 3 查看状态 systemctl status firewalld 4 开机启用防火墙 s
  • 9.图--拓补排序

    1 概念 无环图 xff1a 活动 2 拓补序列 xff1a 3 拓补排序 xff1a 对有向图构造拓补序列的过程 1 1 例子 比如有下表 xff0c 要学习 汇编语言 就需要先学习C1和C13课程 要将表画为AOV网图 xff1a 拓补
  • wxHelper使用教程

    方法介绍 前言1 工具介绍 x1f517 1 1 环境介绍1 2 功能介绍1 3 源码地址 2 使用说明 x1f517 2 1 Server说明2 2 引入jar包 3 方法介绍 x1f517 1 服务器配置 token验证 2 自定义菜单