微信第三方登录

package com.miyou.xylive.wxapi;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.kaopu.xylive.bean.respone.WXTokenInfo;
import com.kaopu.xylive.bean.respone.WXUserInfo;
import com.kaopu.xylive.tools.http.HttpUtil;
import com.kaopu.xylive.tools.login.LoginMagaer;
import com.kaopu.xylive.tools.third_share.WXManager;
import com.kaopu.xylive.ui.widget.WaitDialog;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;

import rx.Subscriber;

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WXManager.getInstance().getWxapi().handleIntent(getIntent(), this);
    }
    @Override
    public void onReq(BaseReq baseReq) {
        //注册API
        WXManager.getInstance().getWxapi().handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        WXManager.getInstance().getWxapi().handleIntent(intent, this);
    }

    @Override
    public void onResp(BaseResp baseResp) {
        WaitDialog.showDialog(this);
        if (baseResp instanceof SendAuth.Resp) {
            SendAuth.Resp newResp = (SendAuth.Resp) baseResp;
            switch (newResp.errCode) {
                case BaseResp.ErrCode.ERR_OK:
                    if (ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX == newResp.getType()) {
//                      Toast.makeText(context, "分享成功", Toast.LENGTH_LONG).show();
                        break;
                    }
                    //获取微信传回的code
                    String code = newResp.code;
                    HttpUtil.loadWXToken(new WXSubscriber(), "wx6fb15236e5b48598", "520508150ab20dc87625fef69e90611e", code, "authorization_code");
                    break;
            }
        }
    }


    private class WXSubscriber extends Subscriber<WXTokenInfo> {

        @Override
        public void onCompleted() {

        }

        @Override
        public void onError(Throwable e) {
            e.printStackTrace();
        }

        @Override
        public void onNext(WXTokenInfo o) {
            HttpUtil.loadWXUserInfo(new WXUserInfoSubscriber(), o.access_token, o.openid);
        }
    }

    private class WXUserInfoSubscriber extends Subscriber<WXUserInfo> {

        @Override
        public void onCompleted() {

        }

        @Override
        public void onError(Throwable e) {
            e.printStackTrace();
        }

        @Override
        public void onNext(WXUserInfo o) {
            LoginMagaer.getInstance().loginOnThird(o.openid, o.unionid, o.nickname, o.sex, o.headimgurl, "", 2);
            WaitDialog.showDialog(WXEntryActivity.this);
            finish();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值