微信消息接口开发

    感觉到微信的发展就是调用了微信接口,因此,当没有安排的工作时,我观察并尝试调用微信接口。调用微信接口需要发送http get和post请求。最好写一个httputil类,专门用于发送get和post请求,但是我的java网络编程不好,所以百度一些代码,然后封装了一些,可以正常使用,代码如下

httputil类1.png

httputil类2.png

httputil类3.png

httputil类4.png

httputil类5.png

    其中的httpGet 和httpPost 用来发送get,和post请求,微信开发里面,消息接口一般是xml格式的,其他的接口上传和返回的数据一般是json,所以需要一个解析json的包,我用的是fastjson,当然也可以用gson


    现在开始消息接口的测试,首先要了解请求过程:


    微信服务器会根据填写的url发送get请求进行验证,当验证成功,还是根据url发送post请求,消息格式为xml格式


    消息类型开发文档上有,主要有文本,图片,语音等消息,还有一些事件,如关注,点击,和跳转。


    这些消息和事件是xml格式,所以要对xml格式的消息进行解析,我用的dom4j解析,


    在之前验证接入的servlet的doPost方法解析消息,


    我是按照柳峰的博客里面写的方法,写了个MessageUtil,里面封装了解析xml的方法,并把解析出来的结果放在map中,具体代码如下:

MessageUtil.png

    那么经过解析后的xml会按照 标签名 - 内容 保存在map中


    然后可以从中取出消息类型msgType


    String msgType = requestMap.get("MsgType");


    然后判断消息的类型,不同的消息类型,让不同的servlet去处理,

不同的servlet去处理.png

    不同的servlet里面处理不同的消息,可以根据需要返回不同的消息,返回消息的格式也是xml格式的,返回消息类型跟接受的消息类型基本类似,可以对这些返回的消息进行封装,每个xml标签对应字段名,内容就是字段的内容


    例子:

不同的servlet去处理1.png

    省略了set,get方法

省略了set,get方法.png

    因为不同的消息有相同的字段,因此写了通用的基类。


    现在离返回消息给用户还差一步,技术将这些pojo类转化为xml字符串


    用的是xstream

用的是xstream.png

    这里只是简单的描述,具体的可以以看柳峰的博客,链接我忘记了,应该可以百度的到


    最后将得到的string 返回给微信服务器就可以回复用户了。


    只用这些消息接口就可以写一个简单的订阅号了,应该,一般公司的公众号好像是通过view类型的button跳到自己的网站里面去。


    现在,您可以使用上面的界面接收用户发送的各种消息,然后转发该消息,您可以自己对其进行处理,或者调用一些API(例如天气,笑话,文章等)来获取结果,然后解析后,以您想要的格式返回它们用户可以练习诸如生活助手之类的订阅帐户,但是个人所应用的订阅帐户的权限是有限的,我不知道它是否可以胜任。

我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题