此处的Token:自主设置,这个token与公众平台wiki中常提的access_token不是一回事。这个token只用于验证开发者服务器
在点击提交的时候,微信服务会向你指定的URL发送一个GET请求,用来对你的服务器进行token验证
在我的服务器,我是用的是Django搭建的服务
import hashlib
from django.http import HttpResponse
from rest_framework.views import APIView
class FirstView(APIView):
"""
第一个测试用:视图函数
"""
def get(self, request):
data = request.GET
signature = data['signature']
timestamp = data['timestamp']
nonce = data['nonce']
echostr = data['echostr']
token = "helloergou" #请按照公众平台官网\基本配置中信息填写
sortlist = [token, timestamp, nonce]
print(sortlist)
sortlist.sort()
sha1 = hashlib.sha1()
# map(sha1.update, sortlist)
sha1.update(sortlist[0].encode('utf-8'))
sha1.update(sortlist[1].encode('utf-8'))
sha1.update(sortlist[2].encode('utf-8'))
hashcode = sha1.hexdigest()
print("handle/GET func: hashcode, signature: ", hashcode, signature)
if hashcode == signature:
return HttpResponse(echostr)
else:
return HttpResponse("")
注意:在微信的官方文档中使用的 map(sha1.update,sortlist)。这种方法在python3下是行不通的,需要进行指定encode(‘utf-8’);
代码中token,要与在填写基本配置时的token相同