python3 微信公众平台开发——使用web.py搭建一个微信服务

 Pala   2017-12-19 16:24   164 人阅读  0 条评论

1. 搭建微信服务器

web.py安装

pip install web.py==0.40.dev0    # python3
pip install web.py    # python2

服务端代码

1.  main.py代码

# -*- coding: utf-8 -*-
# filename: main.py
import web

urls = (
    '/wx', 'Handle',
)

class Handle(object):
    def GET(self):
        return "hello, this is a test"

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()


2. 如果出现“socket.error: No socket could be created“错误信息,可能为80端口号被占用,可能是没有权限,请自行查询解决办法。如果遇见其他错误信息,请到 web.py官方文档 学习webpy 框架3)执行命令:sudo python main.py 80


3. 浏览器输入http://外网IP:80/wx  

如下图,一个简单的web应用已搭建。

11111111.png

2.接口配置信息填写

2.1 微信公众号端

url: 填写对应的网址,比如我的是wx.chenxm.cc/wx

token: 可以填写随机字符串,不建议填写纯数字

99.png

2.2 服务端代码修改

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()

handle.py

业务逻辑图

0.jpg

# -*- coding: utf-8 -*-
# filename: handle.py

import hashlib
import web


class Handle(object):
    def GET(self):

        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 = "a123456789"  # 请按照公众平台官网\基本配置中信息填写

        li = [timestamp, nonce, token]
        query_string = ''.join(li)
        sha1 = hashlib.sha1()
        # python3写法
        sha1.update(bytes(query_string, encoding='utf-8'))
        # python2写法
        # sha1.update(query_string)

        hashcode = sha1.hexdigest()
        # print("------handle/GET func: hashcode, signature-----")
        # print("hashcode--->", hashcode)
        # print("signature-->", signature)

        if hashcode == signature:
            return echostr
        else:
            return ""

重新执行命令:sudo python main.py 80 

本文地址:http://chenxm.cc/post/506.html
版权声明:本文为原创文章,版权归 Pala 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?