CentOS7+Python3.6利用web.py库进行微信公众平台服务器简易配置,token验证

1.安装配置Python

CentOS7 自带 Python2.7, 我用的是Python3.6.5,需要CentOS7安装配置Python3并和Python2共存的,请看以下教程:

CentOS7安装配置Python3.6.5

2.安装web.py

pip install web.py

可以换国内源下载,速度比较快

3.安装libxml2, libxslt, lxml python

yum install libxml2
yum install libxslt
yum install lxml python

4.编写服务器代码

我们写两个模块来处理验证token,一个main.py,一个handle.py

# main.py
import web
from handle import Handle
	
urls = (
	'/wx', 'Handle'    # 映射
)
	
if __name__ == '__main__':
	app = web.application(urls, globals())
	app.run()
# handle.py
import hashlib
import web

class Handle(object):

    def POST(self):
        pass

    # get方法,验证token
    def GET(self):
        try:
            data = web.input()
            if len(data) == 0:
                return "success!"
            signature = data.signature
            timestamp = data.timestamp
            nonce = data.nonce
            echostr = data.echostr
            token = "demo"  # 请按照公众平台官网\基本配置中信息填写,两个token保持一致

            list = [token, timestamp, nonce]
            list.sort()
            sha1 = hashlib.sha1()
            sha1.update(list[0].encode("utf-8"))
            sha1.update(list[1].encode("utf-8"))
            sha1.update(list[2].encode("utf-8"))
            hashcode = sha1.hexdigest()  # 获取加密串
            
            # 验证
            print("handle/GET func: hashcode, signature: ", hashcode, signature)
            if hashcode == signature:
                return echostr
            else:
                return ""

        except Exception as Argument:
            return Argument

5.运行main.py文件,查看浏览器是否可以访问

执行命令,注意要开放80端口,端口不要被占用

python main.py 80

打开浏览器访问url:http://外网IP/wx

如果成功网页会显示get方法中返回的字符串: success!

6.登录微信公众平台填写服务器配置信息

登录微信公众平台,网页左下角开发栏点击基本配置,如图:

然后根据提示填入相关信息,最后点击提交按钮就好啦

配置成功后要在服务器配置那里点一下启用,如图,可随时更改配置,启用或者停用服务器

过程中遇到了各种各样的坑,有空再来更新。。

posted @ 2019-12-20 22:06  MilesMa  阅读(974)  评论(0编辑  收藏  举报