个人做微信小程序必须考虑到工作量和资金的问题,这篇文章总结出一套针对个人切实可行的方案。本文章重点在抛砖引玉,而不是对各种细节的详细描述。读者可以根据文中提到的各种关键词,查阅相关资料
后台可以用java,php等。但考虑到个人开发,这里选择python。因为python可以快速搭建带调试功能的开发环境,也是大多个人开发者最熟悉的语言。
开发环境使用pycharm的community版本,操作系统Ubuntu 16.06。
使用flask模块提供的http server功能,不用单独安装环境,和普通的python程序无区别。查看下面代码了解具体使用方法:
https://github.com/rabienrose/listening_training/blob/master/server/app.py
在初期研发阶段,使用远程的服务器不仅需要一定的费用,而且各种配置也添加的工作量。所以这里采用本地运行服务器程序,毕竟在本地操作要方便很多。
本地计算机一般只有内网ip,这里使用花生壳提供的内网穿透功能。具体原理是在本地运行一个后台程序,小程序和花生壳的服务器相互通行。也就是把后台程序运行的这台机器和一个花生壳提供的域名绑定在一起。外部访问这个域名的时候,就知道这是要访问后台程序所在的这台机器。
详情见:https://hsk.oray.com/
微信小程序和服务端的通行只能通过微信提供的wx.request这个函数。而这个函数内部会对访问的域名有所要求:
域名备案一般需要几个星期的时间,而且步骤非常之多。虽然建议读者有空还是去做一个域名的备案,不过这里提出一个替代方案。
花生壳在做内网窜穿透的时候,同时需要申请一个域名。这个域名是花生壳备好案了的,比如我的域名是:
rabienrose.iicp.net:21070
而域名iicp.net是有备案信息的,个人的不同体现在二级域名rabienrose上。
另外如果自己有已经备好案的其他域名的话。可以通过CNAME把自己的域名转接到花生壳的这个域名上。这样就可以使用自己的域名做内网穿透了。不清楚的请自行了解:域名解析CNAME
如果要用自己的域名备案的话,推荐使用域名提供商提供的备案服务。我的域名是阿里云买的,所以就用的阿里云的备案服务。
https的CA认证才是最花钱的,一般一年要几千到几万元。笔者发现腾讯云提供了一个免费的认证服务。不了解https的请自行搜索:ssl认证。
https://cloud.tencent.com/document/product/400/8421
在验证域名所有权的时候,因为没有对花生壳域名的域名解析设置权限,所以只能采用文件验证这种方式:
https://cloud.tencent.com/document/product/400/4142
不过笔者没有亲自尝试过这种方式,也不确定一定能行。笔者因为自己又备好案的域名,所以用的手动DNS验证。
免费的https证书申请很快,基本一个小时内能通过申请。
申请完后,可以在管理界面中下载证书的文件。参照上面的代码,把证书文件设置到代码中即可。