微信點(diǎn)餐平臺(tái)開發(fā) (一)
接下來我們將一步一步學(xué)習(xí)Flask+微信公眾平臺(tái)+新浪SAE平臺(tái)開發(fā)一個(gè)點(diǎn)餐平臺(tái)。
功能介紹
此點(diǎn)餐平臺(tái)有以下功能:
1、預(yù)約管理
2、菜單管理
3、線路導(dǎo)航
微信平臺(tái)接口
主要用到微信公眾平臺(tái)的以下接口:
1、信息接口,用來輸出用戶服務(wù)信息
2、地理位置信息服務(wù)
3、自定義菜單
4、事件推送
功能實(shí)現(xiàn)
首先在微信的公眾平臺(tái)與新浪SAE平臺(tái)上注冊(cè)賬戶。
此處不作詳細(xì)介紹
在SAE上搭建Python應(yīng)用
在新浪云中選擇云應(yīng)用SAE,創(chuàng)建新應(yīng)用。為了方便開發(fā)調(diào)試,我們需要安裝SAE本地開發(fā)環(huán)境。
1、安裝
直接使用pip或者easy_install安裝sae-python-dev即可
2、基本使用
進(jìn)入應(yīng)用的本地開發(fā)目錄,也就是index.wsgi和config.yaml所在的目錄。運(yùn)行dev_server.py
命令啟動(dòng)測(cè)試server
3、使用MySQL服務(wù)
首先配置好MySQL本地開發(fā)server。然后使用-mysql參數(shù)運(yùn)行dev_server.py
dev_server.py --mysql=user:password@host:port
配置SAE與微信公眾平臺(tái)互通
公眾號(hào)消息服務(wù)器網(wǎng)址接入驗(yàn)證,在開發(fā)目錄下新建myapp.py
from flask import Flask, request
# 公眾號(hào)消息服務(wù)器網(wǎng)址接入驗(yàn)證
# 需要在公眾帳號(hào)管理臺(tái)手動(dòng)提交, 驗(yàn)證后方可接收微信服務(wù)器的消息推送
@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'
# 接入和消息推送都需要做校驗(yàn)
def verification(request):
signature = request.args.get('signature')
timestamp = request.args.get('timestamp')
nonce = request.args.get('nonce')
token = 'xxxxxx' #注意要與微信公眾帳號(hào)平臺(tái)上填寫一致
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云,
微信接口配置
登錄公眾平臺(tái),點(diǎn)擊高級(jí)功能。將會(huì)看到需要提供一個(gè)接入信息:
接口配置信息:URL為我們與微信交互的地址,Token相當(dāng)于我們和微信之間約定的密碼。
輸入U(xiǎn)RL,Token點(diǎn)擊提交,驗(yàn)證通過后方可接收微信服務(wù)器的消息推送。
各位如需要SAE云,可以使用我的邀請(qǐng)鏈接申請(qǐng)。各得100云豆,謝謝!
注冊(cè)地址:http://t.cn/R4jxHGe