用java开发微信公众号:测试公众号与本地测试环境搭建(一)
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/5023678.html
俗话说,工欲善其事,必先利其器。要做微信公众号开发,两样东西不可少,那就是要有一个用来测试的公众号,还有一个用来调式代码的开发环境。
测试公众号
微信公众号有订阅号、服务号、企业号,在注册的时候看到这样的信息,只有订阅号可以个人申请,服务号和企业号要有企业资质才可以。这里所说的微信公众号开发指的是订阅号和服务号。

另外,未认证的个人订阅号有一些接口是没有权限的,并且目前个人订阅号已不支持微信认证,也就是说个人订阅号无法调用一些高级的权限接口,下图就是一个未认证的个人订阅号所具备权限列表,像生成二维码、网页授权、自定义菜单、微信支付这样的接口权限都是不具备的。

说了半天,那如果没有企业资质,又想做高级接口的开发怎么办呢。
微信公众平台提供了测试公众账号,登录地址为:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,只需要到这个页面,点击登录,并用自己的微信客户端扫码,并授权登录,就可以获得属于自己的测试公众号。测试公众号具备几乎所有的接口,平时开发如果没有可用的公众号,就用这个测试的公众号就可以了。
本地测试环境
开发微信公众账号的一大痛苦之处就是调试问题,每次实现一个功能后都需要部署到一个公网服务器,虽然目前有各种免费云平台可以部署,但是调式基本只能靠日志输出了,而且没次修改->部署->查看日志,这样的操作过程非常浪费时间,时间就是生命,这样难道不是在浪费生命吗。那么,有没有办法可以本地部署,本地调试呢?
当然有,因为每次向公众号发送一条指令,公众号所在的服务器要和你的服务器进行网络交互,所以说你的服务器要保证外网可以访问到,那么只需要将你本地映射到一个外网地址即可实现微信公众号的本地调试。提供这样功能的软件不少,比如花生壳,但是要收费的。这里介绍一个免费的软件,ngrok,访问可能需要翻墙。根据本地所需的版本,windows或者linux版,然后注册账号,账号注册成功后,会得到一个免费授权码,这个授权码在第一次启动ngrok时会用到。
以我本地为例,我下载的是windows版本的,下载并解压后,找到解压目录,双击ngrok.exe,第一次启动时,输入如下命令:
ngrok -authtoken 授权码 80
之后再启动,双击ngrok.exe即可,启动后输入命令将本机映射到外网,将本地8080端口下的web服务映射到外网80端口,命令如下:
ngrok http 8080
启动后的界面如下:
红色部分即为映射的外网地址,现在访问这个地址就是访问本地的8080端口。但是免费版的ngrok,生成的外网映射地址是随机的,每次重新启动都会不一样,但其实并无大碍,因为每天ngrok启动一次中途基本不会关闭,每次启动之后,到微信测试公众号管理页面,重新配置一下即可。

截止到目前为止ngrok是可用的,也就是说ngrok服务器虽然被墙了,但是微信公众号服务器是可以访问的,这样一来也就不妨碍我们做本地调式了。只是下载注册ngrok需要翻墙一下。
国内也有一些ngrok服务器,但是没有试过,如果有兴趣可以自行搜索一下。当然如果有能力,可以自己搭建一个ngrok平台,ngrok是go语言实现的,代码已开源到github。
欢迎关注公众号「gushidefengzheng」古时的风筝

还可以加入 Java 微信讨论群(如果二维码过期:请加微信:fengdezitai001 ,备注:cnblogs):
用java开发微信公众号:测试公众号与本地测试环境搭建(一)的更多相关文章
- Java开发微信公众号(四)---微信服务器post消息体的接收及消息的处理
在前几节文章中我们讲述了微信公众号环境的搭建.如何接入微信公众平台.以及微信服务器请求消息,响应消息,事件消息以及工具处理类的封装:接下来我们重点说一下-微信服务器post消息体的接收及消息的处理,这 ...
- Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发
接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...
- Java开发微信公众号(一)---初识微信公众号以及环境搭建
ps:1.开发语言使用Java springMvc+Mybaits+spring maven实现 2.使用微信接口测试账号进行本地测试 https://mp.weixin.qq.com/debug/c ...
- Java开发微信公众号(五)---微信开发中如何获取access_token以及缓存access_token
获取access_token是微信api最重要的一个部分,因为调用其他api很多都需要用到access_token.比如自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等在请求的时候 ...
- Java开发微信公众号(三)---微信服务器请求消息,响应消息,事件消息以及工具处理类的封装
在前面几篇文章我们讲了微信公众号环境的配置 和微信公众号服务的接入,接下来我们来说一下微信服务器请求消息,响应消息以及事件消息的相关内容,首先我们来分析一下消息类型和返回xml格式及实体类的封装. ( ...
- 用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入 (源码下载)
最近研究了下服务号的服务器配置和企业号的回调模式.真正实现完后,觉得很简单,但一开始还是走了点弯路,所以写了个web程序,只用改下配置文件里的参数就可以直接用了.下面介绍下详细的用法以及实现步骤. 本 ...
- Java开发桌面程序学习(一)——JavaFx+Jfoenix初始以及搭建
Java开发桌面程序学习(一)--JavaFx+Jfoenix初始以及搭建 前言 想做一个Java的桌面程序,但是,使用原生的Swing感觉又十分麻烦,那个布局都是拿代码设置,看着十分的乱,偶然的情况 ...
- Java web与web gis学习笔记(一)——Tomcat环境搭建
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- 用java开发微信公众号:公众号接入和access_token管理(二)
本文为原创,原始地址为http://www.cnblogs.com/fengzheng/p/5027630.html 上一篇说了微信开发的准备工作,准备工作完成之后,就要开始步入正题了.其实微信公众号 ...
随机推荐
- HDU 5945 / BestCoder Round #89 1002 Fxx and game 单调队列优化DP
Fxx and game 问题描述 青年理论计算机科学家Fxx给的学生设计了一款数字游戏. 一开始你将会得到一个数\:XX,每次游戏将给定两个参数\:k,tk,t, 任意时刻你可以对你的数执行下面 ...
- 《DSP using MATLAB》示例Example5.21
- webpack2新特性
增加 import() 作为代码分割点:System.import已被弃用,在webpack3时会被完全移除: 内置了json加载器,不再需要单独配置了 当打包文件过大时会提示性能警告,可以用 per ...
- Json格式示意图
json视图工具:http://www.bejson.com/jsonviewernew/ 一.Json格式化,(看到数组里面又有数组一下子疑问不是合格json):尾门地址查询: =>=> ...
- C++常用特性原理解析
在我的早期印象中,C++这门语言是软件工程发展过程中,出于对面向对象语言级支持不可或缺的情况下,一群曾经信誓旦旦想要用C统治宇宙的极客们妥协出来的一个高性能怪咖. 它驳杂万分,但引人入胜,出于多(mi ...
- bzoj1503郁闷的出(cheng)纳(xu)员
好痛苦,,,WA了不知道多少遍 错的服了,,, 如果某员工的初始工资低于工资下界,他将立刻离开公司 我也不知道是我语文有问题还是题目有毒,反正这个东西好像不应该算在离开公司的总人数的答案里... 让我 ...
- HDU 2222 AC自动机模板题
1.HDU 2222 2.题意:给出n个单词,一个字串,求有多少个单词在字串里出现了.注意给出的单词可能会重复,重复的不计. 3.总结:入门题.在查询这里还是不太懂. #include<bits ...
- java分享第十五天(log4j 格式详解)
log4j 格式详解 log4j.rootLogger=日志级别,appender1, appender2, -. 日志级别:ALL<DEBUG<INFO<WARN<ERRO ...
- JVM垃圾收集器
JVM中垃圾的回收由垃圾收集器进行,随着JDK的不断升级,垃圾收集器也开发出了各种版本,垃圾收集器不断优化的动力,就是为了实现更短的停顿. 下面是7种不同的分代收集器,如果两个收集器之间有连线,则表示 ...
- [转]定位占用oracle数据库cpu过高的sql
今天在吃饭的时候我的朋友的数据库出现了问题,cpu占用率为97%,当我看到这个问题的时候我就想到了或许是sql导致的此问题,由于忍不住吃饭,暂时没有帮他看这个问题,这是我饭后自己模拟的故障,进行的分析 ...