虽然在微信开发过程中,会有微信公众平台开发者文档中的《全局返回码》作为错误的参考对比;但是依旧的,会觉得有时候的问题莫名其妙。【注:本人使用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;}

View Code

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开发 --番外篇】错误解析相关推荐

  1. Java微信公众平台开发--番外篇,对GlobalConstants文件的补充

    转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...

  2. Java基础番外篇二(Java修饰符讲解)

    来了老弟? 哈哈 开始讲解 类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需 ...

  3. Java番外篇2——jdk8新特性

    Java番外篇2--jdk8新特性 1.Lambda 1.1.无参无返回值 public class Test {interface Print{void print();}public static ...

  4. Java番外篇1——正则表达式

    Java番外篇1--正则表达式 1.什么是正则表达式 正则表达式定义了字符串的模式 正则表达式可以用来搜索.编辑或处理文本 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别 2.正则表达式 ...

  5. 安卓开发学习日记第四天番外篇_用Kotlin炒冷饭——越炒越小_莫韵乐的欢乐笔记

    安卓开发学习日记第四天番外篇--用Kotlin炒冷饭--越炒越小 前情提要 安卓开发学习日记第一天_Android Studio3.6安装 安卓开发学习日记第二天_破坏陷阱卡之sync的坑 安卓开发学 ...

  6. Java番外篇4——BigInteger与BigDecimal

    Java番外篇4--BigInteger与BigDecimal 为了解决大数运算的问题 操作整型:BigInteger 操作小数:BigDecimal 1.BigInteger 方法声明 功能介绍 p ...

  7. Java番外篇3——线程池

    Java番外篇3--线程池 1.多线程产生的问题 多次创建并销毁线程.而创建并销毁线程的过程势必会消耗内存 2.线程池 降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗 提高系统响 ...

  8. Soul网关源码阅读番外篇(一) HTTP参数请求错误

    Soul网关源码阅读番外篇(一) HTTP参数请求错误 共同作者:石立 萧 * 简介     在Soul网关2.2.1版本源码阅读中,遇到了HTTP请求加上参数返回404的错误,此篇文章基于此进行探索 ...

  9. 番外篇——直流电机桥源码分析LED驱动例程开发

    [番外篇]直流电机桥源码分析&LED驱动例程开发 直流电机桥测试代码分析 直流电机桥驱动代码分析 仿写HBLED驱动程序 利用芯片手册修改设备树 利用原理图寻找引脚 仿写代码 仿写HBLED测 ...

最新文章

  1. Asp.net動態添加控件(转)
  2. 前端新手程序员不知道的 20个小技巧
  3. 浏览器记住密码的自动填充Input问题完美解决方案
  4. java学习(110):日期date类
  5. vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)
  6. Nodejs学习笔记(六)——Mysql模块
  7. vs2005中文RTM版的代码段管理器
  8. java 服务器调优_Java远程服务器调优
  9. Tera Term 工具的使用
  10. stm32L476RG,通过串口打印信息
  11. identifier标签语句
  12. 【Unity】Obi插件系列(七)—— Obi Emitters
  13. 微信小程序退出功能(退回到微信)
  14. 妈妈,我以后也要上南邮!
  15. 三个团队的站立会议旁观笔记
  16. 写法更自由的Table表格--BeeGridTable
  17. 用python语言绘制美丽图形
  18. 计算机错误651是什么故障,错误651是什么意思
  19. 基于安卓Android的企业员工管理系统设计与实现
  20. eclipse 快捷调整字体_eclipse设置字体、字符编码、快捷键

热门文章

  1. Debian+Pure-ftpd+MySQL+User manager for PureFTPd
  2. 巧解Android时区加载过慢的问题
  3. Oralce null
  4. Home Server诠释
  5. 温故知新MySQL--如何在MySQL表中删除重复行
  6. for语句联系 -小九九乘法表
  7. Webservices
  8. 百度启动高管退休计划,总裁张亚勤今年十月退休
  9. Lync和Exchange 2013集成PART5:UCS和HD头像
  10. Hadoop源代码分析(包mapreduce.lib.input)