C3 微信公众号开发 处理订阅事件 python+flask+sae

将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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容