最近在看一本书《微信公众平台开发最佳实践》,想学习一下公众平台开发。下一步就打算学习小程序,进而研究公众平台和小程序的接合使用。因为本人是python背景,而这本书是php写的例子。这里我就将从python的实现来学习这些例子。注意,注意,我用的是windows平台,Django框架.
一,准备阶段
1. 当然是申请微信公众号了。这个不用多说。个人只能申请个人服务号和个人的订阅号。虽然在之后的开发中有很多的限制,但没有关系。从学习的角度看,我们可以在申请完个人的订阅号或者服务号之后,再申请一个公众号测试账号来学习用。怎么申请,请baidu,然后一步一步来就可以了。
2. 服务器配置:这个教程要求大家申请云服务器,因为微信公众号的开发必须有云服务器作后端,但是我想程序员嘛,学习用的都不想花钱。可以有个备选方案:Ngrok。 我这里把Ngrok的下载地址以及我实验成功的方案分享给大家。
下载地址: http://ngrok.ciqiuwl.cn/
本地运行的命令行:
1,下载windows版本的客户端,解压到你喜欢的目录
2,在命令行下进入到ngrok客户端目录下
3,执行 ngrok -config=ngrok.cfg -subdomain xxx 80 //(xxx 是你自定义的域名前缀)
4,如果开启成功 你就可以使用 xxx.ngrok.xiaomiqiu.cn 来访问你本机的 127.0.0.1:80 的服务啦
5,如果你自己有顶级域名,想通过自己的域名来访问本机的项目,那么先将自己的顶级域名解析到120.78.180.104(域名需要已备案哦),然后执行 ngrok -config=ngrok.cfg -hostname xxx.xxx.xxx 80 //(xxx.xxx.xxx是你自定义的顶级域名)
6,如果开启成功 你就可以使用你的顶级域名来访问你本机的 127.0.0.1:80 的服务啦
7,如果失败 就加下交流群 反馈下问题 本屌会看看什么原因....吧
8,如果实在闲命令打开麻烦,windows版提供了一键启动脚本!直接启动即可(其它版本没有脚本)
3. 有了自己的服务器后,需要部署一个简单的django 微信网站,然后就可以来配置微信公众号的开发者中心了。
django 搭建好的服务器,必须在80端口开启: python manage.py runserver 80
然后实验ngrok绑定的域名代替127.0.0.1:80看看能不能也访问成功.
4.在view中编写weixin认证代码
TOKEN ='ahmay'
def wechat(request):
wechat_obj = wechatCallbackapiTest()
if request.method =="GET":
if request.GET.get("echostr",None)is not None:
return wechat_obj.valid(request)
else:
return HttpResponse("None WeChat GET Access")
else:
pass
return HttpResponse("ok")
class wechatCallbackapiTest():
def valid(self,request):
echoStr = request.GET.get("echostr",None)
if self.check_signature(request):
print("response here")
return HttpResponse(echoStr)
else:
return HttpResponse("False")
def check_signature(self,request):
signature =request.GET.get("signature",None)
timestamp =request.GET.get("timestamp",None)
nonce =request.GET.get("nonce",None)
token = TOKEN
tmpArray = [token,timestamp,nonce]
print(tmpArray)
tmpArray.sort()
tmpStr =''.join(tmpArray).encode('utf-8')
tmpStr = hashlib.sha1(tmpStr).hexdigest()
if tmpStr == signature:
return True
else:
return False
5. 认证完后, 可以去公众号开发者中心配置URL 和token.提交成功为止。有issue的可以问我。