微信第三方登陆
2016-03-14 21:01
501 查看
1.找到以公司账户申请的APP_ID和APPSecret,都是唯一的,应该在做微信支付的时候就已经有了。
2.看微信开发者平台提供的文档(部分同仁都认为它的文档是最LOW的,Demo都没有,很容易看迷糊
)。
3.不过可以直接调API,俗话说第三方的事都不是事。
4.调用以上API后微信登陆就可以拉起来了,(前提是你的APP_ID要和申请SDK时的保持一致),看到这个页面你大可以放心自己做的是对的了
5.较重要的一步:
根据文档新建一个类:wxapi包下的WXEntryActivity,切记啊同学们,不是支付的时候写的那个WXPayEntryActivity
了,你妹啊。
6.在上面WXEntryActivity类的回调里,我直接粘贴代码
7.先和后台沟通一下,遇到牛B的后台,你获取到code就足够了,可以直接调登陆接口的。一定要先沟通哦。
。
8.如果仅仅获取到code不够的话,咱继续往下走
访问微信官方提供的接口:
9.如果需要的话这里还要获取一下用户的微信个人信息
我们已经拿到了token和openId,所以直接访问官方提供的
标红色的部分记得替换哦
数据成功返回示例看文档即可
2.看微信开发者平台提供的文档(部分同仁都认为它的文档是最LOW的,Demo都没有,很容易看迷糊
)。
3.不过可以直接调API,俗话说第三方的事都不是事。
<span style="font-size:18px;"> IWXAPI wxapi = WXAPIFactory.createWXAPI(this, Constants.APP_ID);//调用微信的 LoginUtil.loginWithWX(wxapi);//这是自己写的,方法如下 </span>
<span style="font-size:18px;">public static void loginWithWX(IWXAPI api) { SendAuth.Req req = new SendAuth.Req(); req.scope = "snsapi_userinfo"; req.state = "wechat_sdk_demo_test"; api.sendReq(req); }</span>注意:上边的代码写在哪里都可以,只要是符合自己公司规范的即可。没有类名的限制
4.调用以上API后微信登陆就可以拉起来了,(前提是你的APP_ID要和申请SDK时的保持一致),看到这个页面你大可以放心自己做的是对的了
5.较重要的一步:
根据文档新建一个类:wxapi包下的WXEntryActivity,切记啊同学们,不是支付的时候写的那个WXPayEntryActivity
了,你妹啊。
6.在上面WXEntryActivity类的回调里,我直接粘贴代码
@Override public void onResp(BaseResp baseResp) { switch (baseResp.errCode) { case BaseResp.ErrCode.ERR_OK: String code = ((SendAuth.Resp) baseResp).code; <span style="color:#ff0000;"> <span style="white-space:pre"> </span>//这样就可以打印一下获取的code,到这里基本完成科目二了</span> break;
<span style="white-space:pre"> </span>}
}当然,不要忘记其他生命周期的配置
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, Constants.APP_ID); api.handleIntent(getIntent(), this); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); }
以上两个方法在微信支付里也是同样的配置的。
7.先和后台沟通一下,遇到牛B的后台,你获取到code就足够了,可以直接调登陆接口的。一定要先沟通哦。
。
8.如果仅仅获取到code不够的话,咱继续往下走
访问微信官方提供的接口:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=<span style="color:#ff0000;">APPID</span>&secret=<span style="color:#ff0000;">SECRET</span>&code=<span style="color:#ff0000;">CODE</span>&grant_type=authorization_code
</pre><pre code_snippet_id="1609968" snippet_file_name="blog_20160314_10_685157" name="code" class="java">上面标红色的部分是要替换为自己的APPID,APPSecret,和刚刚获取到的code,然后你才能获取到Token和openID。
具体的数据返回格式和文档一样
<pre name="code" class="java">{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE", "unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL" }
9.如果需要的话这里还要获取一下用户的微信个人信息
我们已经拿到了token和openId,所以直接访问官方提供的
<pre name="code" class="html">https://api.weixin.qq.com/sns/userinfo?access_token=<span style="color:#ff0000;">ACCESS_TOKEN</span>&openid=><span style="background-color: rgb(255, 255, 255);"><span style="color:#ff0000;">OPENID</span></span>
标红色的部分记得替换哦
数据成功返回示例看文档即可
{ "openid":"OPENID", "nickname":"NICKNAME", "sex":1, "province":"PROVINCE", "city":"CITY", "country":"COUNTRY", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", "privilege":[ "PRIVILEGE1", "PRIVILEGE2" ], "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" }可以了,昵称、城市、性别什么的都获取到了,可以直接调自己公司的登陆接口了。
相关文章推荐
- Android 仿照微信发说说,既能实现拍照,选图库,多图案上传 使用Retrofit2.0技术
- [Java实现]通过一个Java小程序(吃苹果)深入理解面向对象思想
- Xposed获取微信用户名密码
- 实现类似QQ、微信聊天界面,标题栏固定,键盘不遮挡底部输入框
- iOS微信登录的坑,unionid打通
- 盟聚解说微信朋友圈广告营销
- java微信开发-OAuth2.0授权
- 微信开发入门-2
- 微信开发入门-1
- java微信开发-消息接收和自动回复
- 配置环境代码,微信分享代码
- js判断当前环境是否是微信内浏览器
- 微信内支付 微信jsapi之前台js部分
- java微信开发-token验证
- [Android]实现类似微信的延迟加载的Fragment——LazyFragment
- 支付介绍
- 45、微信-从通讯录添加好友
- 43、微信-好友详情页面FriendMsgActivity
- 友盟分享——微信、腾讯微博、新浪微博分享失败原因分析
- 42、微信-添加新朋友列表适配器