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使用教程 的相关文章

  • KETTLE使用教程

    1 Kettle的下载与安装 kettle的最新下载地址 xff1a http community pentaho com projects data integration 由于Kettle 是采用java 编写 xff0c 因此需要在本
  • Video.js 使用教程 - 手把手教你基于 Vue 搭建 HTML 5 视频播放器

    本文首发 xff1a Video js 使用教程 手把手教你基于 Vue 搭建 HTML 5 视频播放器 Video js 是最强大的网页嵌入式 HTML 5 视频播放器的组件库之一 xff0c 也是大多数人首选的网页视频播放解决方案 复杂
  • Burpsuite 使用教程

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

    文章目录 Keil 使用教程 xff08 1 xff09 打开Keil xff0c 点击project新建 xff08 2 xff09 选择合适的型号 xff0c 没有STC的选项 xff0c 不要紧 xff0c 一般C51的好多兼容的 x
  • 【DarkLabel】使用教程(标注MOT数据集)

    DarkLabel 使用教程 功能部分 Open video 第 2 处的内容为数据集类型 例如 xff1a VOC COCO MOT YOLO等 第 3 处的内容为标签名称 可在 darklabel yml 中修改 classes set
  • Snipaste下载安装(使用教程)

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

    https blog csdn net u013066730 article details 88788191 很详细 另外shadowshocks代理服务器的IP地址 地址获取 win 43 R cmd ipconfig 无线网区域的ip
  • Postman 使用教程

    关注 开源Linux xff0c 选择 设为星标 回复 学习 xff0c 有我为您特别筛选的学习资料 postman是一款支持http协议的接口调试与测试工具 xff0c 其主要特点就是功能强大 xff0c 使用简单且易用性好 无论是开发人
  • git submodule 使用教程

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

    首页引入样式文件和js文件 xff1a lt link href 61 34 css ligerui all css 34 rel 61 34 stylesheet 34 type 61 34 text css 34 gt lt jquer
  • gitee使用教程

    目录 版本控制 1 Gitee上注册账户 2 新建一个远程代码仓 xff0c 点击右上方的加号 3 修改远程仓为开源的 编辑 4 本地下载git 5 克隆远程仓到本地 xff0c 复制地址 6 创建代码并提交到远程仓库 7 将本地代码提交到
  • CMake+QT使用教程

    一 CMake入门 下面是使用 Qt 用 C 43 43 编写的控制台应用程序的典型文件 xff1a CMakeLists txt 1 构建一个控制台应用程序 span class token comment 指定应用程序所需的CMake最
  • ST-Link使用教程

    1 电脑安装软件 2 点击确定 3 下一步 4 下一步 5 下一步 6 下一步 7 下一步 8 等待安装完成 9 等待 10 完成安装 11 打开 ST Visual Programmer 12 选择芯片 13 选择芯片类型 xff08 S
  • UWB使用教程

    前言 本篇文章主要对淘宝商家给的UWB资料进行整理 xff0c 方便大家快速入门 注重UWB定位模块的使用 xff0c 不解释具体的原理 实现功能 xff1a 搭建UWB基站使用上位机配置参数ROS接受UWB的定位信息修改IMU的STM32
  • Git的使用教程

    今天发现了一个非常好的网站 xff1a https www liaoxuefeng com wiki 0013739516305929606dd18361248578c67b8067c8c017b000 0013743256916071d5
  • VS中Git使用教程

    现在的VS都自带Git插件 xff0c 用起来很方便 xff0c 能将VsCode前端和VS后端一起提交 xff0c 缺点 xff1a Word文档和Excel表没法协同处理冲突 基本上的常用操作都已经涵盖在内了 xff0c 能够满足日常开
  • Curl(C++)使用教程

    1 Curl简介 2 Easy interface 3 Multi interface 1 Curl简介 libcurl作为是一个多协议的便于客户端使用的URL传输库 xff0c 基于C语言 xff0c 提供C语言的API接口 xff0c
  • 爬虫访问中,如何解决网站限制IP的问题?

    爬虫访问中 如何解决网站限制IP的问题 多年爬虫经验的人告诉你 国内ADSL是王道 多申请些线路 分布在多个不同的电信区局 能跨省跨市 IP覆盖面越多越好 九州动态IP是一款动态IP转换器客户端 该提供国内26个省共百万数据级动态ip切换
  • Axure教程 原型设计工具Axure RP新手入门教程(一):基础

    什么是Auxre RP Axure RP是一种线框图 原型设计 流程图和文档工具 使用Axure RP来创建和设置图表样式 为图表页面和元素添加交互性和注释 并将完成的设计发布到HTML以便通过Web浏览器查看 点击下方图片可观看视频 点击
  • visual studio使用教程

    linux疑难问题排查实战 分享了作为公司专家 在项目开发过程中内存优化 堆 栈 代码段 数据段 性能优化 死机 栈越界 堆越界 死锁等疑难问题排查的案例 使用的工具 perf asan strace memleak等 工作经验 大家可以点

随机推荐

  • 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 自定义菜单