微信服务器后台-收发消息

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()

猜你喜欢

转载自blog.csdn.net/GroundWalker/article/details/89156388