大家好,又見面了,我是你們的朋友全棧君。
個人做微信小程式必須考慮到工作量和資金的問題,這篇文章總結出一套針對個人切實可行的方案。本文章重點在抛磚引玉,而不是對各種細節的較長的描述。讀者可以根據文中提到的各種關鍵詞,查閱相關資料
方案包括
- 在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