微信公众平台开发历程(二)

微信基本配置

我用的是我们公司的服务号,开通了认证,能获得的权限更多一点。
要开发,你的手上还要有个服务器,让你的项目跑在服务器端,服务器端口开好80和443就够了,这个很重要。

 

首先,我们新的帐号要开启开发权限,新版本的微信是这样的:

 


点进去选择开通之后我们能找到这一块页面,服务器的url和令牌。

 

 

我们先说一下这个url和令牌是什么吧:

URL简单来说这是一个servlet,作用有两个:

 

1、处理微信服务器发来的消息 :当你在微信公众号里面有任何操作的时候,微信公众号会以xml格式的信息将你的操作发给这个servlet,然后你根据这个xml来判断你做了什么,再将你操作需要的返回结果用xml的格式返回给微信,微信公众号会根据你返回的xml来做出相应的动作(跳转、返回文字、返回图文信息等等)。

 

2、确认请求来自微信服务器 :微信服务器会将signature、timestamp、nonce、echostr这几个字符串以参数方式给你,然后你要将这将token(你的令牌)、timestamp、nonce三个参数进行字典序排序 ,将三个参数字符串拼接成一个字符串进行sha1加密 ,将sha1加密后的字符串可与signature对比,标识该请求来源于微信,若校验成功则原样返回echostr,表示接入成功,否则接入失败。

 

看下这个servlet,里面的具体校验方法或者消息处理请去柳峰老师的微博,这里有张飞机票

 

 

 

我刚开始写的时候一直没有在web.xml里面配置这个servlet,一直不能校验成功,蠢的自己都怀疑,毕竟还是太年轻,上课还不好好听...

微信自定义菜单

 

微信自定义菜单生成其实很简单,官网api飞机票不给了,直接上截图:

 

 

自定义菜单生成有限,总结好以后再使用吧。

 

官方接口:http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

 

我们先来解析一下这个url,后面的都其他的接口大同小异了。

 

首先,微信官方是https协议,这里敲黑板,划重点:

 

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,所以,我们在向https协议传送数据的时候要通过这个ssl就要有证书信任管理器,柳峰老师的博客中也提到了这个(我是飞机票),上截图:

 

 

 

 

当然,我在这里遇到好多次坑爹的时候,问题是向微信接口发送数据的时候总是报unknown host : api.weixin.qq.com

遇到这个问题,首先不要方,先确认一下自己的代码是不是真的没有问题,没有问题的话,上招吧,查看你的服务器是否能够ping通这个域名,ping不同,你就要看看你的43端口是否打开了,https是走的443端口,http是80端口。基本上我的问题就是因为443端口没开...

 

其次,微信的access_token每天都有获取次数上限,并且每次获取到的access_token值有效时间是两个小时,so,我们要尽可能的用好这个access_token,柳峰老师的方法是写了个线程,具体如下:

 

 

每次要调用access_token是只要调用方法:TokenThread.accessToken.getToken()  就可以了(代码中jsapi_ticket是jssdk的调用,请暂时忽略)。

 

有了access_token下面我们就可以拼装生成按钮的报文了,官方给的json报文是这样的(刚发现有了新的报文,暂时先忽略):

 

 

json怎么拼看个人习惯,我比较喜欢bean转json。

 

我们现在有了json,有了access_token,那我们就可以用post方式将我们的json发送给微信,成不成功微信会给出回应:

 

 

如果成功,菜单生成时间大概是2分钟-5分钟:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值