python开发微信公众平台 BAE

最近学习Python,发现可以使用python来开发微信公众平台,就想尝试一下。因为微信公众平台的开发者模式需要用到服务器,自己的电脑不可能整天开着,所以拿自己电脑当服务器有点不太现实,所以我选择了将应用部署到了BAE上,其实部署到SAE上也是可以的。

首先申请一个微信公众号以及一个bae账号。在bae上创建一个python-web应用。使用SVN将应用内容CheckOut到本地会看到


然后对index.py进行编辑,输入以下代码

#coding:utf-8
from bottle import *
import hashlib
import xml.etree.ElementTree as ET
import urllib2
import json
import time

app=Bottle()

@app.get("/")
def checkSignature():
	token="shgweixin"
	signature=request.GET.get('signature',None)
	timestamp=request.GET.get('timestamp',None)
	nonce=request.GET.get('nonce',None)
	echostr=request.GET.get('echostr',None)
	tmpList=[token,timestamp,nonce]
	tmpList.sort()
	tmpstr="%s%s%s"%tuple(tmpList)
	hashstr=hashlib.sha1(tmpstr).hexdigest()
	if hashstr==signature:
		return echostr
	else:
		return False
def parse_msg():
	recvmsg=request.body.read()
	root=ET.fromstring(recvmsg)
	msg={}
	for child in root:
		msg[child.tag]=child.text
	return msg
@app.post("/")
'''
这边的代码是为了是公众号自动回复用户发送的消息
'''
def response_msg():
	msg=parse_msg()
	echostr="""<xml>
	<ToUserName><![CDATA[%s]]></ToUserName>
	<FromUserName><![CDATA[%s]]></FromUserName>
	<CreateTime>%s</CreateTime>
	<MsgType><![CDATA[%s]]></MsgType>
	<Content><![CDATA[%s]]></Content>
	</xml>"""%(msg['FromUserName'],msg['ToUserName'],time.time(),"text",msg['Content'])
	return echostr
if __name__=="__main__":
	debug(True)
	run(app,host='127.0.0.1',port=8080,reloader=True)
else:
	from bae.core.wsgi import WSGIApplication
	application = WSGIApplication(app)


因为用到了bottle的框架,所以需要下载bottle.py放在同一目录下


然后COMMIT,在bae中选择快捷发布,将新的应用发布到网上。

在微信公众平台管理中选择“开发者中心”-->“修改配置”,填写相应的内容

url:百度云服务器上的域名

token:用于验证的内容(需要个代码段中token内容一致)


之后点击提交,没有错误之后,开发者模式就启用了。

这时候可以向公众号发送消息,公众号会回复一样的内容。如果发送消息提示“该公众号暂时无法提供服务,请稍后再试”那就说明代码有一定的问题,需要修改。


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值