豆瓣搜索—微信公共平台接入
2015-05-05 15:56
351 查看
本篇主要介绍如何把自己的服务器接入到微信公共平台,服务器端使用python+flask开发,并部署到sinaapp服务器上。
上篇中提到过在接入配置中主要有三个内容需要填写,URL/Token/域名。URL就是要接入的服务器微信消息处理地址,Token可以是自己定义的一个字符串,用于校验。接下来我们主要实现用于接入校验用的接口。
首先需要实现flask app
在微信测试帐号的配置页面中,当我们填写URL时,微信服务器会通过GET方式发起一次校验请求,我们就在weixin_access_verify函数中处理微信的校验请求,并返回请求中的echostr,如果微信服务器能正确的收到echostr为内容的响应,则认为该配置成功。
接下来我们实现请求校验函数
接下来我们可以实现weixin_access_verify函数,该函数首先对请求进行校验,如果校验成功则把echostr返回,否则返回“access verification fail“
至此,配置工作已经完成,下篇我们就要完成书籍信息查询功能。
上篇中提到过在接入配置中主要有三个内容需要填写,URL/Token/域名。URL就是要接入的服务器微信消息处理地址,Token可以是自己定义的一个字符串,用于校验。接下来我们主要实现用于接入校验用的接口。
首先需要实现flask app
from flask import Flask, request, render_template app = Flask(__name__) app.debug = True app.secret_key = APP_SECRET_KEY #公众号消息服务器网址接入验证 #需要在公众帐号管理台手动提交, 验证后方可接收微信服务器的消息推送 @app.route('/weixin', methods=['GET']) def weixin_access_verify(): pass
在微信测试帐号的配置页面中,当我们填写URL时,微信服务器会通过GET方式发起一次校验请求,我们就在weixin_access_verify函数中处理微信的校验请求,并返回请求中的echostr,如果微信服务器能正确的收到echostr为内容的响应,则认为该配置成功。
接下来我们实现请求校验函数
TOKEN = 'douban_book' #注意要与微信公众帐号平台上填写一致 #接入和消息推送都需要做校验 def verification(request): signature = request.args.get('signature') timestamp = request.args.get('timestamp') nonce = request.args.get('nonce') tmplist = [TOKEN, timestamp, nonce] tmplist.sort() tmpstr = ''.join(tmplist) hashstr = hashlib.sha1(tmpstr).hexdigest() if hashstr == signature: return True return False上面代码中的TOKEN一定要和微信测试帐号配置页面中的Token字段一致,否则会提示配置失败。该函数主要就是针对请求中的timestamp/nonce和TOKEN字段进行特定算法的计算,然后和请求中的signature字段进行校验,只有两者一致才说明校验成功。具体算法可以查看http://mp.weixin.qq.com/wiki/0/61c3a8b9d50ac74f18bdf2e54ddfc4e0.html#.E4.BD.BF.E7.94.A8.E6.96.B9.E6.B3.95
接下来我们可以实现weixin_access_verify函数,该函数首先对请求进行校验,如果校验成功则把echostr返回,否则返回“access verification fail“
#公众号消息服务器网址接入验证 #需要在公众帐号管理台手动提交, 验证后方可接收微信服务器的消息推送 @app.route('/weixin', methods=['GET']) def weixin_access_verify(): echostr = request.args.get('echostr') if verification(request) and echostr is not None: return echostr return 'access verification fail'至此,服务端相关的代码已经完成,接下来就到测试帐号的配置页面进行配置,最终配置如下图所示
至此,配置工作已经完成,下篇我们就要完成书籍信息查询功能。
相关文章推荐
- 豆瓣搜索—微信公共平台接入
- 豆瓣搜索—微信公共平台接入(wechatpy)
- 豆瓣搜索—微信公共平台接入(wechatpy)
- 豆瓣搜索—微信公共平台测试帐号申请
- 豆瓣搜索—微信公共平台测试帐号申请
- 豆瓣搜索—微信公共平台查询功能
- 豆瓣搜索—微信公共平台查询功能
- ASP.NET MVC 微信公共平台开发之 微信接入
- Android 微信接入公共平台回调失败
- Python+django接入微信公共平台无法使用中文
- 微信公共平台接入之:网页授权(微信授权,微信access_token获取,获取微信用户信息),微信开发者工具使用,微信公众平台测试号申请接入
- 微信公共平台(一)网址接入
- Android 微信接入公共平台回调失败
- Android 微信接入公共平台回调失败
- 微信公共平台文章采集方法研究
- 微信/易信公共平台开发(四):公众号调试器 (仿真微信平台,提供PHP源码)
- 微信公共服务平台开发(.Net 的实现)2-------获得ACCESSTOKEN
- Android 第三方应用接入微信平台(2)
- 微信公共服务平台开发(.Net 的实现)8-------处理图片(上传下载发送)
- 微信公共平台API node-weixin-api编辑/纠错