色彩时光 | 记录程序员世界的点点滴滴

微信公账号接口开发记录


本人对理财感兴趣,搭建了一个理财网站:理财吾爱发 ,同时也申请了一个微信公账号wwwlicai528com。原本是计划网站和公账号一起运营的,之前一直没时间基本都搁置在那里,现在有时间想对公账号进行改进升级。公众号属于个人公众号无法认证,查阅接口权限只能接收基本事件权限和用户回复消息权限,自动回复权限,以及部分页面js权限。


根据权限能力计划把公众号升级成为机器人形式的问答类理财导航功能。基本功能为:查询股票实时行情,导航类链接(1、股市数据挖掘 2、低风险投资理财 3、实用工具),二维码付款打赏功能。

升级功能确认以后,接着着手开发了。一个好的产品始终需要一份好的使用手册,微信亦如此。按照微信帮助-》开始开发-》接入指南 进行第一步接入配置。里面说的都很清楚,下面就贴下接入配置时token验证的python代码:


            #http://blog.rgbtime.com
            signature=request.GET["signature"]
            timestamp=request.GET["timestamp"]
            nonce=request.GET["nonce"]
            echostr=request.GET["echostr"]
            #字典序排序
            list=[token,timestamp,nonce]
            list.sort()
            sha1=hashlib.sha1()
            map(sha1.update,list)
            hashcode=sha1.hexdigest()
            #如果是来自微信的请求,则回复echostr
            if hashcode == signature:
                response.write(echostr)

验证成功后,首先开发订阅公众号 自动回复自定义内容。这里开发时如果不太熟悉的话,调试起来会有点麻烦。我想的方法是利用微信在线接口调试工具 调用订阅接口,然后观察服务器的打印输出和调用返回输出。

接口数据通讯格式皆为XML格式,在python中取数据用request.body获取传入的xml数据。解析xml数据做相应的处理后,然后根据被动回复消息定义的数据格式组成xml字符串直接返回则完成一次交互。具体实现代码如下:


        response=HttpResponse(status=200)
        if request.method=="POST":
            xml= request.body
            return_data="init_return_data"
            #print xml
            #http://blog.rgbtime.com
            xml_dict =dict((child.tag, child.text) for child in ET.fromstring(xml))
            """
            for key,val in xml_dict.items():
                print key,val
            """
            return_data=analyseData(xml_dict)
            response.write(return_data)

在被动回复消息文字内容中"\n"表示为换行,blog.rgbtime表示文字链接,特殊符号对应的符号表情 由这些基本的元素可以组成丰富的回复内容,下图为公众号自动回复内容。

600297271664749661.jpg


您可能也对下面文章感兴趣:

Write a Comment


* Content (required) 10~500s

分类

热门标签

友情链接