码迷,mamicode.com
首页 > 微信 > 详细

Python学习之微信公众号接入 一 验证

时间:2015-03-19 16:43:12      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

最近看了些Python的书,但是感觉没有什么进步,想做点事情试试,刚好我以前弄了一个微信公众号,好久不管理了

这次就用它来练练手。

看网上有些教程告诉怎么弄的,我弄了半天终于把验证这步通过了,记录一下:

微信公众号名称:今天做了没

微信公众号:now-to-do

有兴趣的可以加一下,虽然其实没有什么功能呢。

我参考的是这些内容:

http://www.yangyanxing.com/?p=859

http://ke.qq.com/video/index.html?course_id=21303


开始记录整个过程:

第一步:申请SAE的账号,具体的就不说了,反正是申请好了我,挺简单的。然后创建一个代码版本,

创建完了,可以在网页上直接写代码,写可以在电脑上安装一个SVN,在本地写,然后提交到服务器上,

我是采用的本地写的方法。这里其实也挺烦的,我也不是一下子就弄好了的,不过耐心弄一下还是挺容易的。


第二步:开始在代码中添加东西,让微信验证的时候可以通过。

先大概看一下:技术分享

原本这里面是有两个文件的:config.yaml  和  index.wsgi 

在config.yaml中添加要使用的扩展包,就像图中所示:

在这里我当时遇到了问题,写好了,保存就是不成功,直接在网页上编辑,然后保存,再打开就没有保存上,

使用SVN提交也遇到了问题,提交不成功,我看了一下大概是说syntax error,语法有问题,然后仔细看了一下

就是name前面有一个 - 这个小横我没有写,当时看他们的示例我以为那个是他们编辑器的标识呢,后来写上了就好了。

这里version前面是两个空格。


然后就是index.wsgi了,这个里原来是有代码的,不过我都删除了,原来你如果使用这个地址去访问,是可以看到

Hello SAE这个输出的在网页上,但是删除后,改成这样,你再使用网页访问,是会说服务器上有程序错误的。不过

这个没有关系,我们不是要做一个web,而是要让它当公众号的服务器用。

技术分享

上面nowtodoInterface是我又创建的一个nowtodoInterface.py的文件,里面有一个类NowtodoInterface。

urls括号中的东西,第一个就相当于路径名,我这个文件是直接创建在/下的,没有创建子目录,如果你要是创建了

子目录来放这个文件,比如子目录叫:subDir这个 / 就要写成/subDir了,而后面的NowtodoInterface就是那个类的名。


再下面的一堆东西,我其实不知道是什么,只是他们这么写,我也这么写的,等知道了,再回来补充上。


然后就是我的nowtodoInterface.py了

技术分享

在这里,就是那个token是自己定义的,这个要和一会在微信公众平台上填写的token一致就行。

signature   timestamp   nonce   echostr   这三个是微信公众平台连你这,给你发的东西,用于验证,

sha1是一种验证方法,拿token timestamp  nonce一起计算出来,和发给你的signature比较,这个signature就是

微信那边这样算出来的,你们算的一样,就对了,对了就把它给你的那个echostr再发回去就可以了。不对,就验证失败了。


这里这个验证其实不用也一样,微信那边就基于你有没有返回这个echostr来决定是否成功的,所以代码写成这样也是

可以的

def GET(self):
    data = web.input()
    echostr = data.echostr
    return echostr

这样就是直接得到发过来的echostr,然后再发回去,就能通过了。










Python学习之微信公众号接入 一 验证

标签:

原文地址:http://my.oschina.net/bxxfighting/blog/388996

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!