微信点餐平台开发 (一)
接下来我们将一步一步学习Flask+微信公众平台+新浪SAE平台开发一个点餐平台。
功能介绍
此点餐平台有以下功能:
1、预约管理
2、菜单管理
3、线路导航
微信平台接口
主要用到微信公众平台的以下接口:
1、信息接口,用来输出用户服务信息
2、地理位置信息服务
3、自定义菜单
4、事件推送
功能实现
首先在微信的公众平台与新浪SAE平台上注册账户。
此处不作详细介绍
在SAE上搭建Python应用
在新浪云中选择云应用SAE,创建新应用。为了方便开发调试,我们需要安装SAE本地开发环境。
1、安装
直接使用pip或者easy_install安装sae-python-dev即可
2、基本使用
进入应用的本地开发目录,也就是index.wsgi和config.yaml所在的目录。运行dev_server.py
命令启动测试server
3、使用MySQL服务
首先配置好MySQL本地开发server。然后使用-mysql参数运行dev_server.py
dev_server.py --mysql=user:password@host:port
配置SAE与微信公众平台互通
公众号消息服务器网址接入验证,在开发目录下新建myapp.py
from flask import Flask, request
# 公众号消息服务器网址接入验证
# 需要在公众帐号管理台手动提交, 验证后方可接收微信服务器的消息推送
@app.route('/weixin', methods=['GET'])
def weixin_access_verify():
echostr = request.args.get('echostr')
if verification(request) and echostr is not None:
return echostr
return 'access verification fail'
# 接入和消息推送都需要做校验
def verification(request):
signature = request.args.get('signature')
timestamp = request.args.get('timestamp')
nonce = request.args.get('nonce')
token = 'xxxxxx' #注意要与微信公众帐号平台上填写一致
tmplist = [token, timestamp, nonce]
tmplist.sort()
tmpstr = ''.join(tmplist)
hashstr = hashlib.sha1(tmpstr).hexdigest()
if hashstr == signature:
return True
return False
if __name__ == '__main__':
app.run()
上传SAE云,
微信接口配置
登录公众平台,点击高级功能。将会看到需要提供一个接入信息:
接口配置信息:URL为我们与微信交互的地址,Token相当于我们和微信之间约定的密码。
输入URL,Token点击提交,验证通过后方可接收微信服务器的消息推送。
各位如需要SAE云,可以使用我的邀请链接申请。各得100云豆,谢谢!
注册地址:http://t.cn/R4jxHGe