Jelajahi Sumber

fix 付款码支付非立即扣款时,用户超时付款将导致无法获取支付结果+清单,因此添加支付超时时长

robin 4 tahun lalu
induk
melakukan
113bbe0b51

+ 1 - 1
app/src/main/java/com/doverfuelingsolutions/issp/api/WayneApiConfig.kt

@@ -7,7 +7,7 @@ class WayneApiConfig {
 
     companion object {
 
-        const val timeoutConnect = 600L
+        const val timeoutConnect = 120L
         const val timeoutAll = 180L
 
         const val PATH_BASE_TOKEN = "token"

+ 4 - 0
app/src/main/java/com/doverfuelingsolutions/issp/api/basic/RetrofitUtil.kt

@@ -13,10 +13,14 @@ object RetrofitUtil {
     private val authInterceptor = AuthInterceptor()
     private val basicHttpBuilder = OkHttpClient.Builder()
         .connectTimeout(WayneApiConfig.timeoutConnect, TimeUnit.SECONDS)
+        .readTimeout(WayneApiConfig.timeoutAll, TimeUnit.SECONDS)
+        .writeTimeout(WayneApiConfig.timeoutAll, TimeUnit.SECONDS)
         .callTimeout(WayneApiConfig.timeoutAll, TimeUnit.SECONDS) // timeout for complete call
         .addInterceptor(loggingInterceptor)
     private val authHttpBuilder = OkHttpClient.Builder()
         .connectTimeout(WayneApiConfig.timeoutConnect, TimeUnit.SECONDS)
+        .readTimeout(WayneApiConfig.timeoutAll, TimeUnit.SECONDS)
+        .writeTimeout(WayneApiConfig.timeoutAll, TimeUnit.SECONDS)
         .callTimeout(WayneApiConfig.timeoutAll, TimeUnit.SECONDS)
         .addInterceptor(loggingInterceptor)
         .addInterceptor(authInterceptor)

+ 7 - 2
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/FragmentPayScanCode.kt

@@ -90,7 +90,7 @@ class FragmentPayScanCode(private val dc: DeviceClass, private val posTrx: PosTr
             val result = SystemApi.pay(posTrx, scanValue)
             dialog.dismiss()
 
-            if (result.success && result.data != null) {
+            if ((result.success && result.data != null) || (!result.success && result.message == "此订单已支付,请勿重复支付")) {
                 // 支付成功后,移除本地云订单,清单
                 GlobalScope.launch(Dispatchers.IO) {
                     SPUtil.removeWayneOrder(dc)
@@ -105,7 +105,12 @@ class FragmentPayScanCode(private val dc: DeviceClass, private val posTrx: PosTr
                     }
                 }
 
-                (activity as MainActivity).fragmentRouter.push(FragmentPayResult.build(dc, result.data.PosTrx))
+                if (result.success) {
+                    (requireActivity() as MainActivity).fragmentRouter.push(FragmentPayResult.build(dc, result.data!!.PosTrx))
+                } else {
+                    DFSToastUtil.fail(result.message)
+                    (requireActivity() as MainActivity).fragmentRouter.popBottom()
+                }
             } else {
                 DFSToastUtil.fail(result.message)
                 viewModel.scanTip.value = StringUtil.get(R.string.plz_scan_again)