【微信Java开发 --番外篇】错误解析
虽然在微信开发过程中,会有微信公众平台开发者文档中的《全局返回码》作为错误的参考对比;但是依旧的,会觉得有时候的问题莫名其妙。【注:本人使用weixin-java-tools进行开发】
下面吧微信开发过程中碰到的各种问题做一个归类【注:错误总结会在开发过程中一一补充】
一.自定义菜单---错误集合
1.创建自定义菜单{"errcode":40019,"errmsg":"invalid button key size hint: [a90WaA0296vr19]"}
错误代码:

十月 14, 2016 5:11:27 下午 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet [rest] in web application [/wxFirst] threw load() exception
me.chanjar.weixin.common.exception.WxErrorException: {"errcode":40019,"errmsg":"invalid button key size hint: [a90WaA0296vr19]"}
at me.chanjar.weixin.mp.api.impl.WxMpServiceImpl.executeInternal(WxMpServiceImpl.java:476)
at me.chanjar.weixin.mp.api.impl.WxMpServiceImpl.execute(WxMpServiceImpl.java:425)
at me.chanjar.weixin.mp.api.impl.WxMpServiceImpl.post(WxMpServiceImpl.java:414)
at me.chanjar.weixin.mp.api.impl.WxMpMenuServiceImpl.menuCreate(WxMpMenuServiceImpl.java:35)
at com.sxd.controller.CenterController.<init>(CenterController.java:97)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1088)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1040)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:505)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725)
at org.spring
这种错误对应代码错误的位置:
WxMenuButton button3=new WxMenuButton();
button3.setName("进入百度");
button3.setType("click");
button3.setUrl("http://www.baidu.com"); //URL类型的自定义按钮
错误分析:
发生这样的错误是因为,这个自定义菜单是用来做页面跳转的,即点击完了之后是要跳转到下一个页面的。所以:button3.setType("click");按钮的类型应该修改为button3.setType("view");
解决问题:
WxMenuButton button3=new WxMenuButton();
button3.setName("进入百度");
button3.setType("view");
button3.setUrl("http://www.baidu.com"); //URL类型的自定义按钮
------------------------------------------------------------------------------------------------------redirect_url参数异常----------------------------------------------------------------------------------------------------------
二.点击公众号上按钮,报错redirect_url参数异常
微信公众号下面的按钮,点击之后,报错redirect_url参数异常。


查找原因的方法:
因为做微信公众号开发,只能在手机微信上进行访问,没有办法调试,所以如果想在手机上看到微信访问的地址和传输的数据有哪些,可以在手机上下载一个【无root抓包】
启动之后界面如下:

点击启动按钮,绿色的按钮,然后去微信访问

找到微信访问的包,可以在里面看到详细信息。

解决方法:
1.设置按钮的这个地方的appId和redirect_uri后面跟的地址,直接写死,在一定程度上能避免这个问题
这样的话,需要取消关注,重新关注这个公众号,让按钮重新初始化一次,就能解决
private WxMenu createMenu()
{
WxMenu wxMenu = new WxMenu(); WxMenuButton firstMenuButton = new WxMenuButton();
firstMenuButton.setType("view");
firstMenuButton.setName("个人中心");
firstMenuButton.setKey("member");
firstMenuButton.setUrl("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + "wx40263796f5de033c" + "&redirect_uri=" + "http://weixin.myagen.cn/" + "wx/member/showAllMemberInfo.jhtml&&response_type=code&scope=snsapi_base&state=xxxx_state#wechat_redirect");
WxMenuButton secondMenuButton = new WxMenuButton();
secondMenuButton.setType("view");
secondMenuButton.setName("订单");
secondMenuButton.setKey("member");
secondMenuButton.setUrl("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + "wx40263796f5de033c" + "&redirect_uri=" + "http://weixin.myagen.cn/" + "wx/member/showAllMemberOrder.jhtml&&response_type=code&scope=snsapi_base&state=xxxx_state#wechat_redirect"); WxMenuButton threeMenuButton = new WxMenuButton();
threeMenuButton.setType("view");
threeMenuButton.setName("报告");
secondMenuButton.setKey("institution");
threeMenuButton.setUrl("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + "wx40263796f5de033c" + "&redirect_uri=" + "http://weixin.myagen.cn/" + "wx/member/memberReport.jhtml&&response_type=code&scope=snsapi_base&state=xxxx_state#wechat_redirect"); List<WxMenuButton> firstMenuButtons = new ArrayList();
firstMenuButtons.add(firstMenuButton);
firstMenuButtons.add(secondMenuButton);
firstMenuButtons.add(threeMenuButton); wxMenu.setButtons(firstMenuButtons); return wxMenu;
}
2.除此之外,还会因为微信公众平台上 网页授权地址也需要更改


这个文件放置在你项目的根目录下 webRoot下面


修改完成之后再去访问 就好了。
===========================================================================================================================
三。公众号初始化时候创建的自定义按钮,公众号上没有创建出来,捕捉之后发现错误码40164

错误码如下:
me.chanjar.weixin.common.exception.WxErrorException: {"errcode":40164,"errmsg":"invalid ip 113.139.190.118, not in whitelist hint: [fEjFNA0604e544]"}
解决方法:
是因为上面的IP地址,并没有添加到白名单中,导致按钮不能创建成功。
所以
可以在微信公众平台进入


修改,然后换行,将白名单填进去即可。

【微信Java开发 --番外篇】错误解析的更多相关文章
- Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...
- [置顶] think in java interview番外篇-谈程序员如何修练英语
一.程序员对英语能力的重视度和能力要求应该是在各行各业中排在比较靠前的 这样说吧,英语程度的好坏直接影响着一个程序员的编程.开发.创新能力. 道理很简单: 1. 计算机和软件是用英语创造出来的 2. ...
- 【微信Java开发 --1---番外1】在windows下,使用JAVA执行多条DOS命令+文件夹/路径中有空格怎么解决【目的是实现内容穿透外网】
内网穿透外网的那一篇,参正集1 但是每次都要Ctrl+R 启动DOS窗口,也就是CMD,一句一句的去粘,略显繁琐. 所以将这些任务写在JAVA程序中,启动一次程序就可以实现[内网穿透]的功能,多好啊! ...
- Java微信公众平台开发【番外篇】(七)--公众平台测试帐号的申请
转自:http://www.cuiyongzhi.com/post/45.html 前面几篇一直都在写一些比较基础接口的使用,在这个过程中一直使用的都是我个人微博认证的一个个人账号,原本准备这篇是写[ ...
- 番外篇!全球首个微信应用号开发教程!小程序 DEMO 视频奉上!
大家好,我是博卡君.经过国庆节的七天假期,相信很多朋友都已经研究出自己的小程序 demo 了吧?我最近也利用休息时间关注了一下网上关于小程序开发的讨论,今天就利用这个番外篇谈谈自己对小程序的一些想法吧 ...
- electron教程(番外篇一): 开发环境及插件, VSCode调试, ESLint + Google JavaScript Style Guide代码规范
我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(番外篇一): 开发环境及插件, VSCode调试, ESLint + Google ...
- 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示
一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...
- C++雾中风景番外篇:理解C++的复杂声明与声明解析
在学习C系列语言的过程之中,理解C/C++的复杂声明一直是初学者很困扰的问题.笔者初学之时也深受困扰,对很多规则死记硬背.后续在阅读<C专家编程>之后,尝试在编译器的角度来理解C/C++的 ...
- 《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外篇(详解教程)
1.简介 上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,于是写了这一篇文章,另外也是 ...
随机推荐
- Mysql 基础3
1. 逗号是个好东西2.对于多条件查询 和范围查询 的灵活运用(and 和or 的灵活运用)in 用的时候注意 补充select * from car where name like '%奥迪%' a ...
- 利用冒泡对List排序
SysMenu是List集合中的类型,在这是一个菜单实体. public List<SysMenu> selfMenuSort(List<SysMenu> list) { fo ...
- sql server 导出表结构
今天准备整理下手里面几个数据库,形成一个表结构文档,方便以后维护使用. 网上找到一个脚本还不错,小小的修改就满足了我的要求,执行完SQL脚本. 在结果就能看到数据库所有表的结构,这个时候只要全选,然后 ...
- Android Studio新建了一个项目看不到手机界面的效果
我今天新建了一个项目,但是在这里却看不到手机的界面效果,如下图:
- Excel去重
在excel2007中,数据——>数据工具——>删除重复项也可使用高级筛选:数据——>排序和筛选中的高级——>弹出高级筛选对话框,设置列表区域和条件区域,并勾选“选择不重复记录 ...
- osgearth 配置mapNode TerrainOptions
设置瓦片PagedLOD节点最小可视距离因子,默认是6.0 minTileRangeFactor() Map *map = new Map();WWOptions wwImgGlobe;map-> ...
- 使用vsphere client 克隆虚拟机
免费的VMWare ESXi5.0非常强大,于是在vSphere5.0平台中ESXi取代了ESX.,使用ESXi经常会遇到这样的问题,我需要建立多个虚拟机,都是windows2003操作系统,难道必须 ...
- Eclipse主题更改
1. 直接安装color theme eclipse:Help->Install New Software->Work with:Update Site -http://eclipse-c ...
- Codeforces Round #371 (Div. 2)(set\unique)
B. Filya and Homework time limit per test 1 second memory limit per test 256 megabytes input standar ...
- 谈谈我的编程之路---WAMP(四)
WAMP的一些配置与使用心得(windows)W-windows,说到windows,其实大家都最熟悉不过了,GUI(graphic user interface)图形界面就没有什么可说的了,基本会用 ...