Android 微信原生登录

1.获取code值:

①打开网址,找到android指南,导入依赖

/*微信登录*/
    implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

②加入权限

 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

③封装的微信工具包,添加进去
WeiXinUtil


public class WeiXinUtil {
    // APP_ID 替换为你的应用从官方网站申请到的合法appID
    public static  String APP_ID = "wxb3852e6a6b7d9516";

    // IWXAPI 是第三方app和微信通信的openApi接口
    private WeiXinUtil() {

    }
    public  static  boolean success(Context context){
        //判断是否安装过微信
        if (WeiXinUtil.reg(context).isWXAppInstalled()) {
            return  true;
        }else {
            return false;
        }
    }
    public static IWXAPI reg(Context context){
        if (context!=null) {
            //AppConst.WEIXIN.APP_ID是指你应用在微信开放平台上的AppID,记得替换。
            IWXAPI wxapi = WXAPIFactory.createWXAPI(context, APP_ID, true);
            //注册到微信
            wxapi.registerApp(APP_ID);
            return wxapi;
        }else {
            return  null;
        }
    }
   /* //支付
    public static void  weiXinPay(Bean_OrderSuccessBean bean){
        IWXAPI wxapi = WXAPIFactory.createWXAPI(App.context, APP_ID, true);
        //注册到微信
        wxapi.registerApp(APP_ID);

        PayReq payReq = new PayReq();
        payReq.appId=bean.getAppId();
        payReq.prepayId=bean.getPrepayId();
        payReq.partnerId=bean.getPartnerId();
        payReq.nonceStr=bean.getNonceStr();
        payReq.timeStamp=bean.getTimeStamp();
        payReq.sign=bean.getSign();
        payReq.packageValue=bean.getPackageValue();
        Log.d("",payReq.toString()+"111111");
        wxapi.sendReq(payReq);
    }*/

}

④添加movie.key,
在这里插入图片描述
⑤在model的builder文件中android添加以下:

 /*微信获取code值*/
    signingConfigs {
        debug {
            storeFile file('movie.keystore')
            keyAlias "bw_movie"
            storePassword "123456"
            keyPassword "123456"
        }
    }

⑥在点击微信登录事件中,写入一下,判断当前真机或者模拟器是否有微信

				//微信登录
                if (!WeiXinUtil.success(this)) {
                    Toast.makeText(this, "请先安装应用", Toast.LENGTH_SHORT).show();
                } else {
                    //  验证
                    SendAuth.Req req = new SendAuth.Req();
                    req.scope = "snsapi_userinfo";
                    req.state = "wechat_sdk_demo_test";
                    WeiXinUtil.reg(MainActivity.this).sendReq(req);
                }

⑦创建wxapi包,和WXEntryActivity,实现接口IWXAPIEventHandler,有两个方法,在 方法里边写入一下:
在这里插入图片描述
⑧在WXEntryActivity的onCreate里边加入这句话:
WeiXinUtil.reg(WXEntryActivity.this).handleIntent(getIntent(),this);
在这里插入图片描述
⑨在清单文件WXEntryActivity中添加一下:
在这里插入图片描述

⑩成功打印log日志,code值
在这里插入图片描述

(11)当我们获取到code值时,就可以进行网络请求,参数只有一个code值,post请求。

2.进行retrofit网络请求,传入参数code值,返回成功时,判断是否登录成功,如果登录成功,可以把头像名字传人到我的页面,把userid和sessionid存起来。

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值