公众号开发(三)----接收事件推送之关注/取消关注事件

接收微信服务器的事件推送,首先需要一个公网url,微信服务器把事件推送到这个公网ip上。并在微信公众平台测试账号管理后台配置:

这个url就是自己服务器的地址(具体到某一个controller接口,本地写两个http名一致的接口,一个为get请求鉴权确认消息来自微信服务器,一个为post请求接收微信服务器的消息并自定义处理),Token是用于验证的,可由我们自行定义,主要作用是参与生成签名,与微信请求的签名进行比较。配置后开发者和微信服务器所有的交互都是通过这个url。至于url可以自己购买一个服务器,也可以使用其他途径把自己的代码映射成公网可以访问到的,如natapp

NATAPP 链接本地服务到互联网_weisian151的博客-CSDN博客,这种方法还可以本地断点调试哦(因为实际调用的是本地主机)。按照微信公众平台的要求,把本地微信后台服务的端口设成80,之后映射到公网上:

如我本地的是localhost:8080/wechat/message/wechatMessage,映射后在后台配置如下:

接下来就可以写代码了: 

如现在把所有扫描二维码关注的用户信息存入数据库: 

1、数据库设计:

2、DTO:

 消息对象封装:

package com.demo.wechat.domain;
import java.io.StringReader;
import java.util.Date;
import java.util.HashMap;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

public class WechatMsg {
	
	/**
	 * 发送者
	 */
	private String fromUserName;
	
	/**
	 * 接收者
	 */
	private String toUserName;
	
	/**
	 * 消息类型
	 */
	private String msgType;
	
	/**
	 * 事件(消息类型为事件)
	 */
	private String event;
	
	/**
	 * 事件Key(消息类型为事件)
	 */
	private String eventKey;
	
	/**
	 * 消息内容(消息类型为文本)
	 */
	private String content;
	
	/**
	 * 图文消息
	 */
	private NewsMessage newsMessage;
	
	
	public WechatMsg(String fromUserName, String toUserName) {
		this.fromUserName = fromUserName;
		this.toUserName = toUserName;
	}
	
	/**
	 * 同构XML构造方法
	 * 
	 * @param msgXml 消息体
	 */
	public WechatMsg(String msgXml) {
        try {
        	HashMap<String, String> map = new HashMap<String, St
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

w_t_y_y

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

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

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

打赏作者

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

抵扣说明:

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

余额充值