django 在新浪云部署 微信后台 步骤
1、首先在新浪云 上创建应用,因为用的是django web框架,所以选择python,版本只支持2.7,所以最好本地开发就用2.7这个版本,二级域名和应用名自己填写好,代码管理 工具根据自己的喜好选择git或者svn
这里要强调一下,sae 要进行实名认证,否则后边微信token认证会失败
2、申请微信公众号,然后进入开发者模式,,填写好url 和token ,URL 是上面填写的带有二级域名的sae地址,后面跟上你web服务的地址,例如我的是 /wechat/
token 用于微信认证,后面会在代码中填写 ,EncodingAESKey随机生成就好,页面填写好后不要点提交,等部署好后再提交
3、 下面就是如何部署我们的代码
首先用git同步服务器代码,然后编辑两个文件
config.yaml
name: gxlweixin
version: 1
libraries:
- name: "django"
version: "1.6"
注:django我选的是1.6版本,这样部署代码的时候需要把整个django都要部署到服务器上,如果选择1.5(sae默认支持1.5版本),就不需要要这步了,我没有亲自测试过,不知道是不是这个样子
index.wsgi 这个文件用于sae启动你的app用
import sae
from gxlweixin import wsgi
application = sae.create_wsgi_app(wsgi.application)
然后就是写你的django代码了
这是我的目录结构:
config.yaml
gxlweixin/
index.wsgi
manage.py
site-packages/
wechat/
site-packages就是上面提到的,要把你django上传到服务器,我的路径 C:\Python27\Lib\site-packages\django 把这个内容复制到这个文件夹下
同时要在你的wsgi.py 中添加以下内容(红色部分),
import os
import sys
root = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(root, '..', 'site-packages'))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "gxlweixin.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
在你创建的应用里添加验证 部分代码 ,我是放在 views.py 里,这里的token就是微信开发者模式里填写的token,一定要一致,否则会验证失败
TOKEN = "你的token"
@csrf_exempt
def checkSignature(request):
global TOKEN
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
tmpList = [token, timestamp, nonce]
tmpList.sort()
tmpstr = "%s%s%s" % tuple(tmpList)
tmpstr = hashlib.sha1(tmpstr).hexdigest()
if tmpstr == signature:
return echoStr
这样所有的环节已经准备好了,回到微信开发者页面,点击提交,如果一切正常会提示成功,如果失败,自己可以在浏览器里访问地址试一下,我中途遇到 提示不支持splite2
因为django默认是使用这个数据库的,所以需要sae上开启mysql,在settings.py 中吧数据库的部分改为如下