接入
提前准备
  1. 一个有公网IP的服务器。
  2. 一个部署好的Django应用。
  3. Pycurl(如何安装Pycurl?
接入

官方接入文档在这里,但是检验signature的代码,官方只有php的,在Django中的python代码应该这么写:


import hashlib
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse

@csrf_exempt
def wechat(request):
    signature = request.GET.get('signature')
    timestamp = request.GET.get('timestamp')
    nonce = request.GET.get('nonce')
    echostr = request.GET.get('echostr', '')
    token = 'mytoken'

    l = [token,timestamp,nonce]
    l.sort()
    sha1 = hashlib.sha1()
    map(sha1.update, l)
    hashcode = sha1.hexdigest()

    result = ''
    if hashcode == signature:
        #验证通过
        result = echostr

    return HttpResponse(result)
    

引入csrf_exempt修饰器的原因是,默认django框架是不允许站外post数据的,而接下来,我们要接收来自微信服务器的数据。

微信 二次开发 接入 python django
Views (5200) Comment (0) 2014-03-06
For example, "name@something.com". If someone replies to you it will be via email.
For example, "http://someaddress.com"