微信公众号开发使用测试号 一直提示管理失败
只需要三个步骤就可以搞定
1:在微信的测试公众平台填写服务器地址URL和Token.
2:在自己的服务器写个简单的controller, 返回微信请求的信息
3:在页面上点击提交 , 微信平台会请求你填写的服务器地址 , 你的服务器正确响应微信的请求
具体方式如下:
URL必须是外网能够访问到的服务器地址, 而且必须是80端口, 我们大多是本地开发, 如何把内网映射出去呢 , 我通常使用两种比较简单的方法,
在浏览器输入192.168.1.1进入路由器, 配置虚拟服务器, 把自己的服务器端口映射到外网的80端口 , 可以看到我本地的服务器端口是8080, 我本机的ip是1.192.192.162, 那么我的服务器地址就是http://1.192.192.162:80/wxoksan/(wxoksan 是项目名) ,url应该填写为:http://1.192.192.162:80/wxoksan/sign/test 详细配置见下图
ngrok这个工具小巧精干, 不用安装, 关键还是免费的, 没有这个软件的可以点击链接进行下载, 下载地址:https://download.csdn.net/download/qq_34096082/10359943 下载完之后进行简单的配置就可以使用了, 将压缩包解开, 放到D盘, 找到apps.bat文件, 击右键编辑, 如下图所示, 把项目名和项目端口改成自己的, 然后保存关闭, 然后双击打开会弹出一个黑窗口, 黑窗口显示的域名就是映射出去的网址, 在这个网址之后加上自己的服务器的名称
http://wxoksan.tunnel.qydev.com/wxoksan
接口配置的url应该为: http://wxoksan.tunnel.qydev.com/wxoksan/sign/test
直接上代码, 微信通过get的方式会请求你第一步中填写的服务器地址, 并且携带三个参数signature, nonce, echostr, timestamp , 只需要把微信请求的参数echostr, 返回给微信就可以了
/**
* @progectName app_access
* @packageNmae com.lc.apps.controller
* @ClassName: GetWxSginController
* @Description: TODO(微信相关的请求)
* @author MaPengFei
* @date 2018-4-10 下午5:46:01
* @version V1.0
*
*/
@Controller
@RequestMapping("/sign")
public class GetWxSginController {
private static Logger logger = LoggerFactory.getLogger(GetWxSginController.class);
@ResponseBody
@RequestMapping(value = "/test", method = RequestMethod.GET, produces = { "application/json;charset=utf-8" })
@ApiOperation(value = "测试微信公众号的接口配置信息", notes = "接口配置信息", httpMethod = "GET")
public String getWxUserInfo(HttpServletRequest request,
@ApiParam(value = "微信求的 echostr") @RequestParam(required = true) String echostr
) {
try {
//只需要把微信请求的 echostr, 返回给微信就可以了
logger.info("测试来过===================" + echostr);
return echostr;
} catch (Exception e) {
logger.info("测试微信公众号的接口配置信息发生异常:", e);
return MsgProcess.packJson(ResponseConstants.REQ_DATA_ERROR,
"系统异常!");
}
}
}
测试一下, 只要第一步和第二步正确 , 微信测试公众号会直接支配成功
这个网址需要配置自己服务器的地址, 但是这个地址是有要求的, 必须是外网能访问的地址, 而且端口必须是80端口