Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
本文实例讲述了Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息。分享给大家供大家参考,具体如下:
说明:此代码用于接收手机微信端发送的消息
#-*-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='''''' 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) 1348831860 1234567890123456 1
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》。
希望本文所述对大家Python程序设计有所帮助。