想必大家都加过很多微信公众号,有发文章的,有在里面开微店的,或者是什么组织或公司的官方微信公众号.那么这些种类繁多的公众号都是怎么做到的呢.今天给大家带来一点干货——用 python 开发微信公众号.
首先我们要登陆微信的 微信公共平台, 这个平台便是微信提供给个人或者组织创建公众号的平台.
![](http://i0.hdslb.com/bfs/article/34de4aee30bf4bfb0f06ffd39879419afaf35191.png)
进入到微信公众平台后,我们先看到左侧有一排功能菜单
![](http://i0.hdslb.com/bfs/article/123119fb2f300e3851a8b906b2a921698bf63849.png)
这些功能便是微信自身提供给开发者的一些功能,如果不是特别的 企业 或者 商户 ,对于个人开发者而言,这些功能已经足够了.但若还想使用微信公众号更多的功能的话,便需要与微信的开发接口对接.
微信公众平台 左侧的最下方我们会发现一个开发菜单,这便是微信提供给开发者的 接口 .
![](http://i0.hdslb.com/bfs/article/15d072f27c62356c033d6543bfc6c97ab4db4638.png)
我们进入基本配置, 找到服务器配置 .这个服务器就是准备与微信对接对服务器.关于服务器,我建议大家可以去购买 腾讯云 (PS:不是打广告啊,主要是学生有优惠,10元/月).服务器对接后,微信服务器便会根据对接的 URL 地址,将客户的各种请求发送到你的服务器上,然后你的服务器再处理这些请求,再发送回去.
所以我们现在便开始服务器的对接工作.配置的面板大概就是这样
![](http://i0.hdslb.com/bfs/article/1a8a85b41c4ddcd4f2822350f27adde9a21e3756.jpg)
下面我一一介绍.
URL :这个就是微信服务器访问的地址.以后所有的消息都会发送到这个地址上去.如果你没有域名的话可以填写服务器的IP,详细信息我将在后面说明.
TOKEN
:这是一个凭着,通过这个凭证,微信便可以确定这是从你的服务器发送过来的消息.
EncodingAESKey
:这是随机生成的一串密钥,直接点击随机生成即可.
介绍完这些,我们现在来看微信给我们提供的
开发者文档
.
这是微信开发者文档的位置,位于 开发者工具 下面
![](http://i0.hdslb.com/bfs/article/66063c17b913bfbac8ed1aa457502d40d4bcd117.png)
进入开发者文档,我们看到左侧有一排菜单,点击进入开始开发一栏,找到接入指南,这里是微信提供给我们的接入方法.第一步在前面我已经和大家讲了,就是配置你的接口服务器的一些信息.到了第二步,也就是当你点击了第一步最下面的提交之后,微信服务器会立刻向你指定的 URL 发送一个请求,这个请求里面包含了这些东西.
![](http://i0.hdslb.com/bfs/article/fd69ead969a3a8aca8196c9fd6e89bcb8dac2a60.png)
signature :这是微信发给我们的微信加密签名,后面我们自己也会形成这样一个签名,然后再和微信的进行比对,如果比对成功,那么微信就会认可你填写的 URL 地址.当然你也可以直接把微信发过来的 signature 直接返回给微信,但是这样的话验证就没有了意义.那么我们怎么形成这样一个签名呢,微信已经告诉了我们方法.
![](http://i0.hdslb.com/bfs/article/dfe70f32e050da3cee3c846d020af8c92c0d50a1.png)
大概流程就是,先取得微信发过来的 timestamp , nonce ,结合你自己写的token,然后将这三个参数加入到一个列表或者是数组里面,再进行升序排序(就是首字母abc的排序),排完后将它们组成一个字符串,然后用一个 sha1 加密的方法,也就是 哈希值加密 ,最后便可以得到我们的 signature 加密签名了.说了这么多,我们看看具体到 python 里面是怎么实现的吧.
这里我们将运用 torando 网络框架,不知道也没关系,只要跟着代码来写就完了.
这就是验证的全部代码,如果不理解代码的意思的话,可以将代码复制粘贴过去.
![](http://i0.hdslb.com/bfs/article/c3addcadd95437503bdd309d38a8fb2b8250fe44.jpg)
写完代码后,我们就要将我们的代码部署到我们的服务器上去了.再次提醒,没有服务器的小伙伴去购买腾讯云啊!!!连接到服务器的方法有很多种,你可以直接通过腾讯云的终端登陆,也可以用windows自带的 ssh工具 登陆.这里我用的是 ssh登陆 .
![](http://i0.hdslb.com/bfs/article/1f70bcd948037de7b566abfc84ca22762e9a79b2.png)
这里便是登陆成功的画面.那我们怎么把代码传送到服务器上去呢?你可以使用
![](http://i0.hdslb.com/bfs/article/f85d67e627740b4880349c431a61c6755af9257f.png)
xftp 6 这个可视化软件,操作也十分简单.但为了简单,我还是用windows自带的 scp命令 来传输.首先我们打开DOS窗口,然后进入桌面
![](http://i0.hdslb.com/bfs/article/3955d7e043a3d10524c7ca99860da9d5f14c91da.png)
进入桌面后,确保你的python代码在桌面上,然后使用 scp命令
![](http://i0.hdslb.com/bfs/article/e39e5df99c256f433e34c172353ddaec220a2101.png)
这样我们便传输成功了,我们可以进入服务器看一下
![](http://i0.hdslb.com/bfs/article/0f41a919bc74f9f05d00a0378b76e5824438f7ed.png)
你会发现weixin.py已经在/usr目录下了,这是我们不能直接运行我们的代码,因为服务器上还没有安装 python 和 tornado框架 ,安装python的方法这里便不再赘述了,读者可以自行百度.安装好python后直接用pip命令安装tornado框架,输入: pip install tornado 即可.
完成这些以后,便可以运行你的python代码了,输入python weixin.py即可.运行代码后,tornado框架便会自动帮你监听 8080端口 的访问,为什么是 8080端口 ,这是因为我们在代码里面绑定的是 8080端口. 此时,我们再回到之前的界面
![](http://i0.hdslb.com/bfs/article/1a8a85b41c4ddcd4f2822350f27adde9a21e3756.jpg)
这里的URL注意一下,如果你没有域名,那么直接写ip地址即可,例如你的ip是100.0.0.1那么你就要这样写: 100.0.0.1:8080/wx 这样写的原因是这样,8080是因为你的代码绑定了8080端口,所以你自然也必须访问这个端口,而/wx则表示你域名或是ip底下的一 个子页,我之所以没有用主页是因为我的主页放了我的网站.然后我们点击提交,就可以成功了
![](http://i0.hdslb.com/bfs/article/4c870b5bac379e6ad2323558202cf237b931b9bc.png)
这些东西只是帮助你完成了与微信的对接,读者们可以自己读一下微信的开发文档,里面会详细的说明各个接口的用法,如果有机会的话,我还会继续介绍微信公众号的开发,好了,本次教程就到这里,感谢你的观看,如果喜欢就分享给你的好友吧.