开发者社区> suboysugar> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

**微信接入探秘(一)——从零认识微信接口(主动接口和被动接口)

简介: 本文出处:http://blog.csdn.net/chaijunkun/article/details/53385088,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文 写在前面 回想起来今年还没有在CSDN上发过文章,草稿箱里积攒了很多话题,可由于时间关系最终也没发出来。
+关注继续查看

本文出处:http://blog.csdn.net/chaijunkun/article/details/53385088,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文

写在前面

回想起来今年还没有在CSDN上发过文章,草稿箱里积攒了很多话题,可由于时间关系最终也没发出来。不能再拖了,打算写个系列专题,聊聊微信接入。

随着微信用户量的不断增加,越来越多的企业也将自己的服务加入到了微信当中。微信本身提供的公众号、服务号的基础功能难以满足日趋增长的需求,于是微信为我们打开了一整套自定义功能的API,利用这些API,我们可以弥补原有平台的不足,创造出更加方便的功能。本篇先对微信接口进行简单的介绍。

腾讯虽然官方也提供了很多语言版本的开发包(参阅:http://qydev.weixin.qq.com/wiki/index.php?title=加解密库下载与返回码),包括C++、Python、php、Java和C#,但是笔者发现作为以PHP为主导技术的公司,Java版本的SDK无论是从封装性能、可维护性还是语法结构上都不够严谨。也正是因此才有了做一套开源API适配库的想法,目的就是为了让微信接入更简单、更容易维护(项目地址为:https://code.csdn.net/chaijunkun/wechat-common

任何新技术的掌握都是从文档开始的,如果你刚刚接触微信接入开发,不妨先看看官方的文档:https://mp.weixin.qq.com/wiki(这个地址后来发现有点问题,可能是启用了refer屏蔽,从博客跳转过去会报错,随便点个报错页面的链接,粘贴地址后即可访问)

通过阅读文档,我们大概将微信接口分为两类:被动回调(集中在文档的消息管理部分)接口和主动调用接口。

被动回调接口

严格意义上来说,该接口的业务逻辑是由我们自定义的。当有相应的事件发生时,微信会按照之前配置好的公众平台参数主动请求你的接口。请求参数和请求体都是在文档中明确声明的,我们要做的就是对其进行适配。

该接口的作用类似于短信中心。当用户订阅了你的公众号之后可以向其主动发送信息,但消息不是直接到达了你的后台系统,而是通过微信的转发回调机制,将内容通过统一的格式发送给接入的后台系统。你是否还记得有些电视节目中参与互动,发特定的短信内容到一个服务号码上就能参与进去?道理是一样的。

若需要使用回调接口,需要在正式使用前对账号进行配置。方法为:登录微信公众号平台. 登录地址:https://mp.weixin.qq.com/,查看自己的公众号。

a.若使用正式公众号调试,请在左侧菜单中找到”开发”->”基本配置”->”开发者ID”和”服务器配置”中找到对应的配置项。

b.若使用公众号的测试账号调试,请在左侧菜单中找到”开发”->”开发者工具”->”公众平台测试帐号”->”进入”->扫描登录二维码->”测试号信息”和”接口配置信息”中找到对应的配置项。

一个通常的业务模式为下图所示

 

上述场景中,公众号处于被动模式,只有用户主动发送消息,才会触发微信回调公众号后台,并产生相应的应答。实际应用场景有:“回复XX给你看一张图”,“给我们的节目留言”等等。

关于该处的配置和调试方法将会在后续章节中详细介绍

主动调用接口

刚刚我们说过用户主动向公众号发送消息,那么有没有主动发消息给用户的场景呢?例如:告警系统,机房中哪台机器出现问题我们事先是不知道的,监测到异常时需要主动发消息通知用户。那么就涉及到了主动调用类接口了。这部分接口包罗万象,是微信接口的重点和难点。(还比如:微信电商系统中提交订单完成后,需要公众号主动给用户发消息提醒,表示下单成功)

微信官方针对主动调用的接口进行了一些列限制,例如公众号不能给未关注该号的用户发送消息(旨在保护用户不被恶意打扰),例如API访问令牌Token,每天的获取次数也根据公众号的类型做了不同的限制。

一个通常的业务模式为下图所示

 

具体实践,后续章节中也会对其进行介绍。

本节对微信接口进行了分类和原理的粗略解释,更多内容请关注我的博客,也欢迎针对该开源框架提出改进性建议。

 

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Hadoop运行环境搭建(开发重点三)、在hadoop102安装JDK、配置JDK环境变量、测试JDK是否安装成功
为什么只在hadoop102上安装JDK,因为在hadoop102中安装后将JDK拷贝到hadoop103和hadoop104中,同样后面安装Hadoop的时候也是这样的操作、解压JDK到/opt/module目录下、配置好后需要source一下,重新加载一下内容、在Linux系统下的opt目录中查看软件包是否导入成功、用Xftp传输工具将JDK导入到opt目录下面的software文件夹下面、系统启动的时候就会加载/etc/profile.d这里面的文件.........
13 0
「从零单排HBase 11」HBase二级索引解决方案
「从零单排HBase 11」HBase二级索引解决方案
37 0
Elixir 1.0 Release
 如期而至,9.9苹果产品发布会之后,紧接着在今天(教师节)我们终于等到了Elixir 1.0,苹果范儿的说法是:Now,Elixir 1.0 is here    注意:官网上的链接说明之类还没有更新过来,github上已经可以获取最新代码;    Elixir之前持续跟了一段时间,经历了一些比较大的代码重构,过程挺有意思的,只不过后来精力有限就逐渐放弃,默默等待1.
1189 0
微信视频直播方案的搭建
实现在微信中嵌入直播视频,可以分享到好友或朋友圈。 工具/原料 NTV Media Server G3软件 Adobe Flash Encoder OBS直播软件 方法/步骤 1 可以使用百度、阿里或腾讯云主机,基本配置:     CPU:2核心     内存:4GB  ...
1398 0
hbase源码系列(二)HTable 探秘
hbase的源码终于搞一个段落了,继上一篇讲了负载均衡之后,这一篇我们从client开始讲吧,从client到master再到region server,按照这个顺序来开展,读者们也可以对自己感兴趣的部分给我留言或者直接联系我。
1916 0
微软应用架构指南(第2版)出版
  购买链接:http://www.china-pub.com/197209    译者序   做.NET 或是微软平台的架构设计既简单又困难。说简单的理由是,微软提供的产品往往考虑全面,容易上手,并且文档丰富。
969 0
命名函数表达式探秘
英文原文:kangax.github.com/nfe/ 本想直接转载过来的,发现效果不太好。而且想起之前好像看过中文,感谢随之漫笔的翻译,它为前端开发作出了不少贡献,很感谢这样的译者。 中文原文: www.
636 0
+关注
suboysugar
目前为自由职业者,从事BA业务分析和互联网产品设计等工作,本人先后在中关村在线、中国工商银行和神州数码工作。拥有互联网,移动互联网,软件公司等开发经历。计算机本科毕业,8年互联网和软件行业经验。
710
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载