微信公众号开发实践(一)准备阶段

最近在看一本书《微信公众平台开发最佳实践》,想学习一下公众平台开发。下一步就打算学习小程序,进而研究公众平台和小程序的接合使用。因为本人是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版提供了一键启动脚本!直接启动即可(其它版本没有脚本)       

微信公众号开发实践(一)准备阶段_第1张图片

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的可以问我。

你可能感兴趣的:(微信公众号开发实践(一)准备阶段)