大家好,又见面了,我是你们的朋友全栈君。
个人做微信小程序必须考虑到工作量和资金的问题,这篇文章总结出一套针对个人切实可行的方案。本文章重点在抛砖引玉,而不是对各种细节的详细描述。读者可以根据文中提到的各种关键词,查阅相关资料
方案包括
- 在Ubuntu上面使用flask建立web服务器
- 使用花生壳内网穿透
- 使用花生壳提供的带备案信息的域名
- 使用腾讯云提供的免费https证书
- 微信小程序网络连接的注意事项
在Ubuntu上面使用flask建立web服务器
后台可以用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这个函数。而这个函数内部会对访问的域名有所要求:
- 域名必须是有备案的
- 域名必须是https
域名备案一般需要几个星期的时间,而且步骤非常之多。虽然建议读者有空还是去做一个域名的备案,不过这里提出一个替代方案。
花生壳在做内网窜穿透的时候,同时需要申请一个域名。这个域名是花生壳备好案了的,比如我的域名是:
rabienrose.iicp.net:21070
而域名iicp.net是有备案信息的,个人的不同体现在二级域名rabienrose上。
另外如果自己有已经备好案的其他域名的话。可以通过CNAME把自己的域名转接到花生壳的这个域名上。这样就可以使用自己的域名做内网穿透了。不清楚的请自行了解:域名解析CNAME
如果要用自己的域名备案的话,推荐使用域名提供商提供的备案服务。我的域名是阿里云买的,所以就用的阿里云的备案服务。
使用腾讯云提供的免费https证书
https的CA认证才是最花钱的,一般一年要几千到几万元。笔者发现腾讯云提供了一个免费的认证服务。不了解https的请自行搜索:ssl认证。
https://cloud.tencent.com/document/product/400/8421
在验证域名所有权的时候,因为没有对花生壳域名的域名解析设置权限,所以只能采用文件验证这种方式:
https://cloud.tencent.com/document/product/400/4142
不过笔者没有亲自尝试过这种方式,也不确定一定能行。笔者因为自己又备好案的域名,所以用的手动DNS验证。
免费的https证书申请很快,基本一个小时内能通过申请。
申请完后,可以在管理界面中下载证书的文件。参照上面的代码,把证书文件设置到代码中即可。
微信小程序网络连接的注意事项
- 小程序对服务器域名的验证还是很严的。域名需要现在小程序后台中配置后才能使用,而且端口号和二级域名都要一致才行。域名没有备案时,在配置的时候就会提示错误。但是如果https CA证书不对时,只有在使用的时候才报错。
- 小程序的开发在微信提供的小程序开发工具中进行,工具中可以设置在开发版本不进行域名合法性检查。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135121.html原文链接:https://javaforall.cn