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)
时间: 2024-10-22 01:36:49

python 微信企业号-回调模式接收微信端客户端发送消息并被动返回消息的相关文章

微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决

微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决 echostr校验失败,请您检查是否正确解密并输出明文echostr 异常java.security.InvalidKeyException:illegal Key Size 也就是echostr校验失败,请您检查是否正确解密并输出明文echostr这个错误 企业微信登陆地址http://qy.weixin.qq.com/ 配置成功以后 Servlet public void doGet(Htt

微信企业号回调模式验证与发送消息

最近放假闲着无聊,研究了一下微信企业号, 打算通过企业号做一个运维报警信息发送的功能,记录自己的操作 第一步 注册企业号,网上一搜一大把的教程,这里略过  微信企业号登录地址  https://qy.weixin.qq.com/ 第二步  登录后 点左侧 应用中心 -新建应用 第三步  在第二步第一图中的自建应用下面找到刚刚新建的应用 拉到最下面有一个模式选择,点击回调模式 会看到下图界面 Token 和EncodingAESKey 点击随机获取即可,上面的url需要你有自己的服务地址  你的服

PHP-Socket服务端客户端发送接收通信实例详解

Socket介绍 什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 在Internet上的主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务. Socket连接过程 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认.

微信企业号:OAuth2.0微信授权验证

企业应用中的URL链接(包括自定义菜单或者消息中的链接),可以通过OAuth2.0验证接口来获取成员的身份信息.使用步骤和方法如下: 1.先开发要使用微信授权认证的网页应用,这个网址必须在互联网上. 2.生成回调网址 企业如果需要员工在跳转到企业网页时带上员工的身份信息,需构造如下的链接: https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_t

微信企业号开发[三]——调用微信接口

微信的所有主动调用都需要带上AccessToken,以下我们将讲解如何获取AccessToken 获取AccessToken AccessToken是企业号的全局唯一票据,调用接口时需携带AccessToken. AccessToken需要用CorpID和Secret来换取,不同的Secret会返回不同的AccessToken.正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果.access_token至少保留512字节的存储空间. 请求说明 Https请求方式:

微信积分系统模式开发微信积分系统模式详解

微信积分系统开发(李想.185.6504.8478)甘铁生<"现代派"茶馆>:"我们考,凭分数,凭本事."唐·元稹<中书省议赋税及铸钱等状>:"臣等约计天下百姓有铜器用度者,分数无多,散纳诸使,斤两盖寡." 宋王安中<清平乐·和晁倅>词:"花时微雨,未减春分数."小编这就给小伙伴们概括微信积分系统的基础内容: 1.积分兑换商城:在微信会员卡中,会员能够查询自个的积分,能够检查积分能够兑换的礼

微信企业号验证

微信企业号回调模式验证机制官方文档有说明,也是解密字符串后返回解密内容,下面是一个调试通过的接口验证: <?php //添加腾讯提供的接口文件 include_once "WXBizMsgCrypt.php"; //设置自己企业号的相关参数 $encodingAesKey=""; $corpId=""; $token=""; //获取待验证的参数 $sVerifyMsgSig = $_GET["msg_sign

微信企业号开发之回调模式的接口开发

一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信的信息,转发到用户提供的一个回调接口上,该接口解析用户发送过来的信息,解析后进行相应,而且回调模式中,可以调用的东西不少,扫码,图片,视频,地理位置信息等. 在应用的模式下,选择回调模式,之后,需要设置3个参数(1.回调接口URL:2.token:3.ASESKey),URL就是提供的回调接口,微信

.net之微信企业号开发(三) 回调模式的接口开发

一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信的信息,转发到用户提供的一个回调接口上,该接口解析用户发送过来的信息,解析后进行相应,而且回调模式中,可以调用的东西不少,扫码,图片,视频,地理位置信息等. 在应用的模式下,选择回调模式,之后,需要设置3个参数(1.回调接口URL:2.token:3.ASESKey),URL就是提供的回调接口,微信