python开发微信公众号(微信接口接入)
极客红叶会-geekbrh
2019年10月27日 23:27

        想必大家都加过很多微信公众号,有发文章的,有在里面开微店的,或者是什么组织或公司的官方微信公众号.那么这些种类繁多的公众号都是怎么做到的呢.今天给大家带来一点干货——用python开发微信公众号.

        首先我们要登陆微信的微信公共平台,这个平台便是微信提供给个人或者组织创建公众号的平台.

微信公共平台

        进入到微信公众平台后,我们先看到左侧有一排功能菜单

这些功能便是微信自身提供给开发者的一些功能,如果不是特别的企业或者商户,对于个人开发者而言,这些功能已经足够了.但若还想使用微信公众号更多的功能的话,便需要与微信的开发接口对接.

        微信公众平台左侧的最下方我们会发现一个开发菜单,这便是微信提供给开发者的接口.

开发接口

我们进入基本配置,找到服务器配置.这个服务器就是准备与微信对接对服务器.关于服务器,我建议大家可以去购买腾讯云(PS:不是打广告啊,主要是学生有优惠,10元/月).服务器对接后,微信服务器便会根据对接的URL地址,将客户的各种请求发送到你的服务器上,然后你的服务器再处理这些请求,再发送回去.

        所以我们现在便开始服务器的对接工作.配置的面板大概就是这样

下面我一一介绍.

        URL:这个就是微信服务器访问的地址.以后所有的消息都会发送到这个地址上去.如果你没有域名的话可以填写服务器的IP,详细信息我将在后面说明.

        TOKEN:这是一个凭着,通过这个凭证,微信便可以确定这是从你的服务器发送过来的消息.

        EncodingAESKey:这是随机生成的一串密钥,直接点击随机生成即可.

        介绍完这些,我们现在来看微信给我们提供的开发者文档.

        这是微信开发者文档的位置,位于开发者工具下面

进入开发者文档,我们看到左侧有一排菜单,点击进入开始开发一栏,找到接入指南,这里是微信提供给我们的接入方法.第一步在前面我已经和大家讲了,就是配置你的接口服务器的一些信息.到了第二步,也就是当你点击了第一步最下面的提交之后,微信服务器会立刻向你指定的URL发送一个请求,这个请求里面包含了这些东西.

signature:这是微信发给我们的微信加密签名,后面我们自己也会形成这样一个签名,然后再和微信的进行比对,如果比对成功,那么微信就会认可你填写的URL地址.当然你也可以直接把微信发过来的signature直接返回给微信,但是这样的话验证就没有了意义.那么我们怎么形成这样一个签名呢,微信已经告诉了我们方法.

大概流程就是,先取得微信发过来的timestamp,nonce,结合你自己写的token,然后将这三个参数加入到一个列表或者是数组里面,再进行升序排序(就是首字母abc的排序),排完后将它们组成一个字符串,然后用一个sha1加密的方法,也就是哈希值加密,最后便可以得到我们的signature加密签名了.说了这么多,我们看看具体到python里面是怎么实现的吧.

        这里我们将运用torando网络框架,不知道也没关系,只要跟着代码来写就完了.

这就是验证的全部代码,如果不理解代码的意思的话,可以将代码复制粘贴过去.

        写完代码后,我们就要将我们的代码部署到我们的服务器上去了.再次提醒,没有服务器的小伙伴去购买腾讯云啊!!!连接到服务器的方法有很多种,你可以直接通过腾讯云的终端登陆,也可以用windows自带的ssh工具登陆.这里我用的是ssh登陆.

SSH登陆

这里便是登陆成功的画面.那我们怎么把代码传送到服务器上去呢?你可以使用

xftp 6这个可视化软件,操作也十分简单.但为了简单,我还是用windows自带的scp命令来传输.首先我们打开DOS窗口,然后进入桌面

进入桌面后,确保你的python代码在桌面上,然后使用scp命令

这样我们便传输成功了,我们可以进入服务器看一下

你会发现weixin.py已经在/usr目录下了,这是我们不能直接运行我们的代码,因为服务器上还没有安装python和tornado框架,安装python的方法这里便不再赘述了,读者可以自行百度.安装好python后直接用pip命令安装tornado框架,输入:pip install tornado即可.

        完成这些以后,便可以运行你的python代码了,输入python weixin.py即可.运行代码后,tornado框架便会自动帮你监听8080端口的访问,为什么是8080端口,这是因为我们在代码里面绑定的是8080端口.此时,我们再回到之前的界面

这里的URL注意一下,如果你没有域名,那么直接写ip地址即可,例如你的ip是100.0.0.1那么你就要这样写:100.0.0.1:8080/wx这样写的原因是这样,8080是因为你的代码绑定了8080端口,所以你自然也必须访问这个端口,而/wx则表示你域名或是ip底下的一个子页,我之所以没有用主页是因为我的主页放了我的网站.然后我们点击提交,就可以成功了

        这些东西只是帮助你完成了与微信的对接,读者们可以自己读一下微信的开发文档,里面会详细的说明各个接口的用法,如果有机会的话,我还会继续介绍微信公众号的开发,好了,本次教程就到这里,感谢你的观看,如果喜欢就分享给你的好友吧.