Browse Source

修改webView支付JS回调通知

Pq 3 years ago
parent
commit
e3ab5d1bc8

+ 14 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/AppUtils.java

@@ -2,6 +2,7 @@ package com.cooleshow.base.utils;
 
 import android.app.Activity;
 import android.app.ActivityManager;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
@@ -981,4 +982,17 @@ public final class AppUtils {
                     "\n}";
         }
     }
+
+
+    /**
+     * 检测是否安装支付宝
+     * @return     * @param context
+     */
+    public static boolean checkAliPayInstalled(Context context){
+        Uri uri = Uri.parse("alipays://platformapi/startApp");
+        Intent intent = new Intent(Intent.ACTION_VIEW,uri);
+        ComponentName componentName = intent.resolveActivity(context.getPackageManager());
+        return componentName!=null;
+
+    }
 }

+ 33 - 18
student/src/main/java/com/cooleshow/student/ui/main/MallFragment.java

@@ -47,6 +47,7 @@ import com.cooleshow.base.common.WebConstants;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.data.net.RetrofitClientNoToken;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.UriUtils;
@@ -511,6 +512,10 @@ public class MallFragment extends BaseMVPFragment<FragmentMallBinding, ShopMallP
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(getContext())) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -531,6 +536,10 @@ public class MallFragment extends BaseMVPFragment<FragmentMallBinding, ShopMallP
             payThread.start();
         } else {
             //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -1109,24 +1118,30 @@ public class MallFragment extends BaseMVPFragment<FragmentMallBinding, ShopMallP
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 }

+ 33 - 19
student/src/main/java/com/cooleshow/student/ui/web/AccompanyFragment.java

@@ -44,6 +44,7 @@ import com.cooleshow.base.recorder.MsRecorder;
 import com.cooleshow.base.recorder.PullTransport;
 import com.cooleshow.base.recorder.Recorder;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.HeadsetPlugListener;
 import com.cooleshow.base.utils.HeadsetPlugReceiver;
 import com.cooleshow.base.utils.PermissionUtils;
@@ -1802,6 +1803,10 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(getContext())) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -1822,6 +1827,10 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
             payThread.start();
         } else {
             //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -1832,7 +1841,6 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
             req.timeStamp = weixinPayInfo.getTimestamp();
             req.packageValue = weixinPayInfo.getPackageValue();
             req.sign = weixinPayInfo.getSign();
-
 //                    req.extData			= "app data"; // optional
             //正在前往微信支付
             // 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
@@ -2146,24 +2154,30 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 }

+ 35 - 21
student/src/main/java/com/cooleshow/student/ui/web/HtmlActivity.java

@@ -50,6 +50,8 @@ import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.data.net.RetrofitClientNoToken;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.utils.AppUtils;
+import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.UriUtils;
@@ -541,6 +543,10 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(this)) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -561,6 +567,10 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
             payThread.start();
         } else {
             //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -595,15 +605,13 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
         } catch (JSONException e) {
             e.printStackTrace();
         }
-
-
-//        onSendMessage();
     }
 
     private boolean goPay = false;
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void loadEventBus(WxPayResult payResult) {
+        LogUtils.i("pq", "payResult:" + payResult.resultCode);
         if (goPay) {
             if (payResult.resultCode == 0) {
                 sendPayResult(Constants.PAY_SUCCESS);
@@ -1273,24 +1281,30 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 

+ 33 - 18
student/src/main/java/com/cooleshow/student/ui/web/HtmlHorizontalScreenActivity.java

@@ -49,6 +49,7 @@ import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.data.net.RetrofitClientNoToken;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.UriUtils;
@@ -546,6 +547,10 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(this)) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -566,6 +571,10 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
             payThread.start();
         } else {
             //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -1265,24 +1274,30 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 }

+ 3 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/income/WithdrawalActivity.java

@@ -43,6 +43,9 @@ public class WithdrawalActivity extends BaseMVPActivity<ActivityWithdrawalBindin
                 break;
             case R.id.tv_confirm_withdrawal:
                 String amountWithdrawal = viewBinding.etPrice.getText().toString().trim();
+                if (TextUtils.isEmpty(amountWithdrawal)) {
+                    return;
+                }
                 if (Double.parseDouble(amountWithdrawal) <= mWithdrawalInfo.withdrawalServiceFee) {
                     ToastUtils.showShort("结算金额需要大于手续费");
                     break;

+ 35 - 19
teacher/src/main/java/com/cooleshow/teacher/ui/main/MallFragment.java

@@ -45,6 +45,7 @@ import com.cooleshow.base.common.WebConstants;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.data.net.RetrofitClientNoToken;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.widgets.DialogUtil;
@@ -506,6 +507,10 @@ public class MallFragment extends BaseMVPFragment<FragmentMallBinding, ShopMallP
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(getContext())) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -526,6 +531,11 @@ public class MallFragment extends BaseMVPFragment<FragmentMallBinding, ShopMallP
             payThread.start();
         } else {
             //微信
+            //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -546,7 +556,7 @@ public class MallFragment extends BaseMVPFragment<FragmentMallBinding, ShopMallP
     }
 
     @Override
-    public void savePicture(String base64,String uuid) {
+    public void savePicture(String base64, String uuid) {
 
     }
 
@@ -1105,24 +1115,30 @@ public class MallFragment extends BaseMVPFragment<FragmentMallBinding, ShopMallP
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 }

+ 33 - 20
teacher/src/main/java/com/cooleshow/teacher/ui/web/AccompanyFragment.java

@@ -45,6 +45,7 @@ import com.cooleshow.base.recorder.PullTransport;
 import com.cooleshow.base.recorder.Recorder;
 import com.cooleshow.base.ui.fragment.BaseFragment;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.HeadsetPlugListener;
 import com.cooleshow.base.utils.HeadsetPlugReceiver;
 import com.cooleshow.base.utils.PermissionUtils;
@@ -1807,6 +1808,10 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(getContext())) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -1827,6 +1832,10 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
             payThread.start();
         } else {
             //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -1881,7 +1890,6 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                     // 判断resultStatus 为9000则代表支付成功
                     if (TextUtils.equals(resultStatus, "9000")) {
                         // 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
-//                        isAlipayOk = true;
                         ToastUtils.showShort("支付成功");
                         sendPayResult(Constants.PAY_SUCCESS);
                     } else {
@@ -2145,31 +2153,36 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
 
     }
 
-
     /**
      * 发送支付结果
      *
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 }

+ 33 - 18
teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlActivity.java

@@ -50,6 +50,7 @@ import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.data.net.RetrofitClientNoToken;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.UriUtils;
@@ -539,6 +540,10 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(this)) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -559,6 +564,10 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
             payThread.start();
         } else {
             //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -1264,24 +1273,30 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 

+ 39 - 25
teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlHorizontalScreenActivity.java

@@ -50,6 +50,7 @@ import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.data.net.RetrofitClientNoToken;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.UriUtils;
@@ -112,8 +113,7 @@ import okhttp3.ResponseBody;
 /**
  * 创建日期:2022/6/8 18:25
  *
- * @author
- * 类说明:
+ * @author 类说明:
  */
 @Route(path = RouterPath.WebCenter.ACTIVITY_HORIZONTAL_SCREEN_HTML)
 public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Binding> implements JsInterfaceUtils.onGetMethodsListener {
@@ -545,6 +545,10 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
     @Override
     public void paymentOrder(String orderNo, String payChannel, String payInfo) {
         if (payChannel.equals("ali_app")) {
+            if (!AppUtils.checkAliPayInstalled(this)) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             String orderInfo = payInfo;
             final Runnable payRunnable = new Runnable() {
                 @Override
@@ -565,6 +569,10 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
             payThread.start();
         } else {
             //微信
+            if (!api.isWXAppInstalled()) {
+                sendPayResult(Constants.PAY_ERROR_BY_NOT_INSTALL);
+                return;
+            }
             Gson gson = new Gson();
             WeixinPayInfo weixinPayInfo = gson.fromJson(payInfo, WeixinPayInfo.class);
             PayReq req = new PayReq();
@@ -585,7 +593,7 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
     }
 
     @Override
-    public void savePicture(String base64,String uuid) {
+    public void savePicture(String base64, String uuid) {
 
     }
 
@@ -1203,7 +1211,7 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
         public void onResult(SHARE_MEDIA platform) {
 
             if (platform.name().equals("WEIXIN_FAVORITE")) {
-                ToastUtils.showShort( "收藏成功啦");
+                ToastUtils.showShort("收藏成功啦");
             } else {
                 if (platform != SHARE_MEDIA.MORE && platform != SHARE_MEDIA.SMS
                         && platform != SHARE_MEDIA.EMAIL
@@ -1217,7 +1225,7 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
                         && platform != SHARE_MEDIA.GOOGLEPLUS
                         && platform != SHARE_MEDIA.YNOTE
                         && platform != SHARE_MEDIA.EVERNOTE) {
-                    ToastUtils.showShort( "分享成功啦");
+                    ToastUtils.showShort("分享成功啦");
                 }
 
             }
@@ -1237,7 +1245,7 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
                     && platform != SHARE_MEDIA.GOOGLEPLUS
                     && platform != SHARE_MEDIA.YNOTE
                     && platform != SHARE_MEDIA.EVERNOTE) {
-                ToastUtils.showShort( "分享失败啦");
+                ToastUtils.showShort("分享失败啦");
 
             }
 
@@ -1245,7 +1253,7 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
 
         @Override
         public void onCancel(SHARE_MEDIA platform) {
-            ToastUtils.showShort( "分享取消了");
+            ToastUtils.showShort("分享取消了");
         }
     }
 
@@ -1263,24 +1271,30 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
      * @param payResult
      */
     private void sendPayResult(int payResult) {
-        //支付成功
-        if (payResult == Constants.PAY_SUCCESS) {
-            onSendMessage("'paymentOperation',result:success");
-            return;
-        }
-        //支付失败
-        if (payResult == Constants.PAY_ERROR) {
-            onSendMessage("'paymentOperation',result:error");
-            return;
-        }
-        //支付未安装
-        if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
-            onSendMessage("'paymentOperation',result:fail");
-            return;
-        }
-        //支付取消
-        if (payResult == Constants.PAY_CANCEL) {
-            onSendMessage("'paymentOperation',result:cancel");
+        JSONObject jsonObject = new JSONObject();
+        JSONObject contentJson = new JSONObject();
+        try {
+            jsonObject.put("api", "paymentOperation");
+            //支付成功
+            if (payResult == Constants.PAY_SUCCESS) {
+                contentJson.put("status", "success");
+            }
+            //支付失败
+            if (payResult == Constants.PAY_ERROR) {
+                contentJson.put("status", "error");
+            }
+            //支付未安装
+            if (payResult == Constants.PAY_ERROR_BY_NOT_INSTALL) {
+                contentJson.put("status", "fail");
+            }
+            //支付取消
+            if (payResult == Constants.PAY_CANCEL) {
+                contentJson.put("status", "cancel");
+            }
+            jsonObject.put("content", contentJson);
+            onSendMessage(jsonObject.toString());
+        } catch (JSONException e) {
+            e.printStackTrace();
         }
     }
 }