本文主要讲解如何使用 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开始一个微信公众平台的开发的更多相关文章

  1. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  2. OS开发UI篇—使用UItableview完成一个简单的QQ好友列表

    本文转自:http://www.cnblogs.com/wendingding/p/3763330.html 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableVi ...

  3. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)

    一.实现效果             二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...

  4. 跟Google学习Android开发-起始篇-用碎片构建一个动态的用户界面(3)

    4.3 构建一个灵活的用户界面 当设计你的应用程序要支持大范围的屏幕尺寸时,你可以在不同的布局配置中重用碎片,来根据可用的屏幕空间优化用户体验. 例如,在手持设备上,它可能是适应来在一个单窗格用户界面 ...

  5. 跟Google学习Android开发-起始篇-构建你的第一个应用程序(4)

    说明:此系列教程翻译自Google Android开发者官网的Training教程,利用Chome浏览器的自动翻译功能作初译,然后在一些语句不顺或容易造成误解的地方作局部修正.方便英文不好的开发者查看 ...

  6. iOS开发网络篇—网络请求(HTTP协议)小结

    iOS开发网络篇—网络请求(HTTP协议)小结 iOS开发网络篇—网络请求(HTTP协议)小结 1. 聊一下HTTP协议(协议的完整的通信过程) 2.通信过程 1> 请求 * 客户端 --> ...

  7. 分享一下,PHP实现第四方QQ微信扫码登陆,不接入qq互联以及微信开发者平台就可以实现用户对接鹅厂,phpQQ微信扫码登陆

    自己抓的QQ包以及整合了网上一些已经封装好了的代码具体如下:QQ: <?php class QQ extends Curl_Api { //获取登录验证码 public function QRc ...

  8. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

  9. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

随机推荐

  1. Python 爬虫 大量数据清洗 ---- sql语句优化

    . 问题描述 在做爬虫的时候,数据量很大,大约有五百百万条数据,假设有个字段是conmany_name(拍卖公司名称),我们现在需要从五百万条数据里面查找出来五十家拍卖公司, 并且要求字段 time( ...

  2. PHP的生成器、yield和协程

    虽然之前就接触了PHP的yield关键字和与之对应的生成器,但是一直没有场景去使用它,就一直没有对它上心的研究.不过公司的框架是基于php的协程实现,觉得有必要深入的瞅瞅了. 由于之前对于生成器接触不 ...

  3. win7 安装mysql 5.7.9记录

    -------------------------------------------------------------------------- 1. 将配置文件my.ini配置好,放到c:/wi ...

  4. Java:多线程,Semaphore同步器

    1. 背景 类java.util.concurrent.Semaphore提供了一个计数信号量.通过Semaphore类,可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如 ...

  5. exe4j打包java应用程序

    转载地址:http://blog.csdn.net/fog911811/article/details/6151700 第一.将应用程序导出成一个JAR文件. 1.先打包程序成一个jar.在eclip ...

  6. IOS开发----生成静态库(.a)

    由于iPhone控件的极度匮乏和自定义组件在重用上的限制,在过去的项目中我们积累了大量的“纯代码”组件——因为IB本身的限制,我们无法把这些组件封装为IB组件库(本来我们想通过分发xib文件的方式重用 ...

  7. Oracle Time Model Statistics(时间模型统计)

    Oracle数据库从10g開始,启用以时间模型统计为主.命中率为辅等性能度量指标.基于时间模型统计,主要是基于操作类型測量在数据库中花费的时间的统计信息.最重要的时间模型统计是数据库时间.或DB时间. ...

  8. HTML5学习笔记(八):CSS定位

    CSS 定位 (Positioning) 属性允许你对元素进行定位. 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠.定位的基本思想很简单 ...

  9. The Linux Command Line,Script

    https://stackoverflow.com/questions/5891342/modify-conf-file-with-shell-script http://www.grymoire.c ...

  10. 使用HttpClient配置代理服务器模拟浏览器发送请求调用接口测试

    在调用公司的某个接口时,直接通过浏览器配置代理服务器可以请求到如下数据: 请求url地址:http://wwwnei.xuebusi.com/rd-interface/getsales.jsp?cid ...