微信公众号连接服务器(1)

2018-12-01  本文已影响24人  Q10Viking

参照微信公众号技术文档一步步搭建自己的服务器。

1.1开启公众号开发者模式

申请服务器

通过Github与AWS合作,为学生免费提供一年的云服务器使用。aws-educate登录地址

1.2搭建服务

  1. 通过AWS的文档操作,在windows上连接到云服务器。(我使用git bash来代替官网建议putty工具)在存储私钥的地方打开bash.输入aws实例提供的命令。
ssh -i "MyPair.pem" ubuntu@ec2-54-85-162-244.compute-1.amazonaws.com
图片.png
  1. 在服务器中安装web.py,libxml2,libxsit,lxml( 建议使用python2.7,python3找不到libxml2)

  2. 在服务器中创建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()

  1. 执行命令 sudo python main.py 80

5.在浏览器中输入http://外网ip/wx,如(http://54.85.162.244/wx

浏览器.png

1.3 申请公众号

  1. 步骤比较简单,按照文档和指示即可微信公众平台

2.填写配置
url填写:http://54.85.162.244/wx 。外网IP请到自己的云服务器查询。 http的端口号固定使用80,不可填写其他。
Token:自主设置,如q10viking

image
  1. 现在选择提交肯定是验证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
上一篇 下一篇

猜你喜欢

热点阅读