python 微信企业号-回调模式接收微信端客户端发送消息并被动返回消息
2016-07-29 09:54
821 查看
说明:此代码用于接收手机微信端发送的消息 #-*- 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)本文出自 “偅唻姒後” 博客,请务必保留此出处http://j99d99.blog.51cto.com/2828759/1831564
相关文章推荐
- Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
- python实现jms客户端(发送接收消息)
- 在Python中发送广播消息并接收所有客户端响应的小脚本
- ServerSocket和Socket建立通信(客户端发送消息服务器接收并返回到客户端接收输出)
- 微信企业号回调模式验证与发送消息
- ServerSocket和Socket建立通信(客户端发送消息服务器接收并返回到客户端接收输出)
- 关于 微信发送被动回复音乐消息 用户接收不到的问题
- 微信开发 python django 多客服接口发送到客户端的消息乱码
- 微信发送接收消息类型的整理
- 微信开发模式无法验证以及返回消息中文乱码的情况
- Simple MVVM Toolkit 之 Messaging(B)发送消息,并接收回调
- JMS消息发送和接收实例 - 点对点模式
- 微信开发 企业号(二)-- 回调模式之Tooken验证 .net/python
- WCF----双工模式服务端回调客户端方法时无响应,“发送到 http://***/User.svc 的请求操作在配置的超时内未收到回复”
- Android基于XMPP Smack Openfire开发IM【三】客户端接收服务器发送的消息
- python、rabbitmq、pika、消息发送和接收实例
- C#开发微信门户及应用(21)-微信企业号的消息和事件的接收处理及解密
- C#开发微信门户及应用(19)-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)
- Android基于XMPP Smack Openfire开发IM【三】客户端接收服务器发送的消息
- GCM 发送接收消息 Message Client Server 服务器端,客户端