1.公众号浅谈
1)目前公众号类型分为两种:服务号和订阅号,2013年8月5日平台更新后所有的帐号默认为订阅号,有一次转换成服务号的机会;
2)服务号主要面向企业、政府和其他组织,而订阅号主要面向媒体和个人;
3);
4)服务号每月只能群发一条消息,而订阅号每天能群发一条消息。
在微信5.0以前,自定义菜单是作为一种内测资格使用的,只有少数公众帐号拥有菜单,因此出现很多企业为了弄到菜单不惜重金求购。现如今,一大批帐号从订阅号转为服务号,很多都是奔着自定义菜单去的。
2.开发准备
2.1 原理了解
本文第一讲,主要讲解如何搭建微信公众号开发环境,以及连接微信服务器,想要开发上更轻松,原理一定要先搞清楚。用户与公众号之间的信息交互是:用户发送的信息是先传送到微信服务器,微信服务器在以xml的格式发送给进行公众号

2.2 账号准备
具体申请流程此处略过,百度一下有人教你怎样一步一步申请的,不过,个人账号什么的限制太多,而其他又要求营业执照等,太麻烦,所以如果是小白只是想学一下的话,可以申请一个测试号,微信公众号平台


用户登录后页面如下,至此账号准备完毕

2.3开发环境准备
工欲善其事,必先利其器,选择好的工具可以节省大部分开发时间,本次教程使用工具如下:
2.3.1开发环境
1)开发工具:IntelliJ IDEA 2017.3.5 x64
2)环境平台:JDK1.9
3)后端框架:SpringBoot2.1.3
2.3.2调试环境
1)在进行微信公众号开发时,我们需要搭建网站,并且随时都有可能修改网站内容进行调试。如果能够将内网ip映射到外网上,将大大方便我们的调试。每次发布只需重启项目即可。
2)本次教程通过natapp(还有其他映射工具)将内网映射到外网,还可以方便我们其他工作,比如外网展示网站等。
2.3.2.1注册natApp
natapp官网地址:https://natapp.cn/,用户注册后进入如下配置页面:

2.3.2.2 下载natapp
1)如下图下载对应的版本,本次教程下载Windows64位

2)然后在natapp同目录文件夹下创建config.ini配置文件

配置文件内容如下:
将本文件放置于natapp同级目录 程序将读取 [default] 段
在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=99785ff30b10xxx #对应一条隧道的authtoken
clienttoken=
log=none
loglevel=ERROR
http_proxy=
3)其中 authtoken 是注册natapp时分配的,拷贝过来即可


2.3.2.3启动natapp
打开cmd命令窗口,输入natapp -authtoken=99785ff30b10xxx,(为方便起见,可以自己写好bat脚本方便下次启动)

到此用户外网映射成功,可以启动项目服务器,输入http://hgfsdhsgdjhgjh.cc/test,即可访问项目

3.2 通过Idea创建SpringBoot项目
3.3 测试与服务器连接
3.3.1 填写自己的URL,即外网+项目路由

3.3.2 验证服务
3.3.2.1 基本配置的URL包含两个方法:get方法和post方法
get方法,验证消息的确来自微信服务器,点击“提交”按钮时,请求的就是该方法
post方法,现业务逻辑都走该方法,当然前提是上面的“提交”能成功(后面章节进行讲解)。
token为一个约定的钥匙,服务器验证时,微信会用token加密一段字符串,它会把加密字符串用到的其它参数发送到服务器,用服务器定义的token进行加密并拿到结果,随后它会对比两次结果,如果相同则通过验证,所以微信后台的token和服务器上token必须一致,用相同加密方法加密后才能得到相同结果。


3.3.2.2 验证传递参数
官方接口文档:消息接口使用指南。

4. 测试效果


5. 本章结语
至此,连接测试微信服务器第一讲结束,基本上搞清楚原理,就很好理解,在这里要注意,我们项目的端口号要与natapp端口号80一致。
以上内容如有错误,请大家及时留言指正,技术之路,永无止境,学无先后,达者为师!
网友评论