文章标题

本文详细介绍如何实现微信授权登录,包括在微信开发者平台注册并配置相关信息,实现授权登录的步骤及回调处理过程。

微信登录

第一步到微信开发者平台注册,导入jar包,清单文件注册相关东西,这一步大家可以看着官方文档.

完成上面所说之后,现在开始说微信授权登录几个步骤
1:在你的主入口或者触发微信登录的点击事件的Activity注册:
如下代码:

public class Activity extends Activity implements View
.OnClickListener {

private LinearLayout wx_login;
private IWXAPI api;
private static final String APP_ID = "开发者平台上注册的APPID";

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_2_setting);
    initView();

    // 微信授权登录
    //通过微信工厂,获取实例
    api = WXAPIFactory.createWXAPI(this, APP_ID, true);
    //将应用appid注册到微信
    api.registerApp(APP_ID);




}




//初始化view
private void initView() {
  wx_login = (LinearLayout) findViewById(R.id.wx_login);
  wx_login.setOnClickListener(this);
   }




@Override
public void onClick(View v) {
    switch (v.getId()) {
         case R.id.wx_login:   //微信登录授权
                SendAuth.Req req = new SendAuth.Req();
                 req.scope = "snsapi_userinfo";
                 api.sendReq(req);

            break;

    }

}

}

2:创建一个包和微信回调活动类,这里要注意包名带有wxapi和类名(WXEntryActivity )必须是这个名字,不能修改,切记!!
如下操作:
package com.wxapi;
/**
* 微信授权登录
*/
public class WXEntryActivity extends WechatHandlerActivity implements IWXAPIEventHandler,
OnResponseListener {
private IWXAPI api;
private static final String APP_ID = “开发者平台上注册的APPID”;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_wxlogin2);
    api = WXAPIFactory.createWXAPI(this, APP_ID, false);
    //开启微信登录页面
    api.handleIntent(getIntent(), this);
}

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
    api.handleIntent(intent, this);

}

@Override
public void onReq(BaseReq req) {
    Toast.makeText(this, "失败", Toast.LENGTH_LONG).show();
    finish();
}

//微信回调结果
@Override
public void onResp(BaseResp resp) {


    if (resp.errCode == BaseResp.ErrCode.ERR_OK) {
        String code = ((SendAuth.Resp) resp).code;//需要转换一下才可以拿到code,这里有个主意的地方,尽量不要用Intent把code传出去,用其他方法传出去即可,当然我只是友情提醒,你可以自己试试

/*
通过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。

返回说明

正确的返回:

{
“access_token”:”ACCESS_TOKEN”,
“expires_in”:7200,
“refresh_token”:”REFRESH_TOKEN”,
“openid”:”OPENID”,
“scope”:”SCOPE”
}
*/
}
}
基本就这样了,没什么难度,写的不好大家别见怪啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值