hanjing лет назад: 6
Родитель
Сommit
cbca377b66

+ 2 - 0
app/src/main/java/com/sheep/gamegroup/util/CertificationUtil.java

@@ -70,6 +70,8 @@ public class CertificationUtil {
                 intent.putExtra(activity.getString(R.string.kfzs_duanduan_datashare_certification_token), token);
             } else if ("delete".equals(ext)) {
                 intent.putExtra(activity.getString(R.string.kfzs_duanduan_datashare_certification_cancel), "delete");
+            } else if ("validate".equals(ext)) {
+                intent.putExtra(activity.getString(R.string.kfzs_duanduan_datashare_certification_permit), "ok");
             } else {
                 intent.putExtra(activity.getString(R.string.kfzs_duanduan_datashare_package_extras), ext);
                 intent.putExtra(activity.getString(R.string.kfzs_duanduan_datashare_certification_token), token);

+ 57 - 45
app/src/main/java/com/sheep/gamegroup/view/activity/ActPay.java

@@ -112,57 +112,69 @@ public class ActPay extends BaseActivity {
             String tokenPrev = user.getId() + "@";
             if (token.startsWith(tokenPrev)) {
                 token = SpUtils.getToken(this);
+                showProgress();
+                CommonUtil.getInstance().updateUserInfo(result -> {
+                    hideProgress();
+                    if (result == null) {
+                        Jump2View.getInstance().goRechargeResult(this, "9001", from_package, null, "用户认证已失效,请重新登录");
+                        finish();
+                    } else {
+                        doPay();
+                    }
+                });
             } else {
-                Jump2View.getInstance().goRechargeResult(this, "9001", from_package, null, "游戏与小绵羊用户信息不一致");
+                Jump2View.getInstance().goRechargeResult(this, "9001", from_package, null, "用户信息不一致,请重新登录");
                 finish();
-                return;
-            }
-            if (TextUtils.isEmpty(pay_type) || PAY_TYPE_COIN.equals(pay_type)) {
-                String url = Config.getUrlByPath(Config.PATH_DIRECTIONAL_PAY + "?authorization=" + token + "&order=" + order_no + "&ssnocache=1");
-                WebParams webParams = new WebParams(url, "支付").setShowTitle(false).setForResult(true).setAction(Constant.INTENT_PAY);
-                Jump2View.getInstance().goWeb(this, webParams);
-            } else if (PAY_TYPE_WX.equals(pay_type)) {
-                SheepApp.getInstance().getNetComponent().getApiService().sdkFindOrder(token, order_no)
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                Intent intent = new Intent();
-                                intent.putExtra(EXTRA_NAME_ORDERNO, order_no);
-                                intent.putExtra(EXTRA_NAME_STATUS, STATUS_PAY_ORDER_ERROR);
-                                setResult(RESULT_CODE, intent);
-                                finish();
-                            }
-
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                tryWxOrder();
-                            }
-                        });
-            } else if (PAY_TYPE_MINI.equals(pay_type)) {
-                SheepApp.getInstance().getNetComponent().getApiService().sdkFindOrder(token, order_no)
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                Intent intent = new Intent();
-                                intent.putExtra(EXTRA_NAME_ORDERNO, order_no);
-                                intent.putExtra(EXTRA_NAME_STATUS, STATUS_PAY_ORDER_ERROR);
-                                setResult(RESULT_CODE, intent);
-                                finish();
-                            }
-
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                tryMiniOrder();
-                            }
-                        });
             }
         }
     }
 
+    private void doPay() {
+        if (TextUtils.isEmpty(pay_type) || PAY_TYPE_COIN.equals(pay_type)) {
+            String url = Config.getUrlByPath(Config.PATH_DIRECTIONAL_PAY + "?authorization=" + token + "&order=" + order_no + "&ssnocache=1");
+            WebParams webParams = new WebParams(url, "支付").setShowTitle(false).setForResult(true).setAction(Constant.INTENT_PAY);
+            Jump2View.getInstance().goWeb(this, webParams);
+        } else if (PAY_TYPE_WX.equals(pay_type)) {
+            SheepApp.getInstance().getNetComponent().getApiService().sdkFindOrder(token, order_no)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            Intent intent = new Intent();
+                            intent.putExtra(EXTRA_NAME_ORDERNO, order_no);
+                            intent.putExtra(EXTRA_NAME_STATUS, STATUS_PAY_ORDER_ERROR);
+                            setResult(RESULT_CODE, intent);
+                            finish();
+                        }
+
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            tryWxOrder();
+                        }
+                    });
+        } else if (PAY_TYPE_MINI.equals(pay_type)) {
+            SheepApp.getInstance().getNetComponent().getApiService().sdkFindOrder(token, order_no)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            Intent intent = new Intent();
+                            intent.putExtra(EXTRA_NAME_ORDERNO, order_no);
+                            intent.putExtra(EXTRA_NAME_STATUS, STATUS_PAY_ORDER_ERROR);
+                            setResult(RESULT_CODE, intent);
+                            finish();
+                        }
+
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            tryMiniOrder();
+                        }
+                    });
+        }
+    }
+
     public void tryWxOrder() {
         SheepApp.getInstance().getNetComponent().getApiService().getPayWxParams(order_no)
                 .subscribeOn(Schedulers.io())

+ 27 - 11
app/src/main/java/com/sheep/gamegroup/view/activity/GameCertificationActivity.java

@@ -30,6 +30,9 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import org.json.JSONException;
+import org.json.JSONObject;
+
 import java.util.List;
 
 import butterknife.BindView;
@@ -70,6 +73,7 @@ public class GameCertificationActivity extends BaseActivity {
     private String packageName;
     private TextProgressBar textProgressBar;
     private boolean isChangeAccount;
+    private String gameToken;
 
     @Override
     protected int getLayoutId() {
@@ -134,6 +138,17 @@ public class GameCertificationActivity extends BaseActivity {
 
     public void initData() {
         extras = getIntent().getExtras();
+        if (extras.containsKey(getString(R.string.kfzs_duanduan_datashare_package_extras))) {
+            String extraJson = extras.getString(getString(R.string.kfzs_duanduan_datashare_package_extras));
+            try {
+                JSONObject jsonObject = new JSONObject(extraJson);
+                if (jsonObject.has("user_behavior") && "validate_token".equals(jsonObject.getString("user_behavior"))) {
+                    gameToken = jsonObject.getString("game_token");
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
         userEntity = DataUtil.getInstance().getUserEntity();
         if (extras != null) {
             SheepApp.getInstance().setGameCode(extras.getString(getString(R.string.kfzs_duanduan_datashare_game_code), ""));
@@ -210,18 +225,19 @@ public class GameCertificationActivity extends BaseActivity {
         if (TextUtils.isEmpty(token)) {
             Jump2View.getInstance().goLoginView(activity, SheepApp.getInstance().getGameCode());
         } else {
-            if (userEntity == null) {
-                CommonUtil.getInstance().updateUserInfo(result -> {
-                    if (result == null) {
-                        Jump2View.getInstance().goLoginView(activity, SheepApp.getInstance().getGameCode());
-                    } else {
-                        userEntity = result;
-                        initWidget();
+            showProgress();
+            CommonUtil.getInstance().updateUserInfo(result -> {
+                hideProgress();
+                if (result == null) {
+                    Jump2View.getInstance().goLoginView(activity, SheepApp.getInstance().getGameCode());
+                } else {
+                    userEntity = result;
+                    initWidget();
+                    if (token.equals(gameToken)) {
+                        CertificationUtil.newInstance().doCertification(this, token, packageName, "validate");
                     }
-                });
-            } else {
-                initWidget();
-            }
+                }
+            });
 
         }
     }

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/RechargeAct.java

@@ -190,12 +190,12 @@ public class RechargeAct extends BaseActivity {
         rechargeAdapter.bindToRecyclerView(act_ral_pay_type_rv);
 
         if (fromToken != null) {
-            if (fromToken.equals(SpUtils.getToken(SheepApp.getInstance()))) {
+            if (SpUtils.getToken(SheepApp.getInstance()).startsWith(fromToken.substring(0, fromToken.indexOf("@")))) {
                 showProgress();
                 getRechargePayway();
             } else {
                 String result = "9001";
-                Jump2View.getInstance().goRechargeResult(RechargeAct.this, result, fromPackage, null, "游戏与小绵羊用户信息不一致");
+                Jump2View.getInstance().goRechargeResult(RechargeAct.this, result, fromPackage, null, "用户信息不一致,请再次确认用户信息");
             }
         } else {
             showProgress();

+ 9 - 9
app/src/main/java/com/sheep/gamegroup/view/activity/RechargeResultAct.java

@@ -38,6 +38,15 @@ public class RechargeResultAct extends BaseActivity {
     @Override
     public void initView() {
         resultStatus = getIntent().getStringExtra("payCode");
+        if (getIntent().hasExtra("gowhere")) {
+            gowhere = getIntent().getStringExtra("gowhere");
+        }
+        if (getIntent().hasExtra("orderno")) {
+            orderno = getIntent().getStringExtra("orderno");
+        }
+        if (getIntent().hasExtra("errMsg")) {
+            errMsg = getIntent().getStringExtra("errMsg");
+        }
         if (TextUtils.equals(resultStatus, "9000")) {
             TitleBarUtils.getInstance()
                     .setTitle(this, "交易成功")
@@ -53,15 +62,6 @@ public class RechargeResultAct extends BaseActivity {
             }
             new DrawablesHelper(tvRechargeResultState).direction(DrawablesHelper.LEFT).drawable(R.mipmap.delete_x_red_img).commit();
         }
-        if (getIntent().hasExtra("gowhere")) {
-            gowhere = getIntent().getStringExtra("gowhere");
-        }
-        if (getIntent().hasExtra("orderno")) {
-            orderno = getIntent().getStringExtra("orderno");
-        }
-        if (getIntent().hasExtra("errMsg")) {
-            errMsg = getIntent().getStringExtra("errMsg");
-        }
     }
 
     @Override

+ 1 - 0
app/src/main/res/values/key_strings.xml

@@ -5,6 +5,7 @@
     <string name="kfzs_duanduan_datashare_package_extras">kfzs:duanduan:game:package:extras</string>
     <string name="kfzs_duanduan_datashare_game_key">kfzs:duanduan:game:key</string>
     <string name="kfzs_duanduan_datashare_certification_key">kfzs:duanduan:certification:key</string>
+    <string name="kfzs_duanduan_datashare_certification_permit">kfzs:duanduan:certification:permit</string>
     <string name="kfzs_duanduan_datashare_certification_cancel">kfzs:duanduan:certification:cancel</string>
     <string name="kfzs_duanduan_datashare_certificationed">kfzs:duanduan:certificationed</string>
     <string name="kfzs_duanduan_datashare_certification_userid">kfzs:duanduan:certification:userid</string>