时间:2021-05-22
本文实例讲述了Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息。分享给大家供大家参考,具体如下:
说明:此代码用于接收手机微信端发送的消息
#-*- coding:utf-8 -*-from flask import Flask,requestfrom WXBizMsgCrypt import WXBizMsgCryptimport xml.etree.cElementTree as ETimport sysapp = 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 sEncryptMsgif __name__ == '__main__': app.run(host='0.0.0.0',port=6000,debug=True)更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》。
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
网页微信客户端是腾讯推出的网页版微信电脑版,将网页版微信做成了一个单独的PC客户端,以供用户更加便捷的使用微信。网页微信客户端支持电脑键盘快速输入、实时新消息提
首先说微信企业号的开发模式分为:编辑模式(普通模式)和开发模式(回调模式),在编辑模式下,只能做简单的自定义菜单和自动回复消息,要想实现其他功能还得开启开发者模
问题描述最近在做微信小程序,用的springboot做后端,突然发现客户端发送post请求的时候服务端接收不到参数。问题简化之后如下:微信小程序端:在页面放一个
两微一端是指微博、微信及新闻客户端。 “两微一端”融合传播排行榜的评估范围覆盖国内所有传统媒体和新媒体,通过统计各媒体在微博、微信以及客户端三个平台上发布文章
1、点击电脑上的微信客户端打开电脑上的微信客户端,在打开客户端后点击手机微信中的扫一扫功能,在电脑上扫描登录微信; 2、在电脑上登录微信后,找到需要打印的