小编给大家分享一下如何使用python搭建微信公众平台,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
<>强如何利用python搭建微信公众平台强>
使用的工具,python新浪SAE平台,微信的公众平台
你需要先在微信的公众平台与新浪SAE平台上各种注册,微信平台注册的时候需要你拍张手持身份证的照片,还有几天的审核期
微信公众平台:http://mp.weixin.qq.com
新浪SAE: http://sae.sina.com.cn/
等待微信公众审核通过后,登录公众平台后,点击高级功能。将会看到需要提供一个接入信息:
<强>微信接口配置强>
那么我们需要一个网址作为接口(这时就需要SAE上搭建python的一个应用),令牌呢,就是相当于我们和微信之间约定的“密码”,这里可以随便填写英文或者数字,但实测输入纯数字有时会有问题,所以还是字符串比较靠谱。
<强>第一步,强> <强>在SAE上搭建python的应用,在下图的应用里选择python应用。强>
填好二级域名和应用名称等,选择好语言。这里我们使用python开发选择网络应用。创建好应用之后,在代码管理中创建一个新的版本。而后我们可以选择编辑代码。能够实现在线编辑,根本用不着配置本地环境,SVN等等。当然像这种轻量级的应用在线编辑器就可以了,SVN的话还不如在线编辑好用
<强>第二步,强> <强>编写index.wsgi 强>
因为我们使用的是web.py框架,因为其良好的xml解析。
首先编写配置。yaml
名称:yangyanxing 版本:1 , 库: 名称:安康;webpy ,版本:“0.36”; , 安康;名称:lxml ,版本:“2.3.4" , …
注意严格的缩进,差一个空格你就废了!而且调试的时候很不好发现问题…
接着我们继续编写索引。wsgi
#,编码:utf - 8 import 操作系统 , import sae import 网络 , 得到weixinInterface import  WeixinInterface , urls =, ( & # 39;/weixin& # 39; & # 39; WeixinInterface& # 39; ) , 时间=app_root os.path.dirname (__file__) 时间=templates_root os.path.join (app_root, & # 39;模板# 39;) 时间=render web.template.render (templates_root) , 时间=app web.application (url,全局变量()).wsgifunc (),, application =, sae.create_wsgi_app (app)
简单解释一下,
<强>从weixinInterface进口weixinInterface 强>
这里我们需要再创建一个weixinInterface的py文件,你也可以将这个类写在index.wsgi文件中,只是这样看起来会乱乱的
新建一个weixinInterface。py文件,注意大小写,写入以下代码
#, - *安康;编码:utf-8 - * - import hashlib import 网络 import lxml import 时间 import 操作系统 import urllib2 json 得到lxml import  etree , class WeixinInterface: , 自我,def __init__ (): 时间=self.app_root 才能;os.path.dirname (__file__) self.templates_root 才能=,os.path.join (self.app_root, & # 39;模板# 39;) 时间=self.render 才能;web.template.render (self.templates_root) , ,def 使(自己): #才能获取输入参数 时间=data 才能;web.input () 签名才能=data.signature 时间戳才能=data.timestamp 现时标志才能=data.nonce echostr=data.echostr才能 #才能自己的令牌 令牌才能=皔angyanxing", #这里改写你在微信公众平台里输入的令牌 #字才能典序排序 列表才能=(令牌,时间戳,现时标志) list . sort()就,, sha1才能=hashlib.sha1 () 地图才能(sha1.update列表) hashcode才能=sha1.hexdigest () # sha1才能加密算法,, , #才能如果是来自微信的请求,则回复echostr if 才能;hashcode ==,签名: ,,return echostr
这里定义了一个得到方法,是根据微信公众平台的要求,进行的令牌验证,因为这里我们定义了templates_root为根目录下的模板,所以还要在根目录下创建一个目录模板的目录