python微信公众号开发简单流程实现
本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下
网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样。真的无语了。只好自己总结一下开发的一些简单流程。
一、注册个微信公众号,这个就不详细说了。
二、登录后台,进入开发中的基本配置,配置下服务器
三、登录服务器开发
网上很多教程用的什么新浪sae啊,webpy都是很久之前的。现在很多东西都变了,所以我没有用,我用的阿里的服务器以及flask做后端。
代码如下
#coding:utf-8
fromhashlibimportsha1
fromflaskimportFlask,request
token='xxxxxx'
app=Flask(__name__)
defget_update(token,timestamp,nonce):
arguments=''
forkinsorted([token,timestamp,nonce]):
arguments=arguments+str(k)
m=sha1()
m.update(arguments.encode('utf8'))
returnm.hexdigest()
defcheck_signature():
signature=request.args.get('signature','')
timestamp=request.args.get('timestamp','')
nonce=request.args.get('nonce','')
check=get_update(token,timestamp,nonce)
returnTrueifcheck==signatureelseFalse
defparse_xml(data):
try:
importxml.etree.cElementTreeasET
exceptImportError:
importxml.etree.ElementTreeasET
root=ET.fromstring(data)
datas=''
forchildinroot:
ifchild.tag=='ToUserName':
toUser=child.text
datas+='%s '%toUser
elifchild.tag=='FromUserName':
fromUser=child.text
datas+='%s '%fromUser
else:
datas+='<'+child.tag+'>'
datas+=child.text
datas+=''+child.tag+'>'
datas+=' '
returndatas
@app.route('/weixin',methods=['GET','POST'])
defweixinInterface():
ifcheck_signature:
ifrequest.method=='GET':
echostr=request.args.get('echostr','')
returnechostr
elifrequest.method=='POST':
data=request.data
msg=parse_xml(data)
returnmsg
else:
return'signatureerror'
if__name__=='__main__':
app.run(host='0.0.0.0')
一开始的话微信会让你验证填写的url,验证方式是通过传入时间戳timestamp,随机数nonce,token事先约定好的,echostr随机字符串,以及签名signature,需要根据时间戳,随机数,token的值进行字典序排序,然后用sha1加密得到签名,检验签名是否一致,是的话返回随机字符串echostr。如果校验成功,就可以提交了,提交之后就可以启用服务器配置。
上面的代码还包括了如果用户发送信息给公众号,返回该信息,当然只是很简单的解析xml以及构造xml。其他更复杂的功能需要查询微信的文档。
到此这篇关于python微信公众号开发简单流程实现的文章就介绍到这了,更多相关python微信公众号开发流程内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。