微信公众开放平台开发01---微信公众平台介绍,以及开发准备
技术qq交流群:JavaDream:251572072

部分内容收集于网络:
1.先分享一份源码:
微信公众开放平台开发 -智能机器人java源代码工程
接口配置信息
url:http://tomcat886.duapp.com/coreServlet
Token:weixin
-----------------------------------------------
2.微信公众平台的搭建。
  首先你必须要有一个申请一个微信公众平台账号,
   这个很简单的https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN
   自己去申请就Ok,申请后,进入高级功能的开发模式中(其他功能可以自己去了解,这里主要讲对于平台的开发),
   可以看到他会要你填写一个URL和token的东西,URL是你的服务器相映类的映射地址(这个对于学java中web的人来说,并不陌生吧),
   token是一个相当于”用来加密的码“的东西,API文档中也有介绍。
   这个东西呢,是一个处于验证阶段的东西,就好像是你要设定一个URL,
   那人家必须保证,你这个URL地址是能用的,他会传给你一个echostr的参数,然后给你很多其他很多参数(如你自己的token等)
   来确认这个请求是来自微信平台,最后把他传给你的echostr传回给微信平台,
   平台就会把你说输入的URL绑定,以后就不用验证了,这个URL就被微信说识别,以后要是有人发送了消息给你的平台,
   他就会通过URL把这个消息转发给你。这是微信验证的整个过程。那么实现验证的代码是怎么的呢,对于我来说就一句话:
   response.getWriter().write(request.getParameter("echostr"));
   为什么会显得如此简单呢,是因为我的服务器只是用来实现这个平台的,所以不需要官方给定的那么多验证,
   如果说你的服务器是已经开始运行在处理其他工作的话,那就需要验证,
   参考:http://blog.csdn.net/wangqianjiao/article/details/8469780
   这个人详细说明了平台验证的过程,包括加密呀,获取验证什么的。
   但我还是说明一下,如果你的服务器没用来做其他用途,那么就一句话就行,
   在doGet里边写上这句话,就能轻易完成验证,何必那么麻烦呢,是吧?
3.微信平台的使用。
  在搭建好平台,系统识别了你的URL后,就应该学会对消息经行处理。
  请记住,验证过程只是用来绑定URL的,一旦绑定成功,成为开发者,
  之前工作就没用了,请把那句代码请删掉(不删也没什么,但最好是删掉,以免造成程序可读性降低),
  在消息发送的过程中,平台是通过Post来发送的,所以你的所有处理,都得在doPost中经行。
---------------------------------------------------------------------------------------
(1).如何获取消息?
        在微信的API文档中也有消息描述,他会用过一些参数向你发送很多这个消息,下面是文本消息的例子。
 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
       这是微信平台会发送给你的消息,
       其中fromUserName是一个参数,指的是用户微信唯一的标示符,应该用户的微信ID经过加密形成的串,
       因为它是唯一的,所以一般用用来做层级的标示符,也就是判断用户正在进入哪一级的菜单。
       ToUserName为公共平台的ID,
       CreateTime为消息产生的时间,
       MsgType为消息类型(即text消息是文本消息,如果是图片消息,则为image),
       Content为消息内容,指的是该消的实际内容,
       MsgId是该消息的唯一ID号。
       这个就是整个的消息组成体,
       他给你一个xml,自己解析出内容
-----------------------------------------------------------
        //下面开始解析微信平台发过来的内容
 InputStream is = request.getInputStream();
            // 取出对应请求流的长度
        int size = request.getContentLength();
        byte[] buffer = new byte[size];//缓存数组
        byte[] xmldataByte = new byte[size];//存放结果的数组
           int count = 0;
           int rbyte = 0;
           // 循环读取
        while (count < size) {
           // 每次实际读取长度存于rbyte中
           rbyte = is.read(buffer);
                for(int i=0;i<rbyte;i++) {
                    xmldataByte[count + i] = buffer[i];
                }
                count += rbyte;
            }
            is.close();
 //将传来的数据转换字符集
            String requestStr = new String(xmldataByte, "UTF-8");
            //数据读取完成
        //获取xml中的参数
            Document doc = DocumentHelper.parseText(requestStr);
            Element rootElt = doc.getRootElement();
            String content = rootElt.elementText("Content");
            String toUserName = rootElt.elementText("ToUserName");
            String fromUserName = rootElt.elementText("FromUserName");
            String msgType = rootElt.elementText("MsgType");
           //获取参数就完成了,这样,一个全面的用户发送来的消息就接受到了,
    //是不是很容易?接收到消息过后就要开始处理消息,这个用您自己来定,根据您实际运用来处理。
--------------------------------------------------------------------------------------------------------------
(2)如何返回消息,做完消息的处理后,我们要对用户一个反馈,如何返回消息?其实是一样的
               String responseStr = "<xml>";
                responseStr += "<ToUserName><![CDATA[" + fromUserName
                        + "]]></ToUserName>";
                responseStr += "<FromUserName><![CDATA[" + toUserName
                        + "]]></FromUserName>";
                responseStr += "<CreateTime>" + System.currentTimeMillis()
                        + "</CreateTime>";
                responseStr += "<MsgType><![CDATA[text]]></MsgType>";
                responseStr += "<Content>这里写要返回的具体内容</Content>";
                responseStr += "<FuncFlag>0</FuncFlag>";
                responseStr += "</xml>";
                response.getWriter().write(responseStr);
     //在对应的地方,写上对应的内容就可以了,最好的是,把他封装成一个方法,
     //或者类的静态方法,我自己就不做详细描述。
--------------------------------------------------------------------------------------------------------
          4.这样一个简单的微信公众平台就已经完成,从一开始的URL验证,到对用户的接发消息

微信公众开放平台开发01---微信公众平台介绍,以及开发准备相关推荐

  1. 微信彻底开放后第三方表态 微信生意宝:微信分销是门好生意?!

    在上月初的腾讯全球合作伙伴大会上,微信宣布将向第三方开放更多接口,此举被认为自主耕耘时代结束,微信走向开放,拥抱第三方.而第三方对微信开放态度也颇为欢迎,在获得更多接口后,第三方可以开发更多功能,有更 ...

  2. android4.0怎么用微信,新开放接口 Android版微信4.0全新体验

    在iPhone版微信4.0推出以后,不少Android客户端的朋友也期待着最新版微信的到来,其实Android版微信的跟进速度很快,4.0版本现在已经开始内测了,微信4.0有着相当重要的更新,这也让这 ...

  3. 文顶顶 iOS开发UI篇—UITabBarController简单介绍 iOS开发UI篇—UITabBarController简单介绍...

    一.简单介绍 UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例 ...

  4. 微信是怎样炼成的 微信产品的发展历程

    迄今为止,微信月活跃用户接近6亿,称得是每个智能手机用户最常用的应用,人人都说,微信是个伟大的产品.现在微信作为一个平台型的产品,集成了众多丰富的,能给用户带来不同功能和体验的模块和工具,已经成为了腾 ...

  5. 微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单

    微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单 微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单  技术qq交流群:JavaDream:251572072 ...

  6. 微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证

    微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证  技术qq交流群:JavaDream:251572072 ------------------------- ...

  7. 微信公众开放平台开发06---复习一下servlet

    微信公众开放平台开发06---复习一下servlet  技术qq交流群:JavaDream:251572072  ------------------------------------------- ...

  8. 微信公众开放平台开发02---微信公众平台PHP接口和java接口对比

    微信公众开放平台开发02---微信公众平台PHP接口和java接口对比 技术qq交流群:JavaDream:251572072 ----------------------------------- ...

  9. 微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试

    微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试 技术qq交流群:JavaDream ...

最新文章

  1. Asp.net动态生成html页面
  2. 【ACM】CODE[VS] 1215 (DFS)
  3. 解决TensorBoard训练集和测试集指标只能分开显示的问题(基于Keras)
  4. 标题:分数(2018C语言A组(1))
  5. 解决spring和struts配合问题
  6. Redis 数据库入门教程
  7. Git 版本对比 idea图形化版本
  8. 形参和实参是什么?? shim和polyfil是什么意思??
  9. 【Python】datetime内置模块处理日期和时间
  10. java util 中set,List 和Map的使用
  11. 计算机操作系统》第06章在线测试,《计算机操作系统》第01章在线测试
  12. 初始ES6-Webpack
  13. Linux系统下使用iftop结合iptables服务解决带宽被恶意请求的问题
  14. ThinkPHP5 ajax传值到后台进行处理(验证是否含有某段字符串、截取字符串、字符串转数组)...
  15. 电脑端思维导图软件推荐
  16. Android开发笔记(一百八十三)利用HMS轻松扫描二维码
  17. tomcat+mysql+腾讯云_腾讯云服务器配置tomcat和mysql
  18. python 三维地球_python的matplotlib的模拟太阳-地球-月亮运动
  19. hadoop详细笔记(十一) mapreduce数据分析案例之线段重叠案例
  20. 关键链项目管理汇总贴

热门文章

  1. 微信开发者工具不显示二维码问题
  2. 知乎上(知乎上有一个完全错误的回答,下最好的正确评论)非常好的关于mAP,AP等目标检测参数的解释(原来之前我理解错了!!)
  3. Hadoop系列之Aggregate用法
  4. 毕设日志2019.4.2——tf版本的faster rcnn的代码运行
  5. 脊髓损伤有哪些方法方法?顾连康复方法有哪些
  6. Magedu2_3 linux文件目录
  7. MySql查询随机几条数据
  8. 安装python的pip模块
  9. Uniform Distribution均匀分布
  10. PHP字符串中的变量解析(+教你如何在PHP字符串中加入变量)