说明:此代码用于接收手机微信端发送的消息
#-*-coding:utf-8-*-
fromflaskimportFlask,request
fromWXBizMsgCryptimportWXBizMsgCrypt
importxml.etree.cElementTreeasET
importsys
app=Flask(__name__)
@app.route(‘/index‘,methods=[‘GET‘,‘POST‘])
defindex():
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
ifrequest.method==‘GET‘:
ret,sEchoStr=wxcpt.VerifyURL(sVerifyMsgSig,sVerifyTimeStamp,sVerifyNonce,sVerifyEchoStr)
printtype(ret)
printtype(sEchoStr)
if(ret!=0):
print"ERR:VerifyURLret:"+ret
sys.exit(1)
returnsEchoStr
#接收客户端消息
ifrequest.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
printsReqData
ret,sMsg=wxcpt.DecryptMsg(sReqData,sReqMsgSig,sReqTimeStamp,sReqNonce)
if(ret!=0):
print"ERR:VerifyURLret:"
sys.exit(1)
#解析发送的内容并打印
xml_tree=ET.fromstring(sMsg)
content=xml_tree.find("Content").text
printcontent
#被动响应消息,将微信端发送的消息返回给微信端
sRespData=‘‘‘
1348831860
1234567890123456
1
‘‘‘
ret,sEncryptMsg=wxcpt.EncryptMsg(sRespData,sReqNonce,sReqTimeStamp)
if(ret!=0):
print"ERR:EncryptMsgret:"+ret
sys.exit(1)
returnsEncryptMsg
if__name__==‘__main__‘:
app.run(host=‘0.0.0.0‘,port=6000,debug=True)
本文出自 “偅唻姒後” 博客,请务必保留此出处http://j99d99./2828759/1831564
python 微信企业号-回调模式接收微信端客户端发送消息并被动返回消息
原文:http://j99d99./2828759/1831564