app.py
# -*- coding:utf-8 -*-
from flask import Flask,request
import time
import xml.etree.ElementTree as et
import hashlib
app = Flask(__name__)
@app.route('/wx/',methods=['GET','POST'])
def wechat():
if request.method == 'GET':
token = 'groundwalker'
data = request.args
signature = data.get('signature','')
timestamp = data.get('timestamp','')
nonce = data.get('nonce','')
echostr = data.get('echostr','')
list = [token, timestamp, nonce]
list.sort()
s = list[0] + list[1] + list[2]
hascode = hashlib.sha1(s.encode('utf-8')).hexdigest()
if hascode == signature:
return echostr
else:
return ""
if request.method == 'POST':
xmldata = request.data
xml_rec = et.fromstring(xmldata)
ToUserName = xml_rec.find('ToUserName').text
FromUserName = xml_rec.find('FromUserName').text
MsgType = xml_rec.find('MsgType').text
Content = xml_rec.find('Content').text
MsgId = xml_rec.find('MsgId').text
# 收到什么就返回什么
def reply(xmldata):
xml_rec = et.fromstring(xmldata)
my_id = xml.src.find('ToUserName').text
fans_id = xml.src.find('FromUserName').text
create_time = time.time()
msg_type = xml.src.find('MsgType').text
content = xml.src.find('Content').text
message = '''<xml><ToUserName><![CDATA[%s]]></ToUserName>/n<FromUserName><![CDATA[%s]]></FromUserName>/n<CreateTime>%s</CreateTime>/n<MsgType><![CDATA[%s]]></MsgType>/n<Content><![CDATA[%s]]></Content>/n</xml>'''
return str.encode(message)
return reply(xmldata)
if __name__ == '__main__':
app.run()