第一范文网 - 专业文章范例文档资料分享平台

微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应

来源:用户分享 时间:2025/9/26 7:57:24 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

04. /** 05. * 创建菜单 06. * 07.

* @param menu 菜单实例 08.

* @param accessToken 有效的access_token 09.

* @return 0表示成功,其他值表示失败 10. */ 11.

public static int createMenu(Menu menu, String accessToken) { 12.

int result = 0; 13. 14.

// 拼装创建菜单的url 15.

String url = menu_create_url.replace(\16.

// 将菜单对象转换成json字符串 17.

String jsonMenu = JSONObject.fromObject(menu).toString(); 18.

// 调用接口创建菜单 19.

JSONObject jsonObject = httpRequest(url, \20. 21.

if (null != jsonObject) { 22.

if (0 != jsonObject.getInt(\23.

result = jsonObject.getInt(\24.

log.error(\创建菜单失败 errcode:{} errmsg:{}\jsonObject.getString(\

jsonObject.getInt(\

25. } 26. } 27. 28.

return result; 29. }

注意:在运行以上代码时,需要将appId和appSecret换成你自己公众号的。

整个工程的结构 \\

为了保证文章的完整独立性和可读性,我是新建了一个Java Project(Java web工程也可以,没有太大关系),没有在前几篇文章所讲到的weixinCourse工程中添加代码。如果需要,读者可以自己实现将菜单创建的代码移到自己已有的工程中去。 图中所有Java文件的源代码都在文章中贴出并进行了说明,图中使用到的jar也是Java开发中通用的jar包,很容易在网上下载到。 工程中引入的jar包主要分为两类:

1)第一类是json开发工具包,用于Java对象和Json字符串之间的转换;json开发工具包一共有3个jar:ezmorph-1.0.6.jar,json-lib-2.2.3-jdk13.jar和morph-1.1.1.jar。

2)第二类是slf4j日志工具包,用于记录系统运行所产生的日志,日志可以输出到控制台或文件中。

整个工程中,唯一没有讲到的是src下的log4j.properties的配置,也把它贴出来,方便大家参考,这样才是一个完整的工程源码。log4j.properties文件的内容如下: view sourceprint? 01.

log4j.rootLogger=info,console,file 02. 03.

log4j.appender.console=org.apache.log4j.ConsoleAppender 04.

log4j.appender.console.layout=org.apache.log4j.PatternLayout 05.

log4j.appender.console.layout.ConversionPattern=[%-5p] %m%n 06. 07.

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 08.

log4j.appender.file.DatePattern='-'yyyy-MM-dd 09.

log4j.appender.file.File=./logs/weixinmpmenu.log 10.

log4j.appender.file.Append=true 11.

log4j.appender.file.layout=org.apache.log4j.PatternLayout 12.

log4j.appender.file.layout.ConversionPattern=[%-5p] %d 7c %3x - %m%n 如何响应菜单点击事件

自定义菜单的创建工作已经完成,那么该如何接收和响应菜单的点击事件呢,也就是说在公众帐号后台处理程序中,如何识别用户点击的是哪个菜单,以及做出响应。这部分内容其实在教程的第5篇各种消息的接收与响应中已经讲解清楚了。

来看一下第一篇教程weixinCourse项目中的CoreService类要怎么改写,才能接收响应菜单点击事件,该类修改后的完整代码如下: view sourceprint? 001.

package org.liufeng.course.service; 002. 003.

import java.util.Date; 004.

import java.util.Map; 005. 006.

import javax.servlet.http.HttpServletRequest; 007. 008.

import org.liufeng.course.message.resp.TextMessage; 009.

import org.liufeng.course.util.MessageUtil; 010. 011. /** 012.

* 核心服务类 013. * 014.

* @author liufeng 015.

* @date 2013-05-20

016. */ 017.

public class CoreService { 018. /** 019.

* 处理微信发来的请求 020. * 021.

* @param request 022.

* @return 023. */ 024.

public static String processRequest(HttpServletRequest request) { 025.

String respMessage = null; 026. try { 027.

// 默认返回的文本消息内容 028.

String respContent = \请求处理异常,请稍候尝试!\029. 030.

// xml请求解析 031.

Map requestMap = MessageUtil.parseXml(request); 032. 033.

// 发送方帐号(open_id) 034.

String fromUserName = requestMap.get(\035.

// 公众帐号 036.

String toUserName = requestMap.get(\037.

// 消息类型

微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4a45w2czpj3gyk7183zw_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top