使用微信原生api实现第三方登录

荐币使用微信原生api 实现第三方登录

喇叭资讯却是使用的是友盟实现第三方登录的

1、参考 https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Authorized_API_call_UnionID.html
2、注册到微信
Application中onCreate()方法中注册:
//第二个参数是指你应用在微信开放平台上的AppID
mWxApi = WXAPIFactory.createWXAPI(this, ThirdPartKeyConst.WEIXIN_APP_ID, false);
// 将该app注册到微信
mWxApi.registerApp(ThirdPartKeyConst.WEIXIN_APP_ID);

3、在app的包名(注意指的是application的名字,因为有时候application和packagename不一致)目录下新建一个wxapi目录,然后在此目录下新建WXEntryActivity.java文件,如下,app的包名为carjob.com.cn,新建的wxapi目录如下。
(注意:一定是包名目录下新建,不要在其他目录新建,否则WXEntryActivity.java里的public void onResp(BaseResp resp)方法不会被调用)
WXEntryActivity继承Activity,实现IWXAPIEventHandler,并重写protected void onNewIntent(Intent intent)、public void onReq(BaseReq arg0)、public void onResp(BaseResp resp)方法

4、发送微信登录的请求
//先判断是否安装微信APP,按照微信的说法,目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用。
if (!JavaUtils.isWeixinAvilible(this)) {
    showToast("您还未安装微信客户端");
    return;
}
showProgressDialog("正在登录...");
//微信登录
SendAuth.Req req = new SendAuth.Req();
((SendAuth.Req) req).scope = "snsapi_userinfo";
req.state = "diandi_wx_login";
//像微信发送请求
LApplication.getInstance().mWxApi.sendReq(req);
请求成功后,可拉起微信的授权登录页面。
用户点击“确认登录”后,SDK通过SendAuth的Resp返回数据给调用方(即app),此时WXEntryActivity中的public void onResp(BaseResp resp)方法被调用(微信、朋友圈分享成功后,此方法同样会被调用),微信登录的返回值说明如下。这里app可以做相关的处理,见WXEntryActivity.java文件中的处理,取code为下一步获取access_token和openid等信息做准备。

5、通过code获取access_token
获取上一步中的code后,调用以下接口获取access_token,官方指出用Get方式请求。
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
请求参数说明:
appid:应用唯一标识,在微信开放平台提交应用审核通过后获得。
secret:应用密钥AppSecret,在微信开放平台提交应用审核通过后获得。
code:填写第一步获取的code参数。
grant_type:填authorization_code。

6、获得access_token、openid后,app就可以根据自己的规则与互自己的server进行交互。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值