加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-17 17:01:38 所属栏目:Python 来源:网络整理
导读:1. 搭建微信服务器 web.py安装 pip?install?web.py==0.40.dev0????#?python3pip?install?web.py????#?python2 服务端代码 1.? main.py代码 #?-*-?coding:?utf-8?-*-#?filename:?main.pyimport?weburls?=?(????'/wx',?'Handle',)class?Handle(object):????def

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应用已搭建。

2.接口配置信息填写

2.1 微信公众号端

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

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

2.2 服务端代码修改

main.py

#?-*-?coding:?utf-8?-*-
#?filename:?main.py
import?web
from?handle?import?Handle
urls?=?(
????'/wx',)
if?__name__?==?'__main__':
????app?=?web.application(urls,?globals())
????app.run()
handle.py

业务逻辑图

#?-*-?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


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读