微信開發本地內網調試方法 轉

  • 2019 年 10 月 8 日
  • 筆記

簡介

  • 由於微信瀏覽器中獲取用戶信息的回調地址必須是已經ICP備案的域名。這樣就導致無法本地開發比較麻煩,解決方案為內網穿透,如ngrok(二級域名每次啟動會變化)、花生殼(需要支付8元)、NATAPP(和ngrok類似,本文使用)。
  • 本程序基於微信開發者工具完成調試

NATAPP使用

  • 註冊NATAPP並實名認證
  • 購買隧道 – 免費隧道 – Web(端口80)- 購買之後可在我的隧道中查看 – 複製authtoken
  • 下載NATAPP客戶端natapp.exe
  • 在客戶端根目錄cmd運行natapp -authtoken=上文提到的authtoken。命令行會出現類似Forwarding http://smalle.natappfree.cc -> 127.0.0.1:80的顯示。(表示訪問在瀏覽器中訪問http://smalle.natappfree.cc時相當於本地訪問127.0.0.1:80)
    • 或者寫入xxx.bat文件快速啟動:D:/software/natapp.exe -authtoken=12347dc3f25a1234

啟動本地web項目

本地項目是基於nginx反向代理服務器實現(apache也可)

  • 下載nginx並安裝,配置nginx.conf文件,如: server { listen 80; server_name localhost; location / { root C:/Users/smalle/Desktop/web; index index.html index.htm; }
  • 將web項目拷貝到配置中的root路徑
  • 啟動nginx(此時可通過http://127.0.0.1或http://smalle.natappfree.cc訪問)

配置回調地址

  • 微信後台 – 公眾號設置 – 功能設置 – 網頁授權域名
  • 將類似MP_verify_2DCaFsV02WRKw123.txt的文件下載到root路徑下
  • 地址欄中填寫xyabcd.natappfree.cc(不需要http://)保存即可

擴展:關於前後分離

  • 如果api和web項目分別部署,如web是用nginx靜態服務器,api使用PHP/Java完成。就回出現跨域問題,此處可在nginx中再次配置後台api的轉發 location /api/ { proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://127.0.0.1:8080; break; } }
    • web項目中認證請求js如:http://smalle.natappfree.cc/api/auth?code=021GT83e1ucjUu035F0e1Ttg3e1GT812就會被轉發到http://127.0.0.1:8080/api/auth?code=021GT83e1ucjUu035F0e1Ttg3e1GT812 var url = "http://smalle.natappfree.cc/api/auth?code=" + code; $.get(url, function(res) { console.log(res); });

相關文章:服務號使用微信網頁授權(H5應用等)