wxHelper使用教程

前言

  如果你能看到这篇博文,说明你目前正在进行【公众号开发】,希望这篇博文能帮助到你。
  我在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 标题字体颜色,不填默认为黑色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不要喷香水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值