微信官方文档,16年的时候开发微信公众号照着官网看,到了2017年发现了weixin-java-mp这个jar,当时使用的版本是2.9.0就继续使用了,今天看到的sonatype上面还在更新,已经发展到4.2.5.8,微信迭代,它也会跟着迭代,演进速度还可以。将一些接口封装起来,这个jar还是能节省很多工作量的。那个时候还没有springboot,现在就不一样了。
weixin-java-mp-demo
1 基础配置
最新jar的springboot模式还可以更优雅

import javax.annotation.PostConstruct;import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;import com.dzmsoft.wcn.base.config.WxConfig;/*** 基础自定义的一个service*/
public abstract class BaseWxService extends WxMpServiceImpl {protected abstract WxConfig getServerConfig();@PostConstructpublic void init() {final WxMpInMemoryConfigStorage config = new WxMpInMemoryConfigStorage();config.setAppId(this.getServerConfig().getAppid());// 设置微信公众号的appidconfig.setSecret(this.getServerConfig().getAppsecret());// 设置微信公众号的app corpSecretconfig.setToken(this.getServerConfig().getToken());// 设置微信公众号的tokenconfig.setAesKey(this.getServerConfig().getAesKey());// 设置消息加解密密钥super.setWxMpConfigStorage(config);}}

因为这里的服务是一个微信后台,支撑多家相同的业务。故而自定义了一个service

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.dzmsoft.wcn.base.config.WxConfig;
import com.dzmsoft.wcn.base.config.WxGzh1Config;/*** 其中一个微信公众号的service*/
@Service("gzh1WxService")
public class Gzh1WxService extends BaseWxService {@Autowiredprivate WxGzh1Config wxConfig;@Overrideprotected WxConfig getServerConfig() {return this.wxConfig;}}
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;@Configuration
public class WxGzh1Config extends WxConfig {@Value("#{gzh1WxProperties.wx_token}")private String token;@Value("#{gzh1WxProperties.wx_appid}")private String appid;@Value("#{gzh1WxProperties.wx_appsecret}")private String appsecret;@Value("#{gzh1WxProperties.wx_aeskey}")private String aesKey;@Overridepublic String getToken() {return this.token;}@Overridepublic String getAppid() {return this.appid;}@Overridepublic String getAppsecret() {return this.appsecret;}@Overridepublic String getAesKey() {return this.aesKey;}@Overridepublic WxAccountEnum getWxAccountEnum() {return WxAccountEnum.GZH1;}
}

2 获取access_token
对微信的请求封装在me.chanjar.weixin.mp.api.impl.WxMpServiceAbstractImpl中,可以看到三种实现Jodd之HTTPOkhttp3基本使用 还有apache的http

me.chanjar.weixin.mp.api.WxMpService接口中可以看到不同接口的地址,得亏微信的接口地址不怎么变,要是变了,估计jar还得跟着升级。

3 扫码注册
接收事件推送
待续。。。

第2章 微信开发之微信项目相关推荐

  1. 微信开发:微信js_sdk 分享,前端部分(二)

    微信开发:微信js-sdk前端分享,代码如下: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> ...

  2. 微信鉴权服务器地址,微信开发之微信授权登录

    本篇教程探讨了微信开发之微信授权登录,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作, ...

  3. php 微信 语音,PHP语言微信开发:微信录音临时转永久存储

    本文主要向大家介绍了PHP语言微信开发:微信录音临时转永久存储,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 最近做开发的时候碰到了这个问题,甲方希望用户在微信端的录音能够一直有效.就 ...

  4. 微信开发 --- 调用微信上传图片接口,并保存到自己的服务器

    微信开发 - 调用微信上传图片接口,并保存到自己的服务器 整体思路是这样的: 1.先把手机上的图片上传到微信服务器,然后返回一个图片ID 2.在通过后台根据ID从微信后台拿到流,保存到服务器 前几个步 ...

  5. 微信开发,微信开发者平台

    微信小程序 小程序介绍 微信小程序是一种全新的连接用户端与服务端的方式. 小程序可以在微信内被便捷地获取和传播. 小程序具有出色的用户体验. ###为什么要学习小程序 微信小程序开发成本低.使用方便. ...

  6. 微信开发之微信公众号

    [b]订阅号和服务号的区别?[/b] 微信将公众号分为两类:订阅号和服务号,这两类公众号有着体验上的区别.订阅号用于媒体.政府等新闻发布平台,时下非常流行的自媒体概念一般都是使用订阅号. 订阅号和服务 ...

  7. 微信开发之微信网页授权 完整示例

    所有微信开发的相关内容,都需要参考官方文档. [微信公众平台|开发文档] http://mp.weixin.qq.com/wiki/home/. 一.通过网页授权,可以获取用户微信的基本信息. 二.总 ...

  8. 连小白都能看懂的微信开发之微信网页授权 + 获取微信用户信息

    微信网页授权 所谓的微信网页授权说白了就是 用户微信客户端内访问第三方网页,公众号可以根据网页授权这个机制来获取用户的基本信息,然后进行相应的逻辑处理. 官方文档 : https://mp.weixi ...

  9. 微信jsapi支付获取code_微信开发之微信公众平台开发之JSAPI公众号支付

    本文将带你了解微信开发微信公众平台开发之JSAPI公众号支付,希望本文对大家学微信有所帮助. 一:配置参数 申请成功后,获取接口文件, 将所有文件放入项目根目录weixin下,在WxPay.ub.co ...

  10. 转载:使用delphi+intraweb进行微信开发4—微信消息加解密

    示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. 在上一讲当中我做了个简单的微信文本消 ...

最新文章

  1. 【linux】用户和组的管理:添加、修改、删除(useradd usermod userdel groupadd groupdel)
  2. C/C++反序输出字符串总结
  3. SharedActivityContext要引用那个单元?
  4. 集成QML和C ++
  5. powerpoint转换器_如何将PowerPoint演示文稿转换为主题演讲
  6. Visual Studio 2015和2017里面应该创建哪种 Class Library
  7. Java增强枚举的用例
  8. Android助手 V23.34,Android助手
  9. Control Flow - Containers
  10. 驱动程序和应用程序的区别_复仇者黑客组织—教你写第一个Linux设备驱动程序...
  11. Win10 Android Fastboot驱动问题
  12. 计算机网络考研知识点总结,2020计算机专业考研的计算机网络部分知识点
  13. Python 利用百度 API 进行图像识别
  14. Unity 自定义扩展Hierachy右键菜单
  15. 基于51单片机的教室人数检测
  16. kernel - 制作linux开机logo
  17. 测试工程师-入门指南
  18. 安装虚拟机 vmware
  19. 计算机网络-应用层和传输层协议分析实验(PacketTracer)
  20. 字节和unicode

热门文章

  1. 使用阿里云PTS测试LAMP环境性能
  2. C语言课设--俄罗斯方块(上)
  3. 【ITK 基本操作说明】
  4. 人工智能:智能家居安全控制系统的未来:基于人工智能的自适应技术
  5. 解决 Github 加载 ipynb 文件缓慢/失败
  6. 这个领域有意思,认识一下MSDS手写笔迹验证数据集
  7. android 版本图片,Android - 图片处理之Glide4.0版本
  8. MSYS2 Windows软件分发和构建平台
  9. windows下使用Msys2安装编译Redis6.2
  10. dns服务器显示乱码,DNS服务器乱码,怎么解决????