微信公众平台二次开发手册_第1页
微信公众平台二次开发手册_第2页
微信公众平台二次开发手册_第3页
微信公众平台二次开发手册_第4页
微信公众平台二次开发手册_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微信二次开发手册准备工作申请微信服务号,进行微信认证;成为开发者:申请成功后,从网页上登录微信公众平台,点击“开发者中心”,输入“接收微信平台转发消息的统一URL”和“TOKEN”提交成为开发者。(这两个参数后面还可以修改)获取AppId和AppSecret:成为开发者后,在“开发者中心中”页面,可获取AppId和AppSecret两个参数。项目搭建及配置 创建一个web项目,还需将wadata-weixin.jar包添加到项目中。Wadata-weixin.jar下载地址:/s/1kT27Ovt提取码:6eb1wadata-weixin.jar包提供主要两个功能:微信转发请求处理器WeiXinServlet,主要做以下事件:1接收微信转发的消息;2对消息进行封装成对象WeiXinMessage;3把消息对象WeiXinMessage转递给微信菜单处理器WeiXinProcessor进行业务逻辑处理,微信菜单处理器返回微信响应对象WeiXinPacket4把微信响应对象WeiXinPacket解析成xml消息,并响应微信请求。微信接口统一调用类WeiXinInterface,目前提供以下功能:(后面会按需要增加)1获取全局Access_Token2创建微信菜单3查询微信菜单4删除微信菜单在web.xml中配置用于接收微信消息的Servlet<servlet><servlet-name>WeiXinServlet</servlet-name><servlet-class>com.wadata.weixin.base.servlet.WeiXinServlet</servlet-class><init-param><param-name>PROCESSOR_PACKAGE</param-name><param-value>cessor</param-value></init-param></servlet><servlet-mapping><servlet-name>WeiXinServlet</servlet-name><url-pattern>/weixin</url-pattern></servlet-mapping>参数说明:PROCESSOR_PACKAGE:微信公众号功能菜单的处理器的Java包路径。perties:将准备工作中输入的TOKEN和开发都中心页面获取到的AppId和AppSecrets三个参数配置到properties中。微信菜单管理微信菜单接口中要求第三方将自己的菜单数据以JSON格式提交。因此首先要在项目创建一个JSON格式的文件,把自定义菜单配置好。按以下示例配置:{"button":[{"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC"},{"type":"click","name":"歌手简介","key":"V1001_TODAY_SINGER"},{"name":"菜单","sub_button":[{"type":"view","name":"搜索","url":"/"},{"type":"view","name":"视频","url":"/"},{"type":"click","name":"赞一下我们","key":"V1001_GOOD"}]}]}说明:button数组中存放的是一级菜单,最多存放三个一级菜单;sub_button数组中存放的是二级菜单,最多存放的5个二级菜单;支持两种菜单类型click:点击菜单将在微信中直接显示消息; view:点击菜单将打开微信网页;wadata-weixin.jar包中WeiXinInterface类提供微信菜单的创建,查询,删除接口。创建实例:WeiXinInterfaceweiXinInterface=newWeiXinInterface();调用获取ACCESS_TOKEN接口(此TOKEN的有效时间为7200秒,也即两个小时)WeiXinAccessTokenweixinAccessToken=weiXinInterface.token("client_credential",Application.getWeixin_app_id(),Application.getWeixin_app_secret());StringaccessToken=weixinAccessToken.getAccess_token();参数说明:第一个参数:固定值client_credential第二个参数:perties配置文件中的AppId第三个参数:perties配置文件中的AppSecrets微信菜单创建:调用菜单创建接口weiXinInterface.menuCreate(accessToken,menuJson);参数说明:第一个参数:第2步中获取到的ACCESS_TOKEN,如果时间超过2个小时,则需要重新进行第2步操作获取ACCESS_TOKEN第二个参数:自定义的菜单JSON文件的字符串返回值:true表示创建成功,否则创建失败,失败原因可通过日志查看。微信菜单查询:调用菜单查询接口weiXinInterface.menuQuery(accessToken);参数说明:第一个参数:第2步中获取到的ACCESS_TOKEN,如果时间超过2个小时,则需要重新进行第2步操作获取ACCESS_TOKEN返回值:菜单的JSON格式字符串微信菜单删除调用菜单删除接口weiXinInterface.menuDelete(accessToken);参数说明:第一个参数:第2步中获取到的ACCESS_TOKEN,如果时间超过2个小时,则需要重新进行第2步操作获取ACCESS_TOKEN返回值:true表示删除成功,否则删除失败,失败原因可通过日志查看。微信菜单修改先修改菜单的JSON文件调用菜单删除接口,删除原来创建的菜单调用菜单创建接口,创建新的菜单4click类型菜单开发在自定菜单JSON文件中,click类型菜单需要配置一个与菜单对应的唯一的key。您需要在“项目搭建及配置”一步中的PROCESSOR_PACKAGE参数指定包中创建一个实现了WeiXinProcessor接口的类,并用注解@Processor("菜单的key值")来标注在该类。示例:/***微信菜单-投诉建议*/@Processor("V3001_COMPLAIN")publicclassComplainProcessorimplementsWeiXinProcessor{@OverridepublicWeiXinPacketprocess(WeiXinMessagemessage){//菜单事件响应 returnWeiXinPacketHelper.buildTextPacket(message,MessageFormat.format(Application.getComplain(),Application.getSystem_domain(),message.getFromUserName()));}}WeiXinProcessor接口说明:该接口中只有一个方法:publicWeiXinPacketprocess(WeiXinMessagemessage);入参:微信消息的封装对象,出参:微信响应对象,WeiXinServlet会自动把接收到的xml消息封装成WeiXinMessage对象,并传递给菜单处理器WeiXinProcessor,WeiXinProcessor处理完业务后需要把结果封装成WeiXinPacket对象返回。WeiXinProcessor菜单处理器中,如果需要获取微信用户的基本信息,则需要调用获取用户基本信息接口,ACCESS_TOKEN参数可调用微信菜单管理中的第2步来获取,OPENID参数可从WeiXinMessage对象中获取。文本消息封装示例:/***组装文本响应包*/publicstaticWeiXinPacketbuildTextPacket(WeiXinMessagemessage,Stringcontent){WeiXinPacketpacket=newWeiXinPacket();packet.setFromUserName(message.getToUserName());packet.setToUserName(message.getFromUserName());packet.setMsgType(WeiXinMsgType.TEXT.getValue());packet.setCreateTime(Long.toString(newDate().getTime()));packet.setContent(content);returnpacket;}说明:WeiXinMessagemessage为接收到的消息封装对象Stringcontent为要返回的消息字符串图文消息封装示例:/***组装新闻响应包*/publicstaticWeiXinPacketbuildNewsPacket(WeiXinMessagemessage,List<WeiXinItem>items){WeiXinNewsPacketpacket=newWeiXinNewsPacket();packet.setToUserName(message.getFromUserName());packet.setFromUserName(message.getToUserName());packet.setCreateTime(Long.toString(newDate().getTime()));packet.setMsgType(WeiXinMsgType.NEWS.getValue());packet.setArticleCount(Integer.toString(items.size()));packet.setItems(items);returnpacket;}说明:WeiXinMessagemessage为接收到的消息封装对象。List<WeiXinItem>items为要返回的图文对象列表,列表中的图文对象最多为10个,否则返回不成功。所以您需要先将图文信息封装成WeiXinItem对象。5view类型菜单开发View类型菜单,没有唯一的key,只有对应的菜单url。点击view类型菜单,微信会在自带的浏览器中打开菜单的url链接。微信网页要适应手机的屏幕大小,需要做Wap网页,也就是在网页的<head>标签中添加以下代码:<metacontent="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;"name="viewport"/><metacontent="yes"name="apple-mobile-web-app-capable"/><metacontent="black"name="apple-mobile-web-app-status-bar-style"/><metacontent="telephone=no"name="format-detection"/>如果进入到微信菜单页面时,需要是哪个用户进来的话,就需要调用OAuth2.0网页授权接口来获取用户的基本信息了。6微信消息分组群发由于微信群发接口有次数限制,因此需要把关注者先分组,再按组来群发消息。以下为群发接口的调用说明:1、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论