参照微信公众号技术文档一步步搭建自己的服务器。
1.1开启公众号开发者模式
申请服务器
通过Github与AWS合作,为学生免费提供一年的云服务器使用。aws-educate登录地址
1.2搭建服务
- 通过AWS的文档操作,在windows上连接到云服务器。(我使用git bash来代替官网建议putty工具)在存储私钥的地方打开bash.输入aws实例提供的命令。
ssh -i "MyPair.pem" ubuntu@ec2-54-85-162-244.compute-1.amazonaws.com
图片.png
-
在服务器中安装web.py,libxml2,libxsit,lxml( 建议使用python2.7,python3找不到libxml2)
-
在服务器中创建wechat文件夹并编写代码vim main.py
# -*- coding: utf-8 -*-
# filename: main.py
import web
urls=(
'/wx','Handle',
)
class Handle(object):
def GET(self):
return "Hello Q10Viking,this is handle view"
if __name__ == '__main__':
app = web.application(urls,globals())
app.run()
- 执行命令 sudo python main.py 80
5.在浏览器中输入http://外网ip/wx,如(http://54.85.162.244/wx)
1.3 申请公众号
- 步骤比较简单,按照文档和指示即可微信公众平台
2.填写配置
url填写:http://54.85.162.244/wx 。外网IP请到自己的云服务器查询。 http的端口号固定使用80,不可填写其他。
Token:自主设置,如q10viking
- 现在选择提交肯定是验证token失败,因为还需要完成代码逻辑。改动原先main.py文件,新增handle.py
a) vim main.py
# -*- coding: utf-8 -*-
# filename: main.py
import web
from handle import Handle
urls = (
'/wx', 'Handle',
)
if __name__ == '__main__':
app = web.application(urls, globals())
app.run()
b) vim handle.py
先附加逻辑流程图
image
# -*- coding: utf-8 -*-
# filename: handle.py
import hashlib
import web
class Handle(object):
def GET(self):
try:
data = web.input()
if len(data) == 0:
return "hello, this is handle view"
signature = data.signature
timestamp = data.timestamp
nonce = data.nonce
echostr = data.echostr
token = "q10viking" #请按照公众平台官网\基本配置中信息填写
list = [token, timestamp, nonce]
list.sort()
sha1 = hashlib.sha1()
map(sha1.update, list)
hashcode = sha1.hexdigest()
print "handle/GET func: hashcode, signature: ", hashcode, signature
if hashcode == signature:
return echostr
else:
return ""
except Exception, Argument:
return Argument
4) 重新启动成功后(python main.py 80),点击提交按钮。若提示”token验证失败”, 请认真检查代码或网络链接等。若token验证成功,会自动返回基本配置的主页面,点击启动按钮
个人微信公众号
Q10Viking.png欢迎进来交流
网友评论