django學習之路(四)開發微信公眾號
阿新 • • 發佈:2019-02-09
開發微信公眾號
我們可以將之前建立的myblog來完成這件事情。我們之前建立了專案myblog,並在myblog中新建了應用blog。現在我們只需要兩步就可完成微信公眾號token的驗證。
第一步:編寫函式體(myblog/blog/views)
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.generic.base import View
import hashlib
class token(View):
@csrf_exempt
def dispatch(self, *args, **kwargs):
return super(token, self).dispatch(*args, **kwargs)
def get(self, request):
# 下面這四個引數是在接入時,微信的伺服器傳送過來的引數
signature = request.GET.get('signature', None)
timestamp = request.GET.get('timestamp' , None)
nonce = request.GET.get('nonce', None)
echostr = request.GET.get('echostr', None)
# 這個token是我們自己來定義的,並且這個要填寫在開發文件中的Token的位置
token = 'weixin'
# 把token,timestamp, nonce放在一個序列中,並且按字元排序
hashlist = [token, timestamp, nonce]
hashlist.sort()
# 將上面的序列合成一個字串
hashstr = ''.join([s for s in hashlist])
# 通過python標準庫中的sha1加密演算法,處理上面的字串,形成新的字串。
hashstr = hashlib.sha1(hashstr).hexdigest()
# 把我們生成的字串和微信伺服器傳送過來的字串比較,
# 如果相同,就把伺服器發過來的echostr字串返回去
if hashstr == signature:
return HttpResponse(echostr)
第二步:配置urls
這一步需要改動兩個urls.py
一個是myblog目錄下面的:
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^wx/',include('blog.urls'))
]
在blog目錄下面的urls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^token/$',views.token)
]