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存起来。