公众号类型 如果不打算写代码的话 订阅号就可以了
但是如果打算写代码 就必须升级服务号 不然公众号的底部菜单不能写链接 也就跑不到你的服务器去做其它的业务了
记得交300块认证费用
服务器配置我是不启用的 启用后微信底部菜单栏都不能自定义了 都得手写了
这里先配置url地址 然后微信会访问这个地址并要求你验证一下 然后把echostr 这个参数还给他. 至于验证方式 呵呵微信只有php版本的,其它语言的同胞就只能参照了 还好java开发程序狗多,有人网上分享了 拿来借鉴不算偷.
Token和encoding都是自己随机的数
服务器和公众号保持一致
还有这里的域名也撸上吧
以上 都是前期工作 接下来是开发了
此次微信只做了两个功能
1 用户授权登陆 这样:
2给用户发模板消息 也就是有格式排列整齐的小广告 这样:
好的 我们讲登陆
1用户发请求给微信 微信重定向给我们 带两个参数code 和state
用户访问的:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxed26a861c0eebc50&redirect_uri=http://m.cuo88.com/weixin/login&response_type=code&scope=snsapi_base&state=juniordetail#wechat_redirect
微信重定向的:
http://m.cuo88.com/weixin/login?code=xxxxxxxxx&state=xxxxxxxxxxx
2然后我们在发请求给微信 通过code获取用户的openid 和一个专门用来登录验证的access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxed26a861c0eebc50&secret= b63342a8439160a0602ca3a2e165b1d5&code=xxxxxxxx&grant_type=authorization_code
3然后我们在根据openid发请求给微信获取用户的信息 然而这并没有什么卵用
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
有用的是state
用户发请求给微信 只有state这个参数是可以随便写的
小广告页啊 微信下拉菜单页面啊 请求太多了 只能将就这把state当分发器用了
模板消息
模板都是固定格式的找不到特想要的那种模板格式就只能将就其它的他提供的模板格式了
发送模板消息很简单,post这个请求就可以了
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
这里也有个access_token.但是和登录的access_token是完全没有关系的
我们每过一段时间就得和微信聊一下告诉他,我还在正常运行,你别停了我的服务, 然后每次微信就会说放心,我给你一块令牌两个小时候过期,两个小时内你只要亮出令牌想干嘛就干嘛,
所以服务器加了个定时器
每个小时取一次.存数据库里面,微信准每天取10万次
为了服务器消息能正常发送, 开发人员机器和qa机器都不能用这个定时器,只有最新的token才有用,所以服务器有个接口让开发机器和测试机器获取token
好的言归正传 发模板
Post的参数内容如下
下面这一堆类都是为了拼出发模板的参数
记录在word上 图传好麻烦 没有传了