美文网首页
微信公众号连接服务器(1)

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

作者: Q10Viking | 来源:发表于2018-12-01 02:14 被阅读24次

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

    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

    相关文章

      网友评论

          本文标题:微信公众号连接服务器(1)

          本文链接:https://www.haomeiwen.com/subject/ehqlcqtx.html