将C2中新增的语句替换为:
else :
xml_recv = ET.fromstring(request.data)
msgType = xml_recv.find("MsgType").text
if msgType == "event" :
return replyEvent(xml_recv)
if msgType == "text" :
return replyWhatItGet( xml_recv )
#回复订阅事件
def replyEvent(xml_recv):
return replyFormat(xml_recv, "大声说我第几帅!")
#获取用户发送的原始数据并原样返回
def replyWhatItGet(xml_recv):
return replyFormat(xml_recv, xml_recv.find("Content").text)
#消息回复模板
def replyFormat(xml_recv, Content):
ToUserName = xml_recv.find("ToUserName").text #获取之前发送的 目标用户(公众号)
FromUserName = xml_recv.find("FromUserName").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消息
mainapp.py概览
处理订阅事件.png
效果如下
效果.jpg
网友评论