利用NATAPP隧道解决微信公众号开发之本地调试难题
一、问题
众所周知,微信公众号开发需要公网的有效域名和80端口,本机当然互联网是访问不了的。那么我们难道去一个公网的服务器去开发吗?那样是不是太土了。
答案当然是,NO
当然我们在做微信支付的时候,有些URL需要域名进行备案了,那么我们首先需要准备一个域名,并且通过的备案,我这里是阿里的一个域名smartbi.club
已经个人备案成功,ICP可查
二、解决问题
2.1、准备条件
硬件:笔记本
软件:Tomcat+NATAPP软件https://natapp.cn+通过备案的域名
注册一个natapp账号
2.2、在natapp购买一个隧道
登录natapp账号,购买一个VIP_1的隧道,因为只有付费的隧道才支持自定义域名,那么我就选一个最便宜的

2.3、选择自主域名,添加已备案域名
如下图,填写我们的域名,如我的smartbi.club,系统会调用工信部接口进行验证,如下图,我的是通过的

2.4、修改隧道配置,绑定自主域名
如下图,进入natapp,点击我的隧道,选择VIP_1隧道,点击配置

进入设置,如下图把我们的自主域名smartbi.club绑定到隧道中,注意必须是我们已经授权的域名

2.5、将要绑定的域名CNAME 解析 到 s1.natapp.cc
这一步需要到我们的域名服务商哪里,比如我的域名是阿里云的就去阿里云的域名控制台操作,如下图,千万要
记得操作这一步

CNAME成功的话,ping域名会跳转到s1.natapp.cc,如下图所示

2.6、启动服务进行测试
首先启动Tomcat服务,用80端口启动,确保localhost访问到Tomcat,如下图

其次进入 natapp的解压目录C:\Users\king\Desktop\natapp_windows_amd64_2_3_8,运行natapp.exe,如下图,我们需要CMD在natapp的根目录执行命令natapp -authtoken=authtoken的值 , authtoken的值在natapp账户中我们买的隧道中查看

点击回车,隧道服务启动成功,可以看到是根据我们的自主域名启动的隧道

访问测试,这个时候访问http://smartbi.club我们发现,可以访问到我们自己笔记本的Tomcat了,说明开启隧道成功,如下图所示,这里为了区分我把Tomcat默认主页的HOME改为了King Local Home

2.7、测试一下微信支付中的认证
如下图,可以看到微信支付中的认证成功,接下来就可以在本机开发和调试微信支付相关接口了

需要注意的是,我们运行隧道服务的窗口不能关闭,具体可以去官网natapp.cn查看开机启动natapp的相关操作,或者是让cmd在后台运行,
避免误操作关闭。如果是窗口化运行隧道服务,窗口关闭则隧道服务关闭,如下图,我们访问域名的时候,这里可以监听到访问请求

利用NATAPP隧道解决微信公众号开发之本地调试难题的更多相关文章
- 微信公众号开发 VS2015本地调试
1.部署一个微信公众号服务在本地IIS: 2.下载一个ngrok 穿网工具,放到部署文件夹根目录: ngrok穿网 在部署路径下打开cmd,输入 ngrok http [端口号] 4.将映射的URL ...
- .NET C#微信公众号开发远程断点调试(本地远程调试生产环境代码)
最近在做微信公众号开发,由于之前没有接触过,突然发现调试不方便,不方便进行断点跟踪调试.因为微信那边绑定的服务器地址必须是公网地址,但是还是想进行断点调试(毕竟这样太方便了,程序有Bug,一步步断点跟 ...
- 微信公众号开发系统入门教程(公众号注册、开发环境搭建、access_token管理、Demo实现、natapp外网穿透)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a1786223749/article/ ...
- 微信公众号开发之内网映射外网natapp安装(一)
一,为什么使用natapp 1,在进行微信公众号开发时,我们需要搭建网站,并且随时都有可能修改网站内容进行调试.如果能够将内网ip映射到外网上,将大大方便我们的调试.每次发布只需eclipse运行应用 ...
- 利用OpenShift托管Node.js Web服务进行微信公众号开发
最近写了一个微信的翻译机器人.用户只要关注该公众号,发送英文的消息,就能收到中文翻译的回复.有兴趣的读者可以扫描下面的二维码关注该公众号,尝试发送英文单词试试看.(有时候第一次发送单词会收到“该公众号 ...
- 微信公众号开发C#系列-2、微信公众平台接入指南
概述 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微信服务器将接收到的消息post到用户接入时填写的url中,在url处理程序中,首先 ...
- 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转
线程安全使用(四) 这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...
- 微信公众号开发系列-13、基于RDIFramework.NET框架整合微信开发应用效果展示
1.前言 通过前面一系列文章的学习,我们对微信公众号开发已经有了一个比较深入和全面的了解. 微信公众号开发为企业解决那些问题呢? 我们经常看到微信公众号定制开发.微信公众平台定制开发,都不知道这些能给 ...
- NET微信公众号开发-5.0微信支付(待测试)
开发前准备. 1.0微信支付官方开发者文档 2.0官方demo下载 我们用c#所以选择.net版本 不过这个官方的demo根本跑步起来 3.0官方demo运行起来解决方案 4.0微信支付官方.net版 ...
随机推荐
- 高性能server分析 - Hadoop的RpcServer
一.Listener Listener线程,当Server处于运行状态时,其负责监听来自客户端的连接,并使用Select模式处理Accept事件. 同时,它开启了一个空闲连接(Idle Connect ...
- Consul + fabio 实现自动服务发现、负载均衡 - DockOne.io
Consul + fabio 实现自动服务发现.负载均衡 - DockOne.io http://dockone.io/article/1567
- iOS十进制切割格式转换
//@"123456789" 转换后 @"123,456,789" @interface NSString (num) - (NSString *)money; ...
- Revit API取得系统族普通族几何信息的方法
系统族,可以直接转化为对应的类(Wall,Duct)然后取得几何信息,普通族需要转化为FamilyInstance )) { TaskDialog.Show() ...
- 使用Application.GetResourceStream方法加载资源时得到的总是null
我们可以预先把程序中用到的资源,如图片,音乐等放入项目中,打包进XAP文档,需要的时候从中调用.下面就说说具体实现方法. 第一步,把数据存进项目. 1.右键点击项目名称-添加-新建文件夹(英文版请自行 ...
- android ActionBarImpl can only be used with a compatible window decor layout
在Activity中添加 requestWindowFeature(Window.FEATURE_ACTION_BAR); requestWindowFeature(Window.FEATURE_AC ...
- Linux的命名空间详解--Linux进程的管理与调度(二)
转自:http://blog.csdn.net/gatieme/article/details/51383322 日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux- ...
- CCLabelAtlas的宽度为奇数时的显示bug
遇到一个很郁闷的bug,CCLabelAtlas设置文字内容在ipad上和android上正常,就只有iphone怎么显示都不正常.后来把它宽度 + 1,然后就正常了.发现以前宽度设置为21px.23 ...
- Orchard模块开发全接触3:分类的实现及内容呈现(Display)
一:分类用现有技术怎么实现? 实际就是创建 Query 和 Projection,如果不知道怎么做,参考:Orchard之在前台显式一个属于自己的列表(在这篇里,还进行了稍稍拓展),当然,基础的知道, ...
- SVG渲染顺序及z轴显示问题(zIndex)
SVG是严格按照定义元素的顺序来渲染的,这个与HTML靠z-index值来控制分层不一样. 在SVG中,写在前面的元素先被渲染,写在后面的元素后被渲染.后渲染的元素会覆盖前面的元素,虽然有时候受透明度 ...