设为首页 加入收藏

TOP

使用FastBootWeixin框架快速开发微信公众号(二)
2018-04-08 08:51:19 】 浏览:1703
Tags:使用 FastBootWeixin 框架 快速 开发 公众
h_Q23odCf/static/superman/img/logo/logo_white.png", "http://baidu.com").build(); } /** * 接受微信事件 * @param wxRequest * @param wxUser */ @WxEventMapping(type = WxEvent.Type.UNSUBSCRIBE) public void unsubscribe(WxRequest wxRequest, WxUser wxUser) { System.out.println(wxUser.getNickName() + "退订了公众号"); } /** * 接受用户文本消息,异步返回文本消息 * @param content * @return dummy */ @WxMessageMapping(type = WxMessage.Type.TEXT) @WxAsyncMessage public String text(WxRequest wxRequest, String content) { WxSession wxSession = wxRequest.getWxSession(); if (wxSession != null && wxSession.getAttribute("last") != null) { return "上次收到消息内容为" + wxSession.getAttribute("last"); } return "收到消息内容为" + content; } /** * 接受用户文本消息,同步返回图文消息 * @param content * @return dummy */ @WxMessageMapping(type = WxMessage.Type.TEXT, wildcard = "1*") public WxMessage message(WxSession wxSession, String content) { wxSession.setAttribute("last", content); return WxMessage.News.builder() .addItem(WxMessage.News.Item.builder().title(content).description("随便一点") .picUrl("http://k2.jsqq.net/uploads/allimg/1702/7_170225142233_1.png") .url("http://baidu.com").build()) .addItem(WxMessage.News.Item.builder().title("第二条").description("随便二点") .picUrl("http://k2.jsqq.net/uploads/allimg/1702/7_170225142233_1.png") .url("http://baidu.com").build()) .build(); } /** * 接受用户文本消息,异步返回文本消息 * @param content * @return dummy */ @WxMessageMapping(type = WxMessage.Type.TEXT, wildcard = "2*") @WxAsyncMessage public String text2(WxRequestBody.Text text, String content) { boolean match = text.getContent().equals(content); return "收到消息内容为" + content + "!结果匹配!" + match; } }

4. 配置内网穿透

因为微信公众号需要配置自己的服务器接口,测试时可直接使用本地进行测试,使用内网穿透可以令微信公众平台访问到你自己本地的服务器。

软件可使用ngrok或者natapp,使用方式请参考两者官方文档。

5. 配置测试公众号

在测试公众号的接口配置信息中填写在第三步中生成的域名,token使用配置文件中的token,保存后,如果不出意外应该会验证成功。如有问题请及时反馈。

二、示例说明

上面的示例在启动后,请关注自己的公众号,此时公众号的菜单应该是有两个主菜单:左、右,同时左有两个子菜单:文本消息、点击链接。

在点击文本消息菜单时,会收到文本消息,内容为:测试文本消息。

在点击第二个点击链接时,会跳转至百度,并收到一条图文消息,标题是测试图文消息。

给公众号发送文本消息,消息内容不是1开头时,会收到公众号回复内容:”收到消息内容为” + 发送的内容。

给公众号发送文本消息,消息内容是1开头时,会收到图文消息的回复。

当有用户退订公众号时,会在System.out中打印用户昵称 + “退订了公众号”

三、示例讲解

注解@WxApplication用于声明该应用为微信application,并使用SpringApplication启动。若已有SpringBoot环境,请在你的@SpringApplication类上加入注解@EnableWxMvc,效果一样。可以看源码。

注解@WxController用于声明该类为微信Controller,只有声明了这个注解,才会绑定在微信服务器的请求映射中,否则该类会被忽略。

注解@WxButton(group = WxButton.Group.LEFT, main = true, name = “左”)用于声明一个按钮箱,group代表分组,有左中右三个分组,分别对应微信的三个一级菜单。main为boolean值,代表该菜单项是否为一级菜单。name就是菜单名。

注解@WxButton(type = WxButton.Type.CLICK, group = WxButton.Group.LEFT, order = WxButton.Order.FIRST, name = “文本消息”) 用于声明左边分组的子菜单,order代表顺序,这里是第一个。

public String leftFirst(WxRequest wxRequest, WxUser wxUser) { return “测试文本消息”; } 这里有三个点:

  • WxRequest是自动绑定的参数,当用户在公众号上进行某些操作后,微信服务器会给配置中填写的域名的根路径发送一个Post请求,请求内容是xml格式的消息,这条消息内容中标记了具体的信息,可参考公众号文档。这里wxRequest为封装过的微信请求内容,可以通过这个wxRequest获得一些信息。
  • wxUser是通过微信api接口获取的用户相关信息,这个还涉及到另外一个内容,后面讲解。
  • 返回String,此时会直
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇基于接口设计与编程 下一篇MySQL ERROR 1050 (42S01): Table..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目