说到微信公众号的开发,不外乎两种,一种是使用官方提供的接口开发,一种就是通过模拟登录来实现接口(这种方式有被封的风险,这里不论述)
Python发展至今,已经有多种完善的服务器框架可以使用,Django,Tornado,Flask等,可以使用这些框架打造一个服务器,在其之上实现微信公众号的功能就好。
至于怎么申请微信公众号、设置开发模式和指定开发token的url这类问题,这里也不一一论述,毕竟这在网上一搜就能找到了。
在我看来,微信公众号的开发在接口上说来也只有两种,一种就是验证,另一种就是回应,可以根据请求方法来区分
@csrf_exempt def handleWechatRequest(request): if request.method == "GET": # createMenu() response = HttpResponse(checkSignature(request),content_type="text/plain") return response elif request.method == "POST": response = HttpResponse(responseMsg(request),content_type="application/xml") return response else: response = None return response
第一种,验证:简单点说来,就是验证请求的内容是否正确,这一点是个大前提,也就是说这一点决定了在公众号上设置URL和token时是否能通过。关于这一点,就是关于微信公众好的验证算法了,简单点说来就是,根据设定的token值、请求的timestamp值、请求的nonce值进行排序后组成字符串,再经过哈希的sha1加密后和请求的signature相比较。如下实例: