# wechat-tools-lib **Repository Path**: KangSpace/wechat-tools-lib ## Basic Information - **Project Name**: wechat-tools-lib - **Description**: 💬微信公众号接口集成;微信网页开发;微信网页授权;微信公众号模版消息;💬This is a tools lib for WeChat, use for mp.weixin.qq.com. - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-11 - **Last Updated**: 2022-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wechat-tools-lib [![license](https://img.shields.io/github/license/KangSpace/wechat-tools-lib)](LICENSE) ![maven](https://img.shields.io/maven-central/v/org.kangspace.wechat/wechat-tools-lib) ### 介绍(Introduction) 该项目集成封装微信公众号相关接口,并提供工具类访问接口。 ### 项目实现功能: 1. 微信公众号 * 集成微信网页授权接口及网页授权获取用户信息 * 集成微信公众号获取AccessToken,JsApiTicket及其缓存 * 集成微信公众号拉取用户列表及用户信息 * 集成微信公众号发送模版消息 * 集成微信公众号JS签名 2. 企业微信 * 集成企业微信网页授权接口及网页授权获取用户信息 * 集成企业微信获取Token及Token缓存 * 集成微信公众号获取AccessToken,JsApiTicket,AppJsApiTicket(应用JS-SDK)及其缓存 * 集成企业微信公众号发送应用消息 * 集成企业微信公众号JS签名(企业JS-SDK签名和应用JS-SDK签名) ### API列表:
功能方法用法
重定向到网页授权地址 org.kangspace.wechat.oauth2.
OAuth2InterfaceAccess
void redirectToAuthorizeUrl
(String appId, String redirectURI, String param, HttpServletRequest request, HttpServletResponse response)
oAth2InterfaceAccess.redirectToAuthorizeUrl(appId,url,state,request,response)
void redirectToAuthorizeUrl
(String appId,String redirectURI, String param, WeChatConfig.OAth2Scope scope, HttpServletRequest request, HttpServletResponse response)
oAth2InterfaceAccess.redirectToAuthorizeUrl(appId,redirectURI,param, WeChatConfig.OAth2Scope.SNSAPI_BASE,request,response)
网页授权获取ACCESS_TOKEN org.kangspace.wechat.oauth2.
OAuth2InterfaceAccess
OAuth2AccessTokenReturnBean getAccessToken(String code) oAth2InterfaceAccess.getAccessToken("codexxx")
网页授权获取用户信息 org.kangspace.wechat.oauth2.
OAuth2InterfaceAccess
OAuth2UserInfoReturnBeangetUserInfo(String accessToken,String openId,Lang lang) oAth2InterfaceAccess.getUserInfo(accessToken,openId, Lang.ZH_CN)
获取微信公众号ACCESS_TOKEN org.kangspace.wechat.mp.
MpInterfaceAccess
AccessTokenReturnBeangetAccessToken(String appId) new MpInterfaceAccess().getAccessToken(appId)
缓存获取微信公众号ACCESS_TOKEN(RedisTemplate) org.kangspace.wechat.cache.
WeChatAccessTokenCache
Stringget(String appId,String key) new WeChatAccessTokenCache().getAccessToken(appId,"access_token")
org.kangspace.wechat.cache.
AbstractWeChatCacheOperator
Tget(String appId,String key) 实现抽象方法以控制缓存的操作
获取微信公众号用户信息 org.kangspace.wechat.mp.
MpInterfaceAccess
MpUserBasicInfoReturnBeangetUserInfo(String accessToken,String openId) new MpInterfaceAccess().getUserInfo("accessToken","openId")
批量获取微信公众号关注用户列表 org.kangspace.wechat.mp.
MpInterfaceAccess
MpUserListReturnBeangetUserList(String accessToken, String nextOpenId) new MpInterfaceAccess().getUserList("accessToken","nextOpenId")
批量获取微信公众号关注用户列表详情 org.kangspace.wechat.mp.
MpInterfaceAccess
getMpUserListBatch(String appId, String accessToken, String nextOpenId, Consumer> consumer, Function retrieveTokenFn)
                 new MpInterfaceAccess().interfaceAccess.getMpUserListBatch(appId, accessToken, nextOpenId,
                     new Consumer<List<MpUserBasicInfoReturnBean>>() {
                         @Override
                         public void accept(List<MpUserBasicInfoReturnBean> mpUserInfos) {
                             for (MpUserBasicInfoReturnBean t : mpUserInfos) {
                                 System.out.println("\t" + t.toString());
                                 cntNum[0]++;
                             }
                             System.out.println();
                         }
                     }, new Function<String, String>() {
                         @Override
                         public String apply(String t) {
                             return getAccessToken(t, true);
                         }
                     });
        
发送模版消息 org.kangspace.wechat.message.
MessageTemplateSender
WeChatReturnBean send(MessageBean messageBean, String accessToken) WeChatReturnBean returnBean = sender.send(messageBean, "accessToken");
org.kangspace.wechat.message.batch.
SendHelper
ForkJoinTask send(String appId, SendObject obj, Function reGetToken) SendHelper.send(appId,message,(t)->wxAccessTokenCache.refreshByAppId(appId))
org.kangspace.wechat.message.factory
MessageFactory.ThreeKeyMessageFactory
SendHelper.SendObject get(String appId, String accessToken, String templateId, String openId, String key1Val, String key2Val, MessageBean.Miniprogram miniprogram) --
企业微信相关集成 org.kangspace.wework
WeWorkInterfaceAccess
-- --
### 快速开始: 1. 项目环境: -

Maven,JDK1.7+,UTF-8

- 需在项目classes下配置wechat-config.properties,参考[resources/wechat-config-example.properties](src/main/resources/wechat-config-example.properties) 2. 使用"API列表"测试接口调用 3. JavaDoc接口文档 [wechat-tools-lib java-doc](https://kangspace.github.io/wechat-tools-lib/doc/javadoc/) ### MAVEN: [OSSRH-62558](https://issues.sonatype.org/browse/OSSRH-62558) > 可自行执行mvn install打包 ``` org.kangspace.wechat wechat-tools-lib 1.0.2 ```