本地如何調試微信接口

原文鏈接:http://blog.csdn.net/xyang81/article/details/52141881

在做微信開發的時候,調用微信接口成功之後,微信會回調我們事先配置好的一個接口。由於微信的服務是在外網的,所以這個回調接口也只能是外網,而且微信要求回調接口只能是通過ICP備案的域名,不能使用IP。所以在開發調試的時候,需要把代碼部署到線上的服務器,通過打log來跟蹤接口調用情況,很明顯這樣開發效率非常低。下面介紹兩款工具(natapp和sunny-ngrok)來解決這個問題,將本機的IP和端口映射到外網指定的域名下,通過訪問映射的外網域名就可以直接訪問到本機的服務。

1、natapp(免費/收費模式)

1> 首先在官網下載natapp客戶端

客戶端下載
解壓後得到一個natapp/natapp.exe執行程序,Linux/Mac 系統 需要 添加執行權限:chmod a+x natapp

2> 運行

打開終端,在命令行中直接運行./natapp即可。運行成功後會進入如下界面:
natapp
從上圖中可以看出,轉發那行顯示了外網域名到本機的端口映射關係。在外網訪問http://3c8db5aa.ngrok.natapp.cn就可以將請求轉發到本地80端口對應的服務上了。當然你需要在本機裝一個監聽80端口的web服務,比如:nginx、apache、iis。如果你是用Tomcat等應用服務器,端口也不是80的話,需要在nginx上再做一個反向代理配置,轉換到tomcat對應的端口上。

location / {
proxy_pass http://localhost:8080;
}
1
2
3
1
2
3
訪問http://127.0.0.1:4040可以監控請求路徑、請求頭和響應頭等日誌信息。

通過以上的操作,就完成了外網訪問本機服務的工作。

3> 指定映射端口

natapp默認只能映射本機的80端口,如果要映射到指定端口,你需要在natapp官網註冊一個帳號,併購買一個免費或收費的隧道,來配置映射到指定的端口上。操作流程如下圖所示:
購買隧道
購買免費隧道

將本地端口修改成你需要映射的端口號,點擊免費購買後回到我的隧道列表中,複製authtoken列對應的值。

隧道列表

運行:./natapp -authtoken=xxxxxx即可在控制檯看到剛剛配置的自定義端口和域名的映射信息。如下圖所示:

自定義端口映射
通過http://3c8db5aa.ngrok.natapp.cn/jingtong地址就可以訪問到我本機8080端口tomcat部署的應用 jingtong 了。如下圖所示:
訪問外網域名映射到本地服務效果

但是免費的隧道有幾點限制:
1> 域名是natapp隨機生成的
2> 每個協議只能購買一個隧道,即每個協議只能映射一個端口
3> 只能映射一條隧道(一個轉發域名)(sunny-ngrok可以映射多條隧道)
但也已經夠用了,不是嗎?

說了這麼多,你應該知道怎麼調試微信接口了吧? 只需要將natapp隨機生成的域名,配置到微信的回調參數配置中即可。因爲ngrok.natapp.cn域名是通過了ICP備案的,所以natapp隨機生成的三級域名在微信當中都是可以通過驗證的。

2、sunny-ngrok(完全免費模式)

sunny-ngrok配置稍微麻煩一點,需要有自己的域名。

1> 在sunny-ngrok註冊一個帳號

2> 添加隧道

登錄個人中心,新增一條隧道
添加隧道
參數解讀:
隧道協議:支持http、https、tcp端口轉發
隧道名稱:名字隨意
http域名類型:選擇自定義
域名或遠程端口:填寫自己的在外網訪問的域名
本地地址:本機IP或127.0.0.1
本地端口:本機web服務的端口
http驗證用戶名和http驗證密碼:訪問域名時用戶名密碼校驗,如果不需要校驗可以不填
隧道列表

3> 自定義域名解析到server.ngrok.cc

需要將自定義的域名在域名管理服務商,將自定義域名用CNAME類型解析到server.ngrok.cc,才能提供服務。

4> 發佈內網服務到外網

從隧道列表中,拷貝剛剛創建的客戶端ID,執行:./sunny clientid 客戶端ID1,客戶端ID2,多個客戶端ID用逗號分隔。效果如下圖所示:
這裏寫圖片描述

訪問http://weixin.digi-zones.com效果,和natapp訪問的效果一致。如下圖所示:

這裏寫圖片描述

3、小結

sunny-ngrok:

1> 完全免費
2> 可以定義多條隧道
3> 可以完全自定義域名
4> 需要自己申請域名並備案(算是一個缺點吧)

natapp:

1> 基本免費,高級功能收費(如自定義域名)
2> 免費版每個協議只能申請一條隧道
3> 域名隨機生成,不能完全自定義域名。收費版也只能修改域名的前綴
4> 不需要單獨申請域名(優點)
5> 運行簡單,下載執行程序直接運行即可,默認監聽80端口。如果要監聽其它端口,沒有註冊帳號的前提下,需要用web服務器做反向代理


3

0

上一篇Tomcat單機多實例配置
下一篇Linux靜態IP配置
我的同類文章
其它(3)
•Maven安裝與環境配置(Windows)2016-05-24閱讀4054
•Git使用詳解2012-10-14閱讀1810
•Cocos2d-x 3.0 beta 中加入附加項目,解決無法打開包括文件:“extensions/ExtensionMacros.h”: No such file or directory”2014-08-21閱讀1437

參考知識庫
img
微信開發知識庫
17488關注|707收錄
img
.NET知識庫
2885關注|815收錄
img
Linux知識庫
9266關注|3511收錄
猜你在找
最漲薪的技能-PHP微信接口開發C#開發微信訂閱號、服務號視頻教程微信公衆號訂閱號+服務號開發工具包[微信公衆號獨立知識點]微信公衆平臺——客服接口(主動推送)UML建模技術
內網ip映射到外網應用實現發佈內網網站等應用ngrok映射本地8080端口到外網自己電腦發佈網站到外網實現過程用自己電腦做服務器發佈Java項目到外網ubuntu單網卡綁定多IP 解決ubuntu下用局域網時不能連接到外網問題

查看評論
3樓 mking 2016-11-04 01:05發表 [回覆]

謝謝,natapp真是太好用了!!
2樓 qq_26904155 2016-10-29 10:41發表 [回覆]

無法映射本地8080端口;修改了好幾次都不行?這是爲啥
Re: xyang0917 2016-10-29 22:49發表 [回覆]

回覆qq_26904155:本機的8080服務啓動了嗎? 有沒有錯誤提示信息?
1樓 sinat_29185819 2016-10-20 09:57發表 [回覆]

E:\藍橋程序\natapp>./natapp -authtoken=f84ab98c2b714734
‘.’ 不是內部或外部命令,也不是可運行的程序

咋回事
Re: xyang0917 2016-10-21 09:14發表 [回覆]

回覆sinat_29185819:把前面的./去掉
Re: sinat_29185819 2016-10-21 09:16發表 [回覆]

回覆xyang0917:ok 了感謝
發表評論
用 戶 名:
xueling022
評論內容:
插入代碼

提交
* 以上用戶言論只代表其個人觀點,不代表CSDN網站的觀點或立場
核心技術類目
全部主題 Hadoop AWS 移動遊戲 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 數據庫 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 雲計算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大數據 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
個人資料
訪問我的空間
xyang0917

1 2
訪問:488107次
積分:6100
等級:
排名:第3226名
原創:102篇轉載:18篇譯文:0篇評論:323條
博客專欄
JNI/NDK開發指南
文章:14篇
閱讀:103122
文章搜索

搜索
文章分類
C(10)
C++(2)
Android(13)
JavaSE(26)
JavaEE(11)
JNI/NDK(14)
Web開發(5)
研發管理(0)
IOS(1)
Linux(8)
數據庫(10)
數據結構與算法(3)
JavaMail(7)
DevOps(2)
nginx(5)
mysql(6)
分佈式開發(12)
redis(5)
其它(4)
Zookeeper(4)
文章存檔
2016年11月(4)
2016年10月(5)
2016年09月(5)
2016年08月(1)
2016年07月(10)
展開
閱讀排行
深入分析Java ClassLoader原理(43937)
短信貓JAVA二次開發包SMSLib,org.smslib.TimeoutException: No response from device解決方案(20132)
JavaMail學習筆記(七)、帳號激活與忘記密碼 實例(16745)
Android NDK開發Crash錯誤定位(14055)
如何手工卸載和安裝NTKO OFFICE文檔控件(12641)
JavaMail學習筆記(四)、使用POP3協議接收並解析電子郵件(全)(11825)
JNI/NDK開發指南(開山篇)(10486)
JNI/NDK開發指南(一)—— JNI開發流程及HelloWorld(10460)
SMSLib開發指南(10380)
JNI/NDK開發指南(六)——C/C++訪問Java實例方法和靜態方法(10227)
評論排行
JavaMail學習筆記(七)、帳號激活與忘記密碼 實例(60)
深入分析Java ClassLoader原理(55)
短信貓JAVA二次開發包SMSLib,org.smslib.TimeoutException: No response from device解決方案(28)
JNI/NDK開發指南(開山篇)(24)
SMSLib開發指南(18)
JNI/NDK開發指南(一)—— JNI開發流程及HelloWorld(15)
Android NDK開發Crash錯誤定位(11)
JNI/NDK開發指南(七)——C/C++訪問Java實例變量和靜態變量(10)
JNI/NDK開發指南(十)——JNI局部引用、全局引用和弱全局引用(9)
JNI/NDK開發指南(六)——C/C++訪問Java實例方法和靜態方法(8)
最新評論
Redis集羣技術架構
Nex_Chin: 樓主這個redis系列的文章,寫的很清晰,對於剛接觸的人很收益,感謝!
分佈式服務管理框架-Zookeeper安裝與配置(單機、集羣)
張思思: 寫的很細緻
FastDFS與Springboot集成
張思思: 謝謝分享
FastDFS分佈式文件系統集羣安裝與配置
張思思: 講解的很細緻
JavaMail學習筆記(四)、使用POP3協議接收並解析電子郵件(全)
懷惗尛時候: 郵件正文:testtest多了後面那一段 爲什麼會這樣
Tomcat配置與優化(內存、併發、管理)
qq_34995461: 寫的很好!謝謝了!
十進制轉換成二進制、八進制、十六進制的通用方法
趙盡朝: 理解了進制之間轉換的規律
深入分析Java ClassLoader原理
趙盡朝: 謝謝樓主詳細講解。
MySQL主主數據同步
趙盡朝: 之前搭過主從,但是沒有
分佈式服務管理框架-Zookeeper安裝與配置(單機、集羣)
cmjzzx: 節點的 clientPort 設爲 2181,接下來又是192.168.1.200:2888:388…

公司簡介|招賢納士|廣告服務|聯繫方式|版權聲明|法律顧問|問題報告|合作伙伴|論壇反饋
網站客服雜誌客服微博客服[email protected]|北京創新樂知信息技術有限公司 版權所有|江蘇知之爲計算機有限公司|江蘇樂知網絡技術有限公司
京 ICP 證 09002463 號|Copyright © 1999-2016, CSDN.NET, All Rights Reserved GongshangLogo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章