本文实例讲述了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 = '''
1348831860
1234567890123456
1
'''
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程序设计有所帮助。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群
编程之家官方2群
编程之家官方3群
编程之家官方4群