这个是我的代码
# -*- coding:utf-8 -*-
from flask import Flask,request
from time import time
import xml.etree.ElementTree as et
import hashlib
app = Flask(__name__)
app.debug = True
text_str = '''<xml>
<ToUserName>![CDATA[%s]]</ToUserName>
<FromUserName>![CDATA[%s]]</FromUserName>
<CreateTime>%s</CreateTime>
<MsgType>![CDATA[text]]</MsgType>
<Content>![CDATA[%s]]</Content>
</xml>'''
def reply_muban(type):
if type == 'text':
return text_str
@app.route('/',methods=['GET','POST'])
def wechat():
if request.method == 'GET':
token = '********'
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.args
xml_rec = et.fromstring(xmldata)
ToUserName = xml_rec.find('ToUserName').text
fromUser = xml_rec.find('FromUserName').text
MsgType = xml_rec.find('MsgType').text
Content = xml_rec.find('Content').text
MsgId = xml_rec.find('MsgId').text
return reply_muban(MsgType) % (fromUser, ToUserName, int(time()), Content)
if __name__ == '__main__':
app.run()
token也验证成功了。。
我觉得应该能够返回给用户同样的消息了呀。。。
为什么没有成功呢,微信提示提供的服务出现故障。。。
求帮忙解决....
T T
说实话,我也做了这样的一个测试,也是显示“服务器出现故障”!
我发现一个奇怪的现象,只要我把服务器放在防火墙内,就出现这个问题。不知道为什么?