陈奇
2019-05-29 c5bf501d8b507d1e3e79541e7ac9b45910860b4d
app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java
@@ -16,7 +16,6 @@
import com.moral.yunfushao.utils.T;
import com.moral.yunfushao.wxapi.data.AccessTokenBean;
import com.moral.yunfushao.wxapi.data.WXUserBean;
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;
@@ -48,24 +47,23 @@
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        System.out.println("chenqi onNewIntent");
        setIntent(intent);
        api.handleIntent(intent, this);
    }
    @Override
    public void onReq(BaseReq baseReq) {
        switch (baseReq.getType()) {
            case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
                goToGetMsg();
                break;
            case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
                System.out.println("chenqi create WXEntryActivity COMMAND_SHOWMESSAGE_FROM_WX");
                goToShowMsg((ShowMessageFromWX.Req) baseReq);
                break;
            default:
                break;
        }
//        switch (baseReq.getType()) {
//            case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
//                goToGetMsg();
//                break;
//            case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
//                System.out.println("chenqi create WXEntryActivity COMMAND_SHOWMESSAGE_FROM_WX");
//                goToShowMsg((ShowMessageFromWX.Req) baseReq);
//                break;
//            default:
//                break;
//        }
    }
    @Override
@@ -75,7 +73,7 @@
        switch (baseResp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                code = ((SendAuth.Resp) baseResp).code;
                result = "授权成功";
                result = "";
                checkWXLogin();
                //用户同意
                break;
@@ -103,6 +101,7 @@
     */
    private void checkEffective(final String access_token, String openid) {
        String url = "https://api.weixin.qq.com/sns/auth?access_token=" + access_token + "&openid=" + openid;
        System.out.println("chenqi ---- checkEffective");
        WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() {
            @Override
            public void onSuccess(String res, String msg) {
@@ -165,14 +164,20 @@
                "&secret=" + WXConstants.SECRET + "&code=" +
                WXEntryActivity.code +
                "&grant_type=authorization_code";
        System.out.println("chenqi ---- checkWXLogin");
        WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() {
            @Override
            public void onSuccess(String res, String msg) {
                System.out.println("chenqi ---- onSuccess");
                AccessTokenBean accessTokenBean = GsonUtil.toObj(msg, AccessTokenBean.class);
                System.out.println("chenqi ---- refreshToken" + accessTokenBean.getOpenid() + accessTokenBean.getAccess_token());
                if (accessTokenBean.getErrcode() == 40029) {
                    //登陆错误
                    loginFailed();
                    return;
                } else if (accessTokenBean.getErrcode() == 40163) {
                    //已经等过过的code 不能够重复登陆
                    loginSuccess();
                }
                if (accessTokenBean.getAccess_token() != null && accessTokenBean.getOpenid() != null) {
                    checkEffective(accessTokenBean.getAccess_token(), accessTokenBean.getOpenid());
@@ -245,9 +250,10 @@
     * @param strings
     */
    private void loginSuccess(String... strings) {
        System.out.println("chenqi ---- loginSuccess" + strings.length);
        //校验完毕之后跳
        Intent intent = new Intent(WXEntryActivity.this, MainActivity.class);
        WXEntryActivity.this.startActivity(intent);
        Intent intent = new Intent(getApplication(), MainActivity.class);
        getApplication().startActivity(intent);
        getUserInfor(strings[0], strings[1]);
        finish();
    }