序:微信公众平台与微信小程序火的任性,笔者是一位刚入门的初级程序员,是的,刚入门就被与上古教材里没教的微信层层安全认证雷得外焦里嫩。好气哦,所以才有了此文,记录了那些我在用java开发微信的第一步——环境搭建与开发接入时被套路的一幕幕。本文仅代表作者个人观点,用语不妥请尽量克服,如有雷同,来打我啊。
说道微信公众平台(https://mp.weixin.qq.com),平时读做“公众号”,没错,它跟公共汽车一样,所有人想上就上,别的乘客跟我无关。而它一般有三种型号:订阅号、服务号和企业号。什么,微信小程序?那个司机飙车太野,现在改行代驾工作。对于个人开发,订阅号是最好的选择,功能完备,还不担心被交警多次盘查(审核信息)。
因此,在微信公众平台申请了订阅号后,我们可以开始登录,然后进入如下页面:
接下来问题来了:如果你不会java,.net,python,php之类的编程语言,那么使用上图标出的“自动回复”、“自定义菜单”、“素材管理”三大功能依旧能够经营好一个简单的公众号。不够智能怎么办?没关系,只要有高智商的设计师规划好“极品傻瓜式”逻辑来扼杀大傻瓜用户的独创性;有高产似母猪的文秘每天更新来堵住催更党的嘴。怕编程的问题都不存在的。
如果你会任何一个可以写web的编程语言,会用tomcat或者其他平台环境,就可以使用编程语言打开“开发模式”的大门。
那么首先,你需要一台服务器……
诶诶,没有服务器好商量,听我解释下,别急着卖肾……
(讲了一堆域名映射、内网穿透的原理后)总而言之,需要让微信“觉得”你有一台服务器,那么要做的,就是把自己内网的ip映射成外网能够访问的地址,这样的话从本机发布的项目就能被整个互联网访问到了。
所以,更正一下,首先需要有一个可供外网访问的域名(80端口)。
能够实现这点的工具很多,奈何面对Ngrok、花生壳、nat123这些大佬,小的我是伺候不起。不是怕翻个墙、收点费、改点设置什么的麻烦,因为不巧被我看到了natapp这个工具,不用翻墙,不用收费,一步到位,贼6。
生成域名方法如下:
1、先实名注册(https://natapp.cn/register),之后购买一条免费隧道,可以得到一个authtoken,后面要用,先进入下图页面配置;
2、根据实际情况配置本地地址和端口,一般为本机内网ip和项目默认端口;
3、打开tomcat服务器,在后台运行;
4、下载客户端(https://natapp.cn/),解压出exe,在exe所在地,按住shift,然后单击鼠标右键,选择在此处打开命令行窗口;
5、输入命令natapp –authtoken ******(******是第一步中得到的authtoken值)然后就能得到一个随机分配的域名(在一段时间后会重新分配),这就是可以替代localhost:8080的域名了,可以尝试在浏览器访问下(通常会报500错误,因为没有传递参数)。
有了域名后,下一步是成为微信开发者,左侧有开发选项,就不细讲了。成为开发者的标志是有一个appID和appsecret。再填一个IP白名单,手续就办完了。这里的ip是外网的ip,不要迷之自信地填什么192.168.1.1,去查一下(http://ip.qq.com)不会死人的。
之后,就是配置信息认证了。这是需要用到编程的一步,方法如下:
1、熟悉官方开发者文档说明;
2、新建一个普通web项目,可以用maven支持,可以使用springmvc,为了方便说明,本例中我用servlet完成;
3、写一个servlet,用于接收与传递参数。(可以改用springmvc)注意这里的token内容和微信平台上要写的token内容可以随便定义,但两者需保证一样;
4、写一个校验类,包含一个比较方法和一个加密方法;
5、比较方法按照说明文档给的步骤来写,加密方法使用Sha1,网上有相应方法代码;
6、在web.xml中进行配置,注意这里的路径连带项目名会体现在url中。
7、将项目部署在tomcat上,需同时开启tomcat和natapp,提交申请。
如果没有问题审核成功,开发的环境就基本配置好了。之后,聪明的人会选择申请一个开发测试号,而自以为聪明的人就直接用前面申请的订阅号开发了。过一会儿,那些自以为是的人会感叹:我这个英雄为什么没有大招?我这个接口为什么没有权限?为什么还要账号认证?为什么还要花300大洋?然后只能乖乖回去申请开发测试号。不要问我为什么知道这些。
接下来就是漫长的个性化开发了,此处省略6666字……