java微信公眾號開發(fā)(搭建本地測試環(huán)境)
俗話說,工欲善其事,必先利其器。要做微信公眾號開發(fā),兩樣東西不可少,那就是要有一個用來測試的公眾號,還有一個用來調式代碼的開發(fā)環(huán)境。
測試公眾號
微信公眾號有訂閱號、服務號、企業(yè)號,在注冊的時候看到這樣的信息,只有訂閱號可以個人申請,服務號和企業(yè)號要有企業(yè)資質才可以。這里所說的微信公眾號開發(fā)指的是訂閱號和服務號。
另外,未認證的個人訂閱號有一些接口是沒有權限的,并且目前個人訂閱號已不支持微信認證,也就是說個人訂閱號無法調用一些高級的權限接口,下圖就是一個未認證的個人訂閱號所具備權限列表,像生成二維碼、網頁授權、自定義菜單、微信支付這樣的接口權限都是不具備的。
說了半天,那如果沒有企業(yè)資質,又想做高級接口的開發(fā)怎么辦呢。
微信公眾平臺提供了測試公眾賬號,登錄地址為:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,只需要到這個頁面,點擊登錄,并用自己的微信客戶端掃碼,并授權登錄,就可以獲得屬于自己的測試公眾號。測試公眾號具備幾乎所有的接口,平時開發(fā)如果沒有可用的公眾號,就用這個測試的公眾號就可以了。
本地測試環(huán)境
開發(fā)微信公眾賬號的一大痛苦之處就是調試問題,每次實現(xiàn)一個功能后都需要部署到一個公網服務器,雖然目前有各種免費云平臺可以部署,但是調式基本只能靠日志輸出了,而且沒次修改->部署->查看日志,這樣的操作過程非常浪費時間,時間就是生命,這樣難道不是在浪費生命嗎。那么,有沒有辦法可以本地部署,本地調試呢?
當然有,因為每次向公眾號發(fā)送一條指令,公眾號所在的服務器要和你的服務器進行網絡交互,所以說你的服務器要保證外網可以訪問到,那么只需要將你本地映射到一個外網地址即可實現(xiàn)微信公眾號的本地調試。提供這樣功能的軟件不少,比如花生殼,但是要收費的。這里介紹一個免費的軟件,ngrok,訪問可能需要FQ。根據(jù)本地所需的版本,windows或者linux版,然后注冊賬號,賬號注冊成功后,會得到一個免費授權碼,這個授權碼在第一次啟動ngrok時會用到。
以我本地為例,我下載的是windows版本的,下載并解壓后,找到解壓目錄,雙擊ngrok.exe,第一次啟動時,輸入如下命令:
ngrok -authtoken 授權碼 80
之后再啟動,雙擊ngrok.exe即可,啟動后輸入命令將本機映射到外網,將本地8080端口下的web服務映射到外網80端口,命令如下:
ngrok http 8080
啟動后的界面如下:
紅色部分即為映射的外網地址,現(xiàn)在訪問這個地址就是訪問本地的8080端口。但是免費版的ngrok,生成的外網映射地址是隨機的,每次重新啟動都會不一樣,但其實并無大礙,因為每天ngrok啟動一次中途基本不會關閉,每次啟動之后,到微信測試公眾號管理頁面,重新配置一下即可。
截止到目前為止ngrok是可用的,也就是說ngrok服務器雖然被墻了,但是微信公眾號服務器是可以訪問的,這樣一來也就不妨礙我們做本地調式了。只是下載注冊ngrok需要FQ一下。
國內也有一些ngrok服務器,但是沒有試過,如果有興趣可以自行搜索一下。當然如果有能力,可以自己搭建一個ngrok平臺,ngrok是go語言實現(xiàn)的。
以上就是用java開發(fā)微信公眾號實現(xiàn)了公眾號測試與本地測試環(huán)境搭建,希望對大家的學習有所幫助。
- java微信公眾號企業(yè)付款開發(fā)
- Java版微信公眾號支付開發(fā)全過程
- 微信公眾號開發(fā)之設置自定義菜單實例代碼【java版】
- java微信公眾號支付開發(fā)之現(xiàn)金紅包
- 微信公眾號開發(fā)之回復圖文消息java代碼
- Java微信公眾號開發(fā)之通過微信公眾號獲取用戶信息
- java微信公眾號開發(fā)案例
- 用Java設計模式中的觀察者模式開發(fā)微信公眾號的例子
- java微信公眾號開發(fā)第一步 公眾號接入和access_token管理
- Java開發(fā)微信公眾號接收和被動回復普通消息
- java開發(fā)微信公眾號支付
- Java 微信公眾號開發(fā)相關總結
相關文章
Java?嵌入數(shù)據(jù)引擎從?SQLite?到?SPL詳解
這篇文章主要介紹了Java?嵌入數(shù)據(jù)引擎:從?SQLite?到?SPL,SQLite架構簡單,其核心雖然是C語言開發(fā)的,但封裝得比較好,對外呈現(xiàn)為一個小巧的Jar包,能方便地集成在Java應用中,本文給大家介紹的非常詳細,需要的朋友參考下2022-07-07Java多線程中的ReentrantLock可中斷鎖詳細解讀
這篇文章主要介紹了Java多線程中的ReentrantLock可中斷鎖詳細解讀,ReentrantLock中的lockInterruptibly()方法使得線程可以在被阻塞時響應中斷,比如一個線程t1通過lockInterruptibly()方法獲取到一個可重入鎖,并執(zhí)行一個長時間的任務,需要的朋友可以參考下2023-12-12解決@ConfigurationProperties注解的使用及亂碼問題
這篇文章主要介紹了解決@ConfigurationProperties注解的使用及亂碼問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10深入分析Android系統(tǒng)中SparseArray的源碼
這篇文章主要介紹了深入分析Android系統(tǒng)中SparseArray的源碼,SparseArray為Java實現(xiàn),需要的朋友可以參考下2015-07-07navicatdesignquery.sql.bak系統(tǒng)找不到指定路徑錯誤的解決方法
今天小編就為大家分享一篇關于navicatdesignquery.sql.bak系統(tǒng)找不到指定路徑錯誤的解決方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12