总体概述:

1.开发使用后台已经封装好的第三方sdk微信开发包开发,需要进行必要的jar引入,以及特定的spring配置及监控类开发,可拷贝git源代码

git链接:https://github.com/binarywang/weixin-java-mp-demo

<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-mp</artifactId><version>3.6.0</version>
</dependency>

测试号申请网址:微信公众平台

测试号配置:

接口配置信息

url:第一次授权公众号为开发者模式的时候,微信服务器会调用这个地址去校验服务器是否存在且真实

url前半部分是开发服务器域名(本机开发一般是内网,微信服务器访问不到,需要搞一个内网穿透工具,将本机127.0.0.1映射到外网去,微信访问外网ip,外网ip再映射到本机地址上)

JS接口安全域名:

这个是我们本地调用微信接口的时候,再此将服务器域名告诉给微信,让他知道我们的域名是合法 的,才能调用微信开放接口(也是使用内网穿透生成的域名,此处要删去https:开头)

checkSignature接口实例(可查看文档,翻开该接口规则)

    @RequestMapping(value = "/wx/checkSignature")@ResponseBodypublic String checkSignature(String signature, String timestamp, String nonce, String echostr) {if (StringUtils.isAnyBlank(signature, timestamp, nonce, echostr)) {throw new IllegalArgumentException("请求参数非法,请核实!");}if (wxService.checkSignature(timestamp, nonce, signature)) {return echostr;}return "非法请求";}

至此可在代码上执行添加一个按钮的操作(公众号就会出现一个新增的按钮),点击按钮之后,公众号就会自动跳转到自己设置的界面,并携带一个code参数,可根据这个code去获得用户openId(sdk有对应方法,可查看对应文档)

公众号发送微信号推送方法封装

/*** 公众号发送微信号推送** @param userId     本地用户ID* @param templateId 微信推送模板ID* @param url        推送点击详情,跳转url* @param params     微信参数对象列表 模板通过{{key.DATA}} 插入占位符,key就是new WxMpTemplateData(key)* @return*/public ResultMsg sendWxMsg(String userId, String templateId, String url, List<MsgParamModel> params) {//将本地userId转换为微信用户的openIdWxUserModel wxUser = wxUserService.getByUserId(userId);if (BeanUtil.isEmpty(wxUser)) {String userName = tPubUserMapper.getUserNameByUserId(userId);return new ResultMsg(false, null, "用户【" + userName + "】未关注公众号,推送失败!");}WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder().toUser(wxUser.getOpen_id()).templateId(templateId).url(StringUtils.isNotEmpty(url) ? url : null).build();/*** 插入模板占位符参数*/for (MsgParamModel param : params) {templateMessage = templateMessage.addData(new WxMpTemplateData(param.getName(), param.getValue(), param.getColor()));}String msgId = null;try {// 发送模板消息msgId = wxService.getTemplateMsgService().sendTemplateMsg(templateMessage);} catch (WxErrorException e) {e.printStackTrace();}logger.info("用户【" + wxUser.getUser_id() + "】推送微信:" + msgId != null ? "推送成功" : "推送失败");return new ResultMsg(msgId != null, "", msgId != null ? "推送成功" : "推送失败");}

为占位符封装对象

/*** 微信消息推送参数实体类** @author lirong* @date 2022-10-11 15:41**/
@Data
@AllArgsConstructor
public class MsgParamModel {/*** 占位符key*/private String name;/*** 占位符value*/private String value;/*** 占位符文字输出颜色 为空为黑色*/private String color;}

微信公众号(测试号)开发相关推荐

  1. 微信公众号测试号开发小结

    微信公众号踩坑之旅 2019-02-20 15:26:27 By Magina 开发过程中使用的是微信测试公众号 在线申请: https://mp.weixin.qq.com/debug/cgi-bi ...

  2. 微信公众号Java开发-笔记02【开发接入准备、开发接入】

    学习视频网址:哔哩哔哩网站 微信公众号开发-Java版 [P01-P02]微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] [P03-P04]微信公众号Java开发-笔记02[开发接入 ...

  3. 前端对接微信公众号网页开发流程,前期配置

    微信公众号网页开发,其实就是我们开发的h5网页需要放到微信浏览器环境中使用,但是需要对接公众号授权,授权之后可以获取到用户的个人信息,以及可以使用公众号提供的一些API,如:图片上传.图片预览.获取位 ...

  4. 使用神卓互联内网穿透实现微信公众号开发:介绍了如何通过神卓互联实现微信公众号的开发和调试。

    注册微信公众平台账号,并创建一个测试号. 1.在神卓互联控制台上,将公网IP地址和本地的80端口进行映射.同时,将80端口映射到本地开发2.环境的端口(如localhost:3000). 3.在本地开 ...

  5. 微信公众号测试号配置,群发消息(go实现)

    配置服务器(以本地服务器127.0.0.1:8080为例) ⑴新建项目(这里用的goframe框架) 路由: var (Main = gcmd.Command{Name: "main&quo ...

  6. 使用微信公众号测试号如何进行自定义菜单的设定

    问题描述 在进行微信公众号业务开发的时候,微信公众号的自定义菜单是非常重要的一环,然而在开发中我们是使用不到正式的公众号进行菜单栏的自定义的,都是通过我们个人申请的测试公众号来完成我们的功能开发和测试 ...

  7. ios系统web(微信公众号)开发遇到的问题及解决方案

    ios系统web(微信公众号)开发遇到的问题及解决方案 参考文章: (1)ios系统web(微信公众号)开发遇到的问题及解决方案 (2)https://www.cnblogs.com/clj2017/ ...

  8. Yii2.0实现微信公众号后台开发

    2019独角兽企业重金招聘Python工程师标准>>> 研读 微信公众平台开发者文档 ,然后再阅读本文,效果更佳! 接入微信 Yii2后台配置 1.在app/config/param ...

  9. 微信公众号Java开发-笔记01【微信公众号介绍、开发环境搭建】

    学习网址:哔哩哔哩网站 微信公众号开发-Java版 微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] 微信公众号Java开发-笔记02[] 微信公众号Java开发-笔记03[] 微信公 ...

  10. 手把手教你最近很火的 微信公众号测试号推送消息

    最近有很多小伙伴在尝试做消息推送,今天详细教程它来啦!!! 过程不太复杂,跟着一步一步做就可以实现. 没时间的话,先收藏,等有时间了慢慢学! 第一步:注册微信公众号测试号 1.利用下面的链接注册一个微 ...

最新文章

  1. 微服务架构 — 服务治理 — 服务监控与告警、服务日志与审计
  2. Python 安装zbar-py时出现 无法打开包括文件: “unistd.h” no such file or directory
  3. exsi主机之间使用scp拷贝文件超时问题
  4. 超图桌面版制作分段专题图学习
  5. 机器学习实践:TensorFlow最后一个epoch训练损失函数显著增大
  6. Boost:boost::bimaps::list_of的测试程序
  7. 【CSS】学习笔记1 使用CSS样式表
  8. mysql linux 关闭防火墙_linux常用命令和关闭防火墙
  9. 通过Oracle VM Manager管理配置虚拟机
  10. Socket.io:有点意思
  11. CentOS 7.2下安装lamp环境
  12. 计算机考试操作步骤,计算机考试操作步骤(精).doc
  13. python GUI编程
  14. 基于RK3399Pro的BH1750驱动开发
  15. 项目管理六大制约因素_项目管理有哪些主要风险及如何控制?
  16. 推荐系统与LSTM、GRU
  17. 中国父母常犯的十大错误(转载)
  18. Java后台文件批量压缩下载
  19. Ubuntu 14.04 配置 Java SE jdk-7u55
  20. 记录opencv的 QObject::moveToThread: Current thread(...) is not the object`s thread 错误

热门文章

  1. QQ分享功能实现-Android
  2. Hibernate Hierachy
  3. 内网服务器软件共享文件,服务器共享文件夹设置软件、局域网共享文件夹加密工具、文件共享服务器软件的选择...
  4. 【数学】GPS经纬度坐标转换
  5. 东芝Toshiba DP-2210 打印机驱动
  6. 队列总结(六)DelayQueue
  7. 【黄啊码】微信小程序弹窗图片滚动
  8. STM32 SIM800C SIM868 连接OneNet 以及远程控制流程详解
  9. 树莓派安装LibreELEC并配置红外遥控
  10. 查看linux内存和硬盘