众所周知,微信公众号分为订阅号、服务号和企业号。撇开企业号不谈,虽然只有服务号可以经过微信接口得到用户级别信息(特别是针对每一个公众号惟一的openId),但咱们能够仍能够在未认证的订阅号中经过平台测试号开发测试用户基本信息。html
微信第三方登陆的原理和流程再也不赘述,下面说明一下测试号开发的过程。json
首先打开测试页面,先登陆任一类型的公众号(包括未认证的),在左侧菜单找到 开发-->开发者工具,进入“公众平台测试帐号”,这里时须要刷微信认证的二维码(任一微信帐户均可以,与登陆微信公众平台的帐号无关)。api
在测试管理的界面,能够获得你的微信对应测试帐号的appId和appSecret的值。安全
接下来的接口配置URL,是须要在咱们本身服务上实现的servlet服务的url,具体的实现代码参考这篇文章:http://www.jb51.net/article/78305.htm。注意,该servlet必须可以被外网访问;若是部署到正式公众号的话,还须要域名。Token填写任意的字符串,同时请务必确保servlet中的token参数与它保持一致。微信
“JS接口安全域名”中填写访问servlet的外网IP或者域名。app
接下来把页面拉倒最下面,找到“体验接口权限表”中的 网页账号-->网页受权获取用户基本信息 一项,点击“修改”链接,将访问servlet的外网IP或者域名也填写在这里。微信公众平台
使用手机扫描“测试号二维码”,就进入了该测试号对应的微信公众号,这时会发现公众号里没有任何菜单,咱们还须要配置菜单,可是并无可视化设置菜单的地方,须要经过测试接口才能在测试公众号上增长菜单。工具
打开第一步中的的 开发-->开发者工具,进入“在线接口调试工具”。测试
1)获取access_token:页面默认就是该接口,输入咱们测试帐号的appId和appSecret,就获得了access_token,请注意,它是有有效期的;url
2)选择接口类型是“自定义菜单”,能够经过json格式创建菜单,先填写刚刚获得的access_token,在body中按以下格式输入建立菜单的json:
{ "button": [ { "type": "click", "name": "流金岁月", "key": "V1001_TODAY_MUSIC", "sub_button": [] }, { "name": "菜单", "sub_button": [ { "type": "view", "name": "登陆", "url": "loginUrl", "sub_button": [] } ] } ] }
其中的loginUrl替换成微信第三方鉴权回调登陆的url,格式是https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect,这里的 REDIRECT_URI 就是咱们本身开发的中间servlet。在servlet中获取到微信平台赋予的code,再调用https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code接口,在返回结果中便可获取openId,更详细的交互流程在微信的开发接口说明中都有详细介绍。
最终,在测试公众号中便可经过菜单测试登陆页面。
转自:http://www.cnblogs.com/rexSky/p/5691986.html