微信公众开放平台开发01---微信公众平台介绍,以及开发准备
发布日期:2021-06-29 17:56:21
浏览次数:2
分类:技术文章
本文共 3490 字,大约阅读时间需要 11 分钟。
微信公众开放平台开发01---微信公众平台介绍,以及开发准备
技术qq交流群:JavaDream:251572072部分内容收集于网络:
1.先分享一份源码: 微信公众开放平台开发 -智能机器人java源代码工程 接口配置信息 url: Token:weixin ----------------------------------------------- 2.微信公众平台的搭建。 首先你必须要有一个申请一个微信公众平台账号, 这个很简单的 自己去申请就Ok,申请后,进入高级功能的开发模式中(其他功能可以自己去了解,这里主要讲对于平台的开发), 可以看到他会要你填写一个URL和token的东西,URL是你的服务器相映类的映射地址(这个对于学java中web的人来说,并不陌生吧), token是一个相当于”用来加密的码“的东西,API文档中也有介绍。 这个东西呢,是一个处于验证阶段的东西,就好像是你要设定一个URL, 那人家必须保证,你这个URL地址是能用的,他会传给你一个echostr的参数,然后给你很多其他很多参数(如你自己的token等) 来确认这个请求是来自微信平台,最后把他传给你的echostr传回给微信平台, 平台就会把你说输入的URL绑定,以后就不用验证了,这个URL就被微信说识别,以后要是有人发送了消息给你的平台, 他就会通过URL把这个消息转发给你。这是微信验证的整个过程。那么实现验证的代码是怎么的呢,对于我来说就一句话: response.getWriter().write(request.getParameter("echostr")); 为什么会显得如此简单呢,是因为我的服务器只是用来实现这个平台的,所以不需要官方给定的那么多验证, 如果说你的服务器是已经开始运行在处理其他工作的话,那就需要验证, 参考: 这个人详细说明了平台验证的过程,包括加密呀,获取验证什么的。 但我还是说明一下,如果你的服务器没用来做其他用途,那么就一句话就行, 在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验证,到对用户的接发消息转载地址:https://credream.blog.csdn.net/article/details/23040551 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月21日 03时28分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
语音特性提取回顾-从mel定标到mfc和mfcc
2019-04-30
网络安全菜鸟学习之漏洞篇——sql(二)
2019-04-30
网络安全菜鸟学习之漏洞篇——逻辑漏洞(一)
2019-04-30
网络安全菜鸟学习之漏洞篇——逻辑漏洞(二)
2019-04-30
2021年总结
2019-04-30
RDD编程初级实践
2019-04-30
室内定位导航地图制作问题
2019-04-30
室内定位蓝牙信标安装规划问题
2019-04-30
室内位置服务在智慧医院的应用
2019-04-30
室内定位技术在社区物业管理中的新应用——新冠肺炎疫情下的物业管理变革
2019-04-30
智慧景区人员定位方案
2019-04-30
基于NBiot的新型电子巡更巡检解决方案
2019-04-30
LoRa在景区的人员安全管理方案
2019-04-30
室内定位之蓝牙网关定位
2019-04-30
室内定位:智能手机定位 BLE-3
2019-04-30
室内定位:基于LoRa网络的蓝牙定位 BLE-2
2019-04-30
室内定位:基于NB/LTE Cat.1蜂窝网络的穿戴设备定位 BLE-4
2019-04-30
智慧博物馆·室内位置服务系统建设建议
2019-04-30