一.异常现象 今天客户迁到正式环境,在做企业微信 接收消息服务器配置  时,出现如下异常: java.lang.OutOfMemoryError: Java heap space 二.异常原因 JAVA的堆栈设置太小 三.解决方法 两种方法: 1.设置环境变量 解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh set JAVA_OPTS= -Xms32m -Xmx512m 可以根据自己机器的内存进行更改. 2.java -Xms32m -Xmx80…
一.异常信息 方法:POST@ echostr是否存在 :false java.lang.IllegalArgumentException: 20 > -367029533 at java.util.Arrays.copyOfRange(Arrays.java:3519) at com.qq.weixin.mp.aes.WXBizMsgCrypt.decrypt(WXBizMsgCrypt.java:181) at com.qq.weixin.mp.aes.WXBizMsgCrypt.Decry…
原因: 网络原因导致 dns解析失败. 解决方案: 方案一 : 1.查看你的服务器能否ping通外网,不过不行说明你的网络出了问题.     (我的情况是客户的应用服务器只能内网访问,所以是网络出问题了) 2.在确保可以ping通外网的情况下,分析你的服务器是不是不支持域名解析,也就是说你的服务器只能ping IP地址, 不能ping www.baidu.com  提示无法解析,那你就需要给服务器设置域名解析功能,方法:vi /etc/resolv.conf  在nameserver最前面一行加…
一.本节要点 1.临时素材有效期 media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效) 2.上传文件时的http请求里都有啥 具体原理可参看: 为什么上传文件的表单需要设置enctype="multipart/form-data" (http://blog.csdn.net/mazhibinit/article/details/49667511) 3.上传本地临时素材到微信服务器的流程 (1)建立与微信服务器的网络连接 (2)从连接中获取输出流(写入微信…
一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接收到消息后,再对消息做出相应的回复消息. (2)消息是否加密:在发送消息的流程中,对封装好的回复消息(json字符串)是不进行AES加密的. 而在被动回复消息的流程中,第三方服务器接收消息时,需要先解密微信发过来的消息,在最后发送回复消息前,需要先加密(AES)回复消息. (3)数据交换的格式不同:…
一.本节要点 1.临时素材有效期 media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效) 2.上传文件时的http请求里都有啥 具体原理可参看: 为什么上传文件的表单需要设置enctype="multipart/form-data" (http://blog.csdn.net/mazhibinit/article/details/49667511) 3.上传本地临时素材到微信服务器的流程 (1)建立与微信服务器的网络连接 (2)从连接中获取输出流(写入微信…
一.本节要点 1.消息的加解密 微信加解密包 下载地址:http://qydev.weixin.qq.com/java.zip      ,此包中封装好了AES加解密方法,直接调用方法即可. 其中,解密方法为: //2.获取消息明文:对加密的请求消息进行解密获得明文 WXBizMsgCrypt wxcpt=new WXBizMsgCrypt(WeiXinParamesUtil.token,WeiXinParamesUtil.encodingAESKey,WeiXinParamesUtil.cor…
源码请见: Java企业微信开发_00_源码及资源汇总贴 一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接收到消息后,再对消息做出相应的回复消息. (2)消息是否加密:在发送消息的流程中,对封装好的回复消息(json字符串)是不进行AES加密的. 而在被动回复消息的流程中,第三方服务器接收消息时,需要先解密微信发过来的消息,在最后发送回复消息前,…
一.本节要点 1.获取通讯录密钥 获取方式: 登录企业微信—>管理工具—>通讯录同步助手—>开启“API接口同步”  ; 开启后,即可看到通讯录密钥,也可设置通讯录API的权限:读取或者编辑通讯录. 获取通讯录密钥的目的: 通过企业ID(CorpId)和 通讯录密钥可以获取通讯录相关接口的使用凭证(AccessToken).有了AccessToken,就可以使用通讯录相关接口了. 凭证的获取方式有两种(此处暂时存疑,以待勘误): 通讯录AccessToken:CorpId+通讯录密钥 其…
注: 源码已上传github: https://github.com/shirayner/WeiXin_QiYe_Demo 一.本节要点 1.1 授权回调域(可信域名) 在开始使用网页授权之前,需要先设置一下授权回调域.这里瞬间想到之前做JSSDK的时候,也设置过一个域名.二者本质上都是设置可信域名. 当用户授权完毕之后,请求将重定向到此域名(或者子域名)下的执行者(jsp页面或者servlet等).如何设置授权回调域,请见第二节. 1.2 获取Code https://open.weixin.…