今天开始使用 Python3 来处理微信公众号数据,首先进入开发文档可以看到需要先验证一下 token ,观察一下代码发现是使用 web 框架搭建一个监听端,收到信息后对几个数据进行 sha1 计算,比对后来判断是否是微信消息。
示范代码对于 python3 来说有一些小地方需要修改,这里直接贴上修改后的代码
# -*- coding: utf-8 -*-
# filename: handle.py
import hashlib
import web
class Handle(object):
def GET(self):
try:
data = web.input()
print('data:',data)
if len(data) == 0:
return "hello, this is handle view"
signature = data.signature
timestamp = data.timestamp
nonce = data.nonce
echostr = data.echostr
token = "你的token值" #请按照公众平台官网\基本配置中信息填写
list = [token, timestamp, nonce]
list.sort()
#修改代码如下,在 python2 中,sort 后为一个列表文件,但在 python3 中为迭代器,所以需要手动进行拼接。
str1=''
for i in list:
str1 += i
sha1 = hashlib.sha1()
sha1.update(str1.encode('utf-8'))
#拼接之后还需要将他以 utf-8 的编码格式转换为 byte 类型才能进行 sha1 计算
hashcode = sha1.hexdigest()
#以上几行代码为验证 token 需要修改的代码
print("handle/GET func: hashcode", hashcode, "signature: ", signature)
if hashcode == signature:
return echostr
else:
return ''
except Exception or Argument:
return Argument
如需要帮忙验证 token 或是有想要交流微信公众号开发请加QQ
723831904