Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例

 更新时间:2017年08月21日 10:14:36   作者:偅唻姒後  
这篇文章主要介绍了Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息的方法,涉及Python微信企业号回调模式消息响应机制相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息。分享给大家供大家参考,具体如下:

说明:此代码用于接收手机微信端发送的消息

#-*- coding:utf-8 -*-
from flask import Flask,request
from WXBizMsgCrypt import WXBizMsgCrypt
import xml.etree.cElementTree as ET
import sys
app = Flask(__name__)
@app.route('/index',methods=['GET','POST'])
def index():
    sToken = 'Uxxxx'
    sEncodingAESKey = 'U2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    sCorpID = 'wx1xxxxxxxxxxxxx'
    wxcpt=WXBizMsgCrypt(sToken,sEncodingAESKey,sCorpID)
    #获取url验证时微信发送的相关参数
    sVerifyMsgSig=request.args.get('msg_signature')
    sVerifyTimeStamp=request.args.get('timestamp')
    sVerifyNonce=request.args.get('nonce')
    sVerifyEchoStr=request.args.get('echostr')
    #
    sReqMsgSig = sVerifyMsgSig
    sReqTimeStamp = sVerifyTimeStamp
    sReqNonce = sVerifyNonce
    #
    sResqMsgSig = sVerifyMsgSig
    sResqTimeStamp = sVerifyTimeStamp
    sResqNonce = sVerifyNonce
    #验证url
    if request.method == 'GET':
        ret,sEchoStr=wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp,sVerifyNonce,sVerifyEchoStr)
        print type(ret)
        print type(sEchoStr)
        if (ret != 0 ):
            print "ERR: VerifyURL ret:" + ret
            sys.exit(1)
        return sEchoStr
    #接收客户端消息
    if request.method == 'POST':
        #sReqMsgSig = request.form.get('msg_signature')
        #sReqTimeStamp = request.form.get('timestamp')
        #sReqNonce = request.form.get('nonce')
        #赋值url验证请求相同的参数,使用上面注释掉的request.form.get方式获取时,测试有问题
            sReqMsgSig = sVerifyMsgSig
            sReqTimeStamp = sVerifyTimeStamp
            sReqNonce = sVerifyNonce
        sReqData = request.data
        print sReqData
        ret,sMsg=wxcpt.DecryptMsg( sReqData, sReqMsgSig, sReqTimeStamp, sReqNonce)
        if (ret != 0):
            print "ERR: VerifyURL ret:"
            sys.exit(1)
        #解析发送的内容并打印
        xml_tree = ET.fromstring(sMsg)
        content = xml_tree.find("Content").text
        print content
    #被动响应消息,将微信端发送的消息返回给微信端
    sRespData = '''<xml>
            <ToUserName><![CDATA[mycreate]]></ToUserName>
            <FromUserName><![CDATA[wx177d1233ab4b730b]]></FromUserName>
            <CreateTime>1348831860</CreateTime>
            <MsgType><![CDATA[text]]></MsgType>
            <Content><![CDATA[''' +content +''']]></Content>
            <MsgId>1234567890123456</MsgId>
            <AgentID>1</AgentID>
            </xml>'''
    ret,sEncryptMsg=wxcpt.EncryptMsg(sRespData, sReqNonce, sReqTimeStamp)
    if( ret!=0 ):
        print "ERR: EncryptMsg ret: " + ret
        sys.exit(1)
    return sEncryptMsg
if __name__ == '__main__':
    app.run(host='0.0.0.0',port=6000,debug=True)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》。

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 基于python生成器封装的协程类

    基于python生成器封装的协程类

    这篇文章主要为大家详细介绍了基于python生成器封装的协程类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 如何使用Python VTK高亮显示actor

    如何使用Python VTK高亮显示actor

    这篇文章主要介绍了如何使用Python VTK高亮显示actor,通过Python-VTK在同一个窗口中,高亮显示选中的actor。本例子中的代码,当窗口中的圆球actor被选中时,会变成红色,并且会显示actor三遍面片边缘信息,下文相关内容需要的小伙伴可以参考一下
    2022-04-04
  • python 脚本生成随机 字母 + 数字密码功能

    python 脚本生成随机 字母 + 数字密码功能

    本文通过一小段简单的代码给大家分享基于python 脚本生成随机 字母 + 数字密码功能,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • Python字典创建 遍历 添加等实用基础操作技巧

    Python字典创建 遍历 添加等实用基础操作技巧

    字段是Python是字典中唯一的键-值类型,本文讲述了Python中字典如何创建 遍历 添加等实用基础操作技巧,内容非常基础但非常重要,一定要熟练掌握
    2018-09-09
  • Python+django实现文件下载

    Python+django实现文件下载

    本文是python+django系列的第二篇文章,主要是讲述是先文件下载的方法和代码,有需要的小伙伴可以参考下。
    2016-01-01
  • Python 正则表达式 re . 符号示例详解

    Python 正则表达式 re . 符号示例详解

    (点号) 在默认模式下,匹配除换行符以外的任意字符, 如果指定了 flags 参数 DOTALL ,它将匹配包括换行符在内的任意字符,下面通过示例代码介绍Python 正则表达式 re . 符号,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Python中dictionary items()系列函数的用法实例

    Python中dictionary items()系列函数的用法实例

    这篇文章主要介绍了Python中dictionary items()系列函数的用法,很实用的函数,需要的朋友可以参考下
    2014-08-08
  • 一篇文章带你了解python字典基础

    一篇文章带你了解python字典基础

    这篇文章主要介绍了Python字典及字典基本操作方法,结合实例形式详细分析了Python字典的概念、创建、格式化及常用操作方法与相关注意事项,需要的朋友可以参考下
    2021-08-08
  • Python中的FTP通信模块ftplib的用法整理

    Python中的FTP通信模块ftplib的用法整理

    ftplib模块中拥有FTP类,可以做到FTP协议下的各种上传下载操作,以下就来看一下Python中的FTP通信模块ftplib的用法整理:
    2016-07-07
  • python输出指定月份日历的方法

    python输出指定月份日历的方法

    这篇文章主要介绍了python输出指定月份日历的方法,涉及Python中calendar模块操作日期的相关技巧,需要的朋友可以参考下
    2015-04-04

最新评论