简单使用微信公众号测试模式
我们在做微信公众号的时候,简单的情况就设置下自动回复,添加下自定义菜单,菜单按钮设置到指定的模版页面。那有种情况:我们需要在公众号获取到用户信息,并且能绑定到自己的平台账号上(当然必须是有自家的服务平台,要不没这需求点),估计不能用跳转到一个静态页面的方式了。
首先我们看下菜单的设置
2. 自定义菜单, 可以在网页中设置地址。
那么需要在 "基本配置" 的 "IP 白名单" 以及 服务器配置,
并且配置 "公众号设置" 中的 功能设置 中的域名
然后进入主题:怎么绑定用户信息,然后拓展不影响线上服务器(生产环境) 情况下,继续迭代开发功能 ?
1. 进入测试
1. 进入测试
然后看到界面如下
其实就是一个测试环境的公众号,开发人员可以扫码进入,就相当于关注了一个新的隔离的公众号,并且可以单独的设置公众号对应的安全域名(重点:能购买多个公众号的企业,直接来个测试用的,就不需要这样。。)
并且有消息模版功能:
而且下方有很多的能用的功能(重点是红色,安全回调域名):
现在,我们来解决问题。
问题 1. 将关注了公众号的用户,点击按钮,跳转指定页面,并且需要验证是在自己平台中对应了帐号
我的做法 :
按钮:http://安全域名/test
这个接口中,跳转下面的路由(后台代码直接可以重定向请求)
路由A : https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http%3A%2F%2F${self.wechat.api.host}%2Fwechat%2Faccess&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
其中redirect_uri 就是腾讯服务器回调你服务器的地址, ${self.wechat.api.host} 就是你的服务器 ,%2Fwechat%2Faccess 就是路由, 进行过了 url encode。
我的做法 :
按钮:http://安全域名/test
这个接口中,跳转下面的路由(后台代码直接可以重定向请求)
路由A : https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http%3A%2F%2F${self.wechat.api.host}%2Fwechat%2Faccess&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
其中redirect_uri 就是腾讯服务器回调你服务器的地址, ${self.wechat.api.host} 就是你的服务器 ,%2Fwechat%2Faccess 就是路由, 进行过了 url encode。
那么在你的 ${self.wechat.api.host}/wechat/access 接口中(我们就叫 路由B),就能获取到这个用户的信息:
这个 code 和 state 就可以 使用
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
来获取用户的 openId, 以及 unionId 了, 那么就可以把这个对应到自己平台的帐号上进行绑定。(eg:比如发现用户没有绑定,就跳转到页面让用户登录帐号绑定; 如果unionId 有对应的平台帐号,那么直接进入主界面)
来获取用户的 openId, 以及 unionId 了, 那么就可以把这个对应到自己平台的帐号上进行绑定。(eg:比如发现用户没有绑定,就跳转到页面让用户登录帐号绑定; 如果unionId 有对应的平台帐号,那么直接进入主界面)
这样,就实现了用户绑定,也可以针对需要涉及权限的web界面,进行权限验证过。
总结下就是: 自己接口---跳转 A 路由(设置回调自己路由B)--- 跳转自己的web界面(在界面的url上附带参数进行验证)
问题 2. 测试公众号怎么添加菜单
上面仔细看,发现测试的里面有自定义菜单权限,那么来 post 操作一波。 添加删除如下:
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=42_4S6RAhQ32dm8WhTNWVOw { "button":[ { "type":"view", "name":"今日歌曲", "key":"V1001_TODAY_MUSIC", "url":"http://安全域名/wechat/index" } ] } https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=42_4S6RAhQ32dm8WhTNWVOwY8iZXrlOoV_HQHNA0
问题 3: 安全域名
因为微信是需要 微信服务器 回调你服务器验证的,那么会帮定一个域名。
有可能,确认以后,不成功。。。。。
那么你域名对应的服务器上,需要部署一个接口, /wechat 路由
接口里面直接 return echostr; 这就是安全验证, 当然,可以写的很复杂,进行安全验证!!!
问题 4 ,微信开发、或者需要回调验证的接口中,怎么可以在本地进行
方式: 1. 买固定IP
方式: 1. 买固定IP
2. 可以映射一个外网到本地路由的(蒲公英 ?)
3. ssh 内网穿透
4. 。。。。。。
这样,针对 问题1 的接口,就可以直接本地断点调试了,很方便的看 debug 。。。
4. 。。。。。。
这样,针对 问题1 的接口,就可以直接本地断点调试了,很方便的看 debug 。。。
可以关注来获取对应的源码