#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
# @Time : 2020-06-17 14:50
# @Author : AcmeMax
# @File : wx_auto_response.py
# @Software: PyCharm
from flask import request, make_response
from . import api
from app import util
import xml.etree.cElementTree as ET
import time, hashlib
@api.route('/wx', methods=['GET', 'POST'])
def auto_response():
if request.method == 'GET':
token = 'weixin'
query = request.args
signature = query.get('signature', '')
timestamp = query.get('timestamp', '')
nonce = query.get('nonce', '')
echostr = query.get('echostr', '')
s = [timestamp, nonce, token]
s.sort()
s = ''.join(s)
if hashlib.sha1(s).hexdigest() == signature:
return make_response(echostr)
else: # 即如果为POST请求执行下面的代码
print(1)
xmlData = ET.fromstring(request.stream.read())
msg_type = xmlData.find('MsgType').text
if msg_type == 'text':
if xmlData.find('Content').text == '2':
ToUserName = xmlData.find('ToUserName').text
FromUserName = xmlData.find('FromUserName').text
# Content = xmlData.find('Content').text
Content = '假装有标题'
Description = '测试测试测试'
PicUrl = 'https://goss3.cfp.cn/creative/vcg/800/new/VCG41N902117202.jpg?x-oss-process=image/format,jpg/interlace,1'
url = 'https://xxxxx.cn/'
reply = '''
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
</Articles>
</xml>
'''
response = make_response(reply % (FromUserName, ToUserName, str(int(time.time())), Content, Description, PicUrl, url))
response.content_type = 'application/xml'
return response
else:
ToUserName = xmlData.find('ToUserName').text
FromUserName = xmlData.find('FromUserName').text
# Content = xmlData.find('Content').text
Content = '<a src="http://www.baidu.com">这是在测试</a>'
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
效果: