一.本节要点 1.消息的加解密 微信加解密包 下载地址:http://qydev.weixin.qq.com/java.zip      ,此包中封装好了AES加解密方法,直接调用方法即可. 其中,解密方法为: //2.获取消息明文:对加密的请求消息进行解密获得明文 WXBizMsgCrypt wxcpt=new WXBizMsgCrypt(WeiXinParamesUtil.token,WeiXinParamesUtil.encodingAESKey,WeiXinParamesUtil.cor…
一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接收到消息后,再对消息做出相应的回复消息. (2)消息是否加密:在发送消息的流程中,对封装好的回复消息(json字符串)是不进行AES加密的. 而在被动回复消息的流程中,第三方服务器接收消息时,需要先解密微信发过来的消息,在最后发送回复消息前,需要先加密(AES)回复消息. (3)数据交换的格式不同:…
一.本节要点 1.菜单相关实体类的封装 参考官方文档中的请求包的内容,对菜单相关实体类进行封装. 这里需要格外注意的是,企业微信中请求包的数据是Json字符串格式的,而不是xml格式.关于json序列化的问题请参考上一节   Java企业微信开发_03_通讯录同步 2.创建菜单的接口 public static String create_menu_url = "https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS…
一.本节要点 1.获取通讯录密钥 获取方式: 登录企业微信—>管理工具—>通讯录同步助手—>开启“API接口同步”  ; 开启后,即可看到通讯录密钥,也可设置通讯录API的权限:读取或者编辑通讯录. 获取通讯录密钥的目的: 通过企业ID(CorpId)和 通讯录密钥可以获取通讯录相关接口的使用凭证(AccessToken).有了AccessToken,就可以使用通讯录相关接口了. 凭证的获取方式有两种(此处暂时存疑,以待勘误): 通讯录AccessToken:CorpId+通讯录密钥 其…
一.本节要点 1.临时素材有效期 media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效) 2.上传文件时的http请求里都有啥 具体原理可参看: 为什么上传文件的表单需要设置enctype="multipart/form-data" (http://blog.csdn.net/mazhibinit/article/details/49667511) 3.上传本地临时素材到微信服务器的流程 (1)建立与微信服务器的网络连接 (2)从连接中获取输出流(写入微信…
一.本节要点 1.临时素材有效期 media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效) 2.上传文件时的http请求里都有啥 具体原理可参看: 为什么上传文件的表单需要设置enctype="multipart/form-data" (http://blog.csdn.net/mazhibinit/article/details/49667511) 3.上传本地临时素材到微信服务器的流程 (1)建立与微信服务器的网络连接 (2)从连接中获取输出流(写入微信…
一.本节要点 1.获取通讯录密钥 获取方式: 登录企业微信—>管理工具—>通讯录同步助手—>开启“API接口同步”  ; 开启后,即可看到通讯录密钥,也可设置通讯录API的权限:读取或者编辑通讯录. 获取通讯录密钥的目的: 通过企业ID(CorpId)和 通讯录密钥可以获取通讯录相关接口的使用凭证(AccessToken).有了AccessToken,就可以使用通讯录相关接口了. 凭证的获取方式有两种(此处暂时存疑,以待勘误): 通讯录AccessToken:CorpId+通讯录密钥 其…
源码请见: Java企业微信开发_00_源码及资源汇总贴 一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接收到消息后,再对消息做出相应的回复消息. (2)消息是否加密:在发送消息的流程中,对封装好的回复消息(json字符串)是不进行AES加密的. 而在被动回复消息的流程中,第三方服务器接收消息时,需要先解密微信发过来的消息,在最后发送回复消息前,…
一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:Java微信公众平台开发_01_本地服务器映射外网 2.一个企业微信账号: 去注册:(https://work.weixin.qq.com) 3.策略文件 见:Java企业微信开发_Exception_02_java.security.InvalidKeyException: Illegal key size 4.接入验证的 微信加解密包 此包封装了对 msg_signature对请求进行校验的相关操作,直接用就可以了 下载地址:…
注: 源码已上传github: https://github.com/shirayner/WeiXin_QiYe_Demo 一.本节要点 1.1 授权回调域(可信域名) 在开始使用网页授权之前,需要先设置一下授权回调域.这里瞬间想到之前做JSSDK的时候,也设置过一个域名.二者本质上都是设置可信域名. 当用户授权完毕之后,请求将重定向到此域名(或者子域名)下的执行者(jsp页面或者servlet等).如何设置授权回调域,请见第二节. 1.2 获取Code https://open.weixin.…
一.本节要点 1.获取临时素材接口 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 2.获取临时素材接口的返回结果 企业微信官方开发文档中说明的返回结果如下: 若你以为这就是返回结果,然后跟之前一样,先访问接口,从http连接的输入流中的获取回结果的文本内容,你会发现你接收到的结果是一堆乱码. 这是为何? 以图片为例,此处千…
一.本节要点 1.获取临时素材接口 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 2.获取临时素材接口的返回结果 企业微信官方开发文档中说明的返回结果如下: 若你以为这就是返回结果,然后跟之前一样,先访问接口,从http连接的输入流中的获取回结果的文本内容,你会发现你接收到的结果是一堆乱码. 这是为何? 以图片为例,此处千…
一.本节要点 1.1可信域名 所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),可在企业微信的管理后台“我的应用”里设置应用可信域名.这个域名必须要通过ICP备案,不然jssdk会配置失败 1.2JS-SDK使用权限签名算法 1.2.1 签名生成规则如下: (1)参与签名的字段包括: noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) . (2)对所有待签名参数按照字段名的ASCII…
一.异常现象 今天客户迁到正式环境,在做企业微信 接收消息服务器配置  时,出现如下异常: java.lang.OutOfMemoryError: Java heap space 二.异常原因 JAVA的堆栈设置太小 三.解决方法 两种方法: 1.设置环境变量 解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh set JAVA_OPTS= -Xms32m -Xmx512m 可以根据自己机器的内存进行更改. 2.java -Xms32m -Xmx80…
今天换了重新装了一个jdk,然后运行昨天还好好的企业微信工程,结果启动的时候就给我报了这么个错: java.security.InvalidKeyException: Illegal key size 异常解读: 不合法的密钥长度.原因是jdk安装时自带的JCE策略文件时受限的, 需要将其替换为 JCE无限制权限策略文件. 背景: 由于美国政策的原因,强加密技术是不允许出口给某些国家,所以sun只能在jdk里面实现一些加密,甚至加密强度比较弱,比如AES的密钥只允许128位,为了解锁限制只能下载…
一.企业微信后台 1.回调url 2.可信域名 3.菜单跳转按钮中的链接 4.PC端网页授权 二.代码内 1.企业微信的配置信息:WeiXinParamesUtil…
一.源码 此系列教程的源码我都放在了github上,欢迎fork以及关注. 传送门:https://github.com/shirayner/WeiXin_QiYe_Demo/tree/master 二.官方资料 1.官方文档 2.管理后台 四.学习资源 1.  Java-微信企业号开发教程(http://blog.csdn.net/column/details/weixindeveloper.html) 2. youz1976-微信公众号开发(http://blog.csdn.net/u014…
1.现象: 在企业微信后台填写可信域名后,提示:未验证域名归属,JS-SDK功能受限,如下图: 点击“申请域名校验”后, 注意:域名根目录 当时一直不清楚这个域名根目录在哪里,最后让我给试出来了 2.域名根目录 域名根目录:  tomcat安装目录 /  webapps  /  ROOT / 3.解决方案 将下载的文件放到域名根目录下,勾选“已上传域名归属校验文件”,点击确认即可. 4.注意事项 若不是默认端口,则在填写可信域名是要带上端口号.…
原因: 网络原因导致 dns解析失败. 解决方案: 方案一 : 1.查看你的服务器能否ping通外网,不过不行说明你的网络出了问题.     (我的情况是客户的应用服务器只能内网访问,所以是网络出问题了) 2.在确保可以ping通外网的情况下,分析你的服务器是不是不支持域名解析,也就是说你的服务器只能ping IP地址, 不能ping www.baidu.com  提示无法解析,那你就需要给服务器设置域名解析功能,方法:vi /etc/resolv.conf  在nameserver最前面一行加…
一.异常信息 方法: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…
微信企业号增加成员时,返回错误信息: jsonObject:{"errcode":60011,"errmsg":"no privilege to access/modify contact/party/agent "} 可能原因: 1.组装json数据时,有些字段的值是不能包含双引号的,比如department.所以就没有用JSONObject.fromObject方法了,直接用字符串按照格式自己拼装了.…
一.前言 二.方法 1.在线网站 百度搜索"域名查IP",可查到如下网站,输入域名即可查到所有IP: 站长工具 site.ip138.com tools.ipip.net 2.linux命令 dig qyapi.weixin.qq.com nslookup qyapi.weixin.qq.com ping qyapi.weixin.qq.com 三.参考资料 问个面试用的题目,你如何获取一个域名的所有 ip 2.如何查找域名对应IP地址?…
cordova plugin add org.apache.cordova.vibration cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications cordova plugin add cordova-plugin-websocket-server 手机端代码: var wsserver = cordova.plugins.wsserver; wsserver.start(1818, { …
技术交流,公众号:程序员小富 大家好,我是小富- 我有一个朋友- 做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能. 不过他还没想好用什么方式做,这里我帮他整理了一下几种方案,并简单做了实现. 案例下载,记得Star 哦 什么是消息推送(push) 推送的场景比较多,比如有人关注我的公众号,这时我就会收到一条推送消息,以此来吸引我点击打开应用. 消息推送(push)通常是指网站的运营工作等人员,通过某种工具对用户当前网页或移动设备APP进行的主动…
基于.NetCore2.1.服务类库采用.Net Standard2.0,兼容.net 4.6.1消息推送服务 https://www.cnblogs.com/ibeisha/p/weixinServer.html 关于微信公众号服务的中间件,基于.NetCore2.1.服务类库采用.Net Standard2.0,兼容.net 4.6.1. 整体思路是,设计一个中间件,提供微信消息推送服务.目前实现了,接收微信消息推送后,根据消息类型,对事件消息和被动接收消息分别进行了处理. 在中间件和服务之…
个人总结: 1.介绍了网页消息推送通知机制 全文地址:https://github.com/Troland/how-javascript-works 这是 JavaScript 工作原理的第九章. 现在让我们把注意力转移到网页推送通知:我们将会查看其构造,探索发送/接收通知背后的过程以及最后分享一下我们在 SessionStack 是如何计划利用这些功能来创建新的产品功能的. 推送通知这一功能在移动端已经非常普遍.不知为何,网页端的推送通知是千呼万唤始出来,即使大多数开发者强烈地要求实现这一功能…
什么是APP消息推送? 很多手机APP会不定时的给用户推送消息,例如一些新闻APP会给用户推送用户可能感兴趣的新闻,或者APP有更新了,会给用户推送是否选择更新的消息等等,这就是所谓的"消息推送". 更多APP消息推送的介绍可查阅该篇文章:十分钟带你了解APP消息推送(Push) 如下是我们日常生活中常见的一些APP消息推送示例: 强营销类: 直接把营销力度,营销模式以一种叫卖式方式展现出来,目的通过优惠,时效性勾起用户贪小便宜的心理,好奇心理,如下所示: 强关联性: 在信息爆炸的时代…
3 实现c#消息推送服务 c#实现消息推送必须引入M2Mqtt.dll,源码 a 连接apache apollo代理服务器的代码.需要引入using uPLibrary.Networking.M2Mqtt和 using uPLibrary.Networking.M2Mqtt.Messages,需要注意的是代码里的client.Connect里的admin和password是之前设置apache apollo时设置的用户名,密码,请自行修改.apollo实现c#与android消息推送(一) //…
netty-socketio整合springboot消息推送 1.netty-socketio消息推送 1)在项目中常常涉及到消息推送的情况,消息推送要求的实时性,使用传统的方式已经不能满足需求了: 2)使用netty-socketio做消息推送,实现步骤,加入jar包----->写启动,添加,通知,关闭工具类 -----> 设置依靠监听器启动 ----->页面引入js----->编写请求获取消息: 2.实现 1)pom依赖与js文件:socket.io.js (见文章末尾附件包中…
发布时间:2018-12-12   技术:springboot+maven   概述 该demo主要涉及微信模板消息推送功能, 详细 代码下载:http://www.demodashi.com/demo/14627.html 概述 微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添加分享到朋友圈,关注微信号等按钮. 一.前言 (1)适合人群 1,JAVA…