【微信Java开发 --番外篇】错误解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 虽然在微信开发过程中,会有微信公众平台开发者文档中的《全局返回码》作为错误的参考对比;但是依旧的,会觉得有时候的问题莫名其妙。【注:本人使用weixin-java-tools进行开发】下面吧微信开发过程中碰到的各种问题做一个归类【注:错误总结会在开发过程中一一补充】 一.

虽然在微信开发过程中,会有微信公众平台开发者文档中的《全局返回码》作为错误的参考对比;但是依旧的,会觉得有时候的问题莫名其妙。【注:本人使用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地址,并没有添加到白名单中,导致按钮不能创建成功。

所以

可以在微信公众平台进入

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

 

目录
打赏
0
0
0
0
16
分享
相关文章
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
一天成为Java开发高手:用飞算JavaAI实现十倍提效
“一天成为Java开发高手”曾被视为天方夜谭,但飞算JavaAI的出现改变了这一局面。这款AI开发助手通过智能引导、需求分析、自动化逻辑处理和完整代码工程生成,大幅简化了Java开发流程。它不仅帮助新手快速上手,还让资深开发者提高效率,减少调试时间。现在,参与“飞算JavaAI炫技赛”,展示你的开发实力,赢取丰厚奖品!
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
2815 15
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
2天前
|
【Flutter 开发必备】AzListView 组件全解析,打造丝滑索引列表!
在 Flutter 开发中,AzListView 是实现字母索引分类列表的理想选择。它支持 A-Z 快速跳转、悬浮分组标题、自定义 UI 和高效性能,适用于通讯录、城市选择等场景。本文将详细解析 AzListView 的核心参数和实战示例,助你轻松实现流畅的索引列表。
17 7
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
1天前
|
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
14 5
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
177 9
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
45 12
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
269 12

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等