1.申請微信公眾號
公眾號分為三類:訂閱號椒惨,服務(wù)號链烈,企業(yè)號跨晴,后面兩種需要一定的資質(zhì)蓖谢,訂閱號很好申請
2.設(shè)置網(wǎng)站的url和token
你好
3.新建django工程
主要設(shè)置視圖函數(shù)
django 做微信開發(fā), 特別要注意的是 CSRF微信內(nèi)消息的流程是:用戶 -> 微信官方服務(wù)器 -> 開發(fā)者的服務(wù)器我們的開發(fā)流程里, 微信端是一個 client, django 是 web 服務(wù)器.client 過來的數(shù)據(jù), 走的都是一個 url ( 微信公眾號管理臺內(nèi)自定義)除了首次校驗, 后面的都是 POST,所有 POST 消息都不可能有 django 特有的 CSRF 標(biāo)志.所以, views 函數(shù)需要 @csrf_exempt 修飾下
視圖函數(shù)如下:
#-*- coding:utf-8 -*-
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from wechat_sdk import WechatBasic
token = 'xxxxxxx'
@csrf_exempt
def home(request):
wechat = WechatBasic(token=token)
if wechat.check_signature(signature=request.GET['signature'],
timestamp=request.GET['timestamp'],
nonce=request.GET['nonce']):
if request.method == 'GET':
rsp = request.GET.get('echostr', 'error')
else:
wechat.parse_data(request.body)
message = wechat.get_message()
rsp = wechat.response_text(u'消息類型: {}'.format(message.type))
else:
rsp = wechat.response_text('check error')
return HttpResponse(rsp)