1. 程式人生 > >django學習之路(四)開發微信公眾號

django學習之路(四)開發微信公眾號

開發微信公眾號

我們可以將之前建立的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)
]