Flask在新浪SAE部署服务 写微信公众平台回复的功能

来源:互联网 发布:淘宝店铺导航设置 编辑:程序博客网 时间:2024/06/06 03:06

书接上文。


myapp.py代码:

# encoding=utf-8 注释可用中文from flask import Flask, request, make_responseimport hashlibimport xml.etree.ElementTree as ETimport timeapp = Flask(__name__)app.debug = True@app.route('/')def hello_world():    return 'Hello World!'@app.route('/weixin', methods=['GET', 'POST'])def check():    if request.method == 'GET':     #如果是get方法--从服务器请求数据        token = r'cdedunews'  # 这里的cdedunews就是微信里的token        query = request.args        #请求链接中的参数        signature = query.get('signature', '')        echostr = query.get('echostr', '')        timestamp = query.get('timestamp', '')        nonce = query.get('nonce', '')        s = [timestamp, nonce, token]        s.sort()        s = ''.join(s)        if (hashlib.sha1(s).hexdigest()==signature):            return make_response(echostr)        else:            return "Access denied."    else:                              #如果是post方法--向服务器提交数据        xml_recv = ET.fromstring(request.data)  #获取用户发送的原始数据        ToUserName = xml_recv.find("ToUserName").text   #获取之前发送的 目标用户(公众号)        FromUserName = xml_recv.find("FromUserName").text #获取之前的 消息来源用户        Content = xml_recv.find("Content").text     #获取之前 向服务器发送的消息                                                #构造xml格式,回复内容        reply = """<xml>                  <ToUserName> <![CDATA[%s]]></ToUserName>                  <FromUserName><![CDATA[%s]]></FromUserName>                  <CreateTime>%s</CreateTime>                  <MsgType><![CDATA[text]]></MsgType>                  <Content><![CDATA[%s]]></Content>                  </xml>"""        response = make_response(reply % (FromUserName, ToUserName, str(int(time.time())), Content))        response.content_type = 'application/xml'        return response                 #返回这个xml消息if __name__ == '__main__':    app.run()


以上代码,在微信公众号已实现将原内容原封不动回复。
之前遇到的,该公众号暂时无法什么什么,是因为<XML>这种格式的语言,中间不能加空格,否则服务器认,微信这边返回不认。

调试,在微信公众号里面--开发--运维中心--日志查询--公众号被动回复里面,类型选择文本,确实可以看到之前的测试文本回复。

在线调试器:http://debug.fangbei.org/ 
0 0
原创粉丝点击