From c5bf501d8b507d1e3e79541e7ac9b45910860b4d Mon Sep 17 00:00:00 2001
From: 陈奇 <1650699704@qq.com>
Date: Wed, 29 May 2019 16:17:07 +0800
Subject: [PATCH] 添加新功能

---
 app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java |   82 ++++++++++++++++++++++++++--------------
 1 files changed, 53 insertions(+), 29 deletions(-)

diff --git a/app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java b/app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java
index 9a863cb..315aa16 100644
--- a/app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java
+++ b/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) {
@@ -121,13 +120,13 @@
 
             @Override
             public void onFail(int errno, String s) {
-                T.show("������������");
+                loginFailed();
             }
         });
     }
 
     /**
-     * ���������������������������
+     * ������������������������������
      *
      * @param refresh_tocken
      */
@@ -138,7 +137,7 @@
             public void onSuccess(String res, String msg) {
                 AccessTokenBean accessTokenBean = GsonUtil.toObj(msg, AccessTokenBean.class);
                 if (accessTokenBean.getErrcode() == 40030) {
-                    T.show("������������");
+                    loginFailed();
                 } else {
                     loginSuccess(accessTokenBean.getAccess_token(), accessTokenBean.getOpenid());
                 }
@@ -151,7 +150,7 @@
 
             @Override
             public void onFail(int errno, String s) {
-                T.show("������������");
+                loginFailed();
             }
         });
     }
@@ -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) {
                     //������������
-                    T.show("������������");
+                    loginFailed();
                     return;
+                } else if (accessTokenBean.getErrcode() == 40163) {
+                    //������������������code ���������������������
+                    loginSuccess();
                 }
                 if (accessTokenBean.getAccess_token() != null && accessTokenBean.getOpenid() != null) {
                     checkEffective(accessTokenBean.getAccess_token(), accessTokenBean.getOpenid());
@@ -186,7 +191,7 @@
 
             @Override
             public void onFail(int errno, String s) {
-                T.show("������������");
+                loginFailed();
             }
         });
     }
@@ -206,11 +211,18 @@
             @Override
             public void onSuccess(String res, String msg) {
                 WXUserBean bean = new WXUserBean();
-                MainApp.theApp.userId = bean.getNickname();
                 User user = new User();
-                user.set_id(bean.getOpenid());
-                user.setNickname(bean.getNickname());
-                user.setLogin_type(2);
+                if (bean.getErrcode() == 40003) {
+                    MainApp.theApp.userId = "null";
+                    user.set_id(bean.getOpenid());
+                    user.setNickname(MainApp.theApp.userId);
+                    user.setLogin_type(2);
+                } else {
+                    MainApp.theApp.userId = bean.getNickname();
+                    user.set_id(bean.getOpenid());
+                    user.setNickname(bean.getNickname());
+                    user.setLogin_type(2);
+                }
                 MainApp.theApp.sharedPreferencesUtil.saveLoginInfo(user);
             }
 
@@ -221,17 +233,29 @@
 
             @Override
             public void onFail(int errno, String s) {
-                T.show("������������");
+                loginFailed();
             }
         });
     }
 
-    private void loginSuccess(String... strings) {
-        //���������������������
-        Intent intent = new Intent(WXEntryActivity.this, MainActivity.class);
-        WXEntryActivity.this.startActivity(intent);
+
+    private void loginFailed() {
         finish();
+        T.show("������������");
+    }
+
+    /**
+     * ������������
+     *
+     * @param strings
+     */
+    private void loginSuccess(String... strings) {
+        System.out.println("chenqi ---- loginSuccess" + strings.length);
+        //���������������������
+        Intent intent = new Intent(getApplication(), MainActivity.class);
+        getApplication().startActivity(intent);
         getUserInfor(strings[0], strings[1]);
+        finish();
     }
 
     private void goToGetMsg() {

--
Gitblit v1.8.0