django1.3.1 + python2.6.6
前期准备不多说,自己的服务器,自己去申请微信公众平台帐号
在高级功能 --> 开发模式
填写django配置中你需要的接入的url和token。这块主要是实现接入微信api的时候需要认证的功能
1 from django.http import HttpResponse 2 import hashlib 3 4 def checkSignature(request): 5 ''' 6 验证微信api提供的signature和token等信息 7 ''' 8 9 token = '自己随意写' 10 signature = request.GET.get('signature', '') 11 timestamp = request.GET.get('timestamp', '') 12 nonce = request.GET.get('nonce', '') 13 echostr = request.GET.get('echostr', '') 14 15 infostr = ''.join(sorted([token, timestamp, nonce])) 16 if infostr: 17 hashstr = hashlib.sha1(infostr).hexdigest() 18 if hashstr is signature: 19 return HttpResponse(echostr) 20 else: 21 print 'haststr is not signature' 22 else: 23 print 'infostr does not existing' 24 25
views.py中就是这样验证的。通过填写url。然后把写好的url放到微信的接入中去
ok,就会提示成功了。
ps:啰嗦一句,最开始google的时候,按照网上的例子写了一下,老是无法验证token。然后就细看了下。微信的验证的页面,就是一个ajax。
通过ajax访问你填写入的那个链接。当然还要加一部分参数。要把echostr返回给ajax,然后微信的后台会去比对。这样才能决定是否验证成功。
有人居然直接return echostr。这样ajax怎么可能接收到你给它返回的echostr呢?