android 微信登陆手把手教学获取openid

最近项目用到微信支付,企业打款到个人微信账户余额,需要个人在提交结算时授权微信登陆,以获取openid,用于企业打款,许久没有撸微信第三方的我吓得赶紧把流程都记录一下


image.png

image.png

上图基本都是资料填写,申请支付权限,话就不多说了,下面先开始微信授权登录吧

1.
image.png

在AndroidManifest 里面WXEntryActivity注册 此处注意实在报名下新建 wxapi文件夹 再新建 WXEntryActivity

2.WXEntryActivity的代码

public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler {

private IWXAPI wxAPI;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LogUtil.e("TAG","来了");
    //接收到登录的intent传递handleIntent方法,处理结果
    wxAPI = WXAPIFactory.createWXAPI(this,Constants.APPID,true);
    wxAPI.registerApp(Constants.APPID);
    wxAPI.handleIntent(getIntent(), this);

}

@Override
protected void onNewIntent(Intent intent){
    super.onNewIntent(intent);
    wxAPI.handleIntent(getIntent(),this);
    LogUtil.e("TAG","WXEntryActivity onNewIntent");
}

@Override
public void onReq(BaseReq arg0) {
    LogUtil.e("ansen","WXEntryActivity onReq:"+arg0);
}

@Override
public void onResp(BaseResp resp){
    if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){//登陆
        LogUtil.e("TAG", "微信登录操作.....");
        SendAuth.Resp authResp = (SendAuth.Resp) resp;
        WeiXin weiXin=new WeiXin(1,resp.errCode,authResp.code);
        EventBus.getDefault().post(weiXin);
    }
    finish();
}

}

3.在需要微信授权登录的activity或者fragment里面 :
private IWXAPI iwxapi;
在onCreate 初始化initView 再在里面
iwxapi = WXAPIFactory.createWXAPI(getActivity(),Constants.APPID, true);
iwxapi.registerApp(Constants.APPID);
如图:


image.png

4.点击授权时调取toWxLogn:


image.png

5.在WXEntryActivity 可以看出我用的是eventbus 将数据回传的,所以下面需要定义接收


image.png

6.获取授权再获取openid


image.png

7.补充两个实体类


image.png
image.png

OK,到此微信授权登录 获取openId就结束了,微信支付还在撸码中,好了之后再整理一下。

你可能感兴趣的:(android 微信登陆手把手教学获取openid)