java开发微信公众平台-- 服务器配置

分类: 微信开发 2016-09-01 18:10:18

下面就说说自己这段时间对公众号--服务器配置 的学习。

在开发之前先要申请一个公众号,公众号有三种,个人比较容易申请的是订阅号,服务号还要审核,稍微麻烦一点,对于个人开发我建议申请服务号,因为后面会做自定义菜单的功能。再就是我们需要有一个公网的服务器,这个可以申请sina的sae和百度的bae,个人比较喜欢sina的一点,比较容易上手。这里不讲公众号的申请和sae服务器的申请和配置。

再做完这两件事后我们就可以开始公众号的开发了。首先我们需要了解微信公众号的工作流程,对其有个整体的把握,要不今后就会换挺多简单错误。在启用开发者模式情况下

(下面内容都是在此模式下)当用户通过微信客服端发送消息到微信服务后,微信服务器会将此消息转发给我们的公网服务器,如上面所说sae和bae(以下内容也均是在sae下完成)。具体的业务逻辑就在sae上完成,处理完后再将结果发回微信服务器,微信服务器再发给用户。

申请到公众号后,登陆公众品台,可以看到微信已经帮我们准备好了许多功能,我们不需要编写任何代码就可以完成一个具有基本的公众号,但这不是本文的目的,我们是要用自己的代码实现一些功能,因此我们要进入开发 者中心去配置服务器接口。

下面就是本文核心内容:

试想一下让两个完全不沾边的服务器(微信服务器和sae)对接的风险,因此必须有什么验证机制的存在。具体的验证过程是

1、微信服务器会以get方式调用我们部署在sae 服务器上的servlet,并传signature、timestamp、nonce、echostr四个参数。其中signature是微信加密签名;timestamp

是时间戳,防止即使有别有用心之人获得另外 的参数而因时间戳的不一致无法完成验证;nonce是随机数;echostr是随机字符串,用于返回给微信服务器作比较。

2、servlet接收到以上数据后,会将token(在servlet中写好 且要用公众平台上开发者中心的token相同)timestamp、nonce按字典方式排序,再拼接成字符串进行sha1加密

将加密后的字符串与signature比较,如果相同就返回echostr。

3、微信服务器接收到返回的echostr,与发过去的echostr相比较,如果相同,就接入成功,否则失败。

servlet中的doGet()

验证核心代码

再sae上配置好后,点击开发者中心,首先启用服务器配置。填写url和token(和java代码中的一样)、EncodingAESKey是随机生成,消息加解密方式选择明文模式。

这里的url就是你在sae中 创建应用的地址,我们已经将 写好的java代码上传到这个地址。token是微信服务器和sae服务器进行对接验证是用到的(必须保持一致), 消息

加密暂时选择明文模式,如果选择加密模式需要编写加密代码, 以后会再转到加密或兼容模式,这里先用明文模式 。这样我们就完成了,点击提交(记得sae服务器要打开),

如果现实成功就说明接入完成,我们可以接着做下面的工作了。(来源于网络)


最新资讯排行榜
热门评论
该新闻暂无评论。
您的昵称 验证码

扫一扫微信及时关注纵道软件最新讯息