微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发
本文主要讲解如何使用 weinxinFundation 进行二次开发。
步骤如下:
1.创建新的web项目。
在eclipse里新建一个dynamicly web project,比如本文叫weixinDemo

2.引用weinxinFundation
获得weinxinFundation的方法: 参考我的另一篇文章:http://www.cnblogs.com/vir56k/p/3664181.html
有两种引用方式: 1).如果你拿到的是个jar包,请按常规方式引用,程序员都知道。 2).如果你拿到的是源代码,请参考我的另一篇文章:http://www.cnblogs.com/vir56k/p/3778414.html
3.进入微信公众平台的后台,修改 token ,获得 appid和secret.
3.1).进入微信公众平台的后台页面:https://mp.weixin.qq.com/
3.2).找到“开发者ID” 下的 AppId 和 AppSecret 并记录下来,后面要用到。
3.3). 在 “服务器配置” 部分,设置 URL 和 Token,其中
URL是你后面要发布的sevlet的地址,比如:http://xxx.xxx.xxx.xxx/weinxinDemo/WeixinSvc,
注释:这里xxx.xxx.xxx.xxx是你的IP或者域名,weinxinDemo是 你的网站webSite的名称,WeixinSvc 是 sevlet的名称。
Token 是用于认证的标记,可以随便设置,不过要记下下来,后面要用。
注释:在演示中,我使用helloweixin作为我的token
4.建立一个新的servlet(集成自WeixinBaseServlet)用于接收 “来自微信服务的web调用”。
创建新的servLet,名字是WeixinSvc。注意这里和上一步里的 3.3 里的servlet名称相同。这个servlet集成自:WeixinBaseServlet,示例代码如下:
package weixinmobile.services; import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import weixinFundation.core.common.WeixinBaseServlet;
import weixinFundation.core.common.WeixinContext; /**
* 用于和 腾讯微信 交互的的servlet
*/
@WebServlet("/WeixinSvc")
public class WeixinSvc extends WeixinBaseServlet { /**
* @see HttpServlet#HttpServlet()
*/
public WeixinSvc() {
super();
} @Override
protected WeixinContext onInitWeixinContext() {
return new WeixinContextImpl();
} }
上面的代码写了一个WeixinContextImpl ,这里使用了一些“上下文配置信息”,我们下面实现它。
package weixinmobile.services; import weixinFundation.core.common.LinkedMessageWeixinContext;
import weixinmobile.services.handlers.EventMessageHandler;
import weixinmobile.services.handlers.TextMessageHandler; public class WeixinContextImpl extends LinkedMessageWeixinContext{
public static final String Token = "helloweixin"; public static final String appID = "你的appid";
public static final String appsecret = "你的appsecret"; @Override
public void onCreate() {
addHander(new TextMessageHandler());
addHander(new EventMessageHandler());
} @Override
public String getToken() {
return Token;
} }
上面的代码的onCreate加载了两个消息处理器,如下:
addHander(new TextMessageHandler()); //用于处理 字符文本消息的处理
addHander(new EventMessageHandler()); //用于处理 事件的消息处理
TextMessageHandler 和 EventMessageHandler 都继承自 WeixinMessageHandler
根据你的业务需要,你可以自定义这些消息的处理方式,你的主要业务,代码逻辑会集中在你自定义的Handler里。
在你自定义的Handler处理 来自 手机发来的消息或者点击事件,用户关注事件等,在这里可以对他们进行回复。
5.配置和使用 菜单
根据目前的规则,服务号才有菜单,你需要在 进入微信公众平台的后台开启它。
下面是根据我的 演示项目 weixinDemo里 创建菜单的方式,
进入我们的项目代码,创建一个 src/menu.txt 这里使用json描述了菜单,你根据自己的需要修改它。
你会看到有个 MenuSvc 的servlet,我在这个servlet里写了,自动获得认证,读取刚刚 menu. txt文件内容发送到微信后台的方法。
你需要在浏览器里执行者个servlet,格式如下:..../MenuSvc?a=create 就OK 了。这个MenuSvc 是我为了方便创建菜单写的,建议在正式发布时删除这个MenuSvc 以确保安全。
6.发布
经编译好的代码,部署在Tomcat下,确保外网通畅,大功告成。你就可以关注你自己的微信公众号了。
我的其他文章:
微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发
微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发的更多相关文章
- iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...
- OS开发UI篇—使用UItableview完成一个简单的QQ好友列表
本文转自:http://www.cnblogs.com/wendingding/p/3763330.html 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableVi ...
- iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)
一.实现效果 二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...
- 跟Google学习Android开发-起始篇-用碎片构建一个动态的用户界面(3)
4.3 构建一个灵活的用户界面 当设计你的应用程序要支持大范围的屏幕尺寸时,你可以在不同的布局配置中重用碎片,来根据可用的屏幕空间优化用户体验. 例如,在手持设备上,它可能是适应来在一个单窗格用户界面 ...
- 跟Google学习Android开发-起始篇-构建你的第一个应用程序(4)
说明:此系列教程翻译自Google Android开发者官网的Training教程,利用Chome浏览器的自动翻译功能作初译,然后在一些语句不顺或容易造成误解的地方作局部修正.方便英文不好的开发者查看 ...
- iOS开发网络篇—网络请求(HTTP协议)小结
iOS开发网络篇—网络请求(HTTP协议)小结 iOS开发网络篇—网络请求(HTTP协议)小结 1. 聊一下HTTP协议(协议的完整的通信过程) 2.通信过程 1> 请求 * 客户端 --> ...
- 分享一下,PHP实现第四方QQ微信扫码登陆,不接入qq互联以及微信开发者平台就可以实现用户对接鹅厂,phpQQ微信扫码登陆
自己抓的QQ包以及整合了网上一些已经封装好了的代码具体如下:QQ: <?php class QQ extends Curl_Api { //获取登录验证码 public function QRc ...
- 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...
随机推荐
- 使用 vue-cli 实现组件之间数据交换
1 使用脚手架工具用 webpack 模板初始化项目,用 webstorm 打开项目.src 目录下是要编写的源文件. main.js 文件 是主入口文件, 在es6语法中,:function(){} ...
- JavaWeb 返回json数据的两种方式
1.说明 由于一般情况下,由浏览器(前端)发送请求,服务器(后台)响应json数据,所以这里结合js进行说明: A服务器发送请求至B服务器,并接收其返回的json数据,见文末推荐,这里不再赘述! 2. ...
- rational rose 2003完整汉化版 win7版
下载链接:https://pan.baidu.com/s/1InpgNS_1-Rigw4fE3OX1Eg 软件介绍 Rational Rose 2003破解版是一款基于UML的可视化建模工具.可用于软 ...
- Linux 密码过期(WARNING:Your password has expired )
最近遇到两次这个问题,我们公司用的是开源的堡垒机Jumpserver但是最近有两个同学遇到了 WARNING:Your password has expired 第一次遇到这个问题也没有往深了去查,当 ...
- 云服务器 nginx + tomcat 部署集群 配置
nginx.conf #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log not ...
- Java Web(十一) 分页功能的实现
虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果. --WH 一.分页的思路 首先我们得知道写分页代码时的思 ...
- redis-3.0.0_rc5的RPM包制定
首先查看脚本: # cat /tmp/redis_before.sh #!/bin/bash if [ ! -d /apps/redis-3.0.0-rc5 ];then mkdir -p /apps ...
- Cloud Resource
Cloud Public Cloud Aliyun AWS Azure Cloud Stack SDN指南 DNS:Band Private Cloud DC/OS OpenStack Hybrid ...
- (原创)c++11改进我们的模式之改进访问者模式
本次讲c++11改进我们的模式之改进访问者模式 访问者模式是GOF23个设计模式中比较复杂的模式之一,但是它的功能也很强大,非常适合稳定的继承层次中对象的访问,可以在不修改被访问对象的情况下,动态添加 ...
- mysql--Ubuntu下设置MySQL字符集为utf8
1.mysql配置文件地址/etc/mysql/my.cnf 2.在[mysqld]在下方添加以下代码[mysqld]init_connect='SET collation_connection = ...