扫码支付 HTTP 超时时间配置实施计划

执行要求:使用 subagent-driven-development 或 executing-plans 按任务执行并保留检查点。

目标:为当前 5 个可达支付页面增加可配置的扫码支付 HTTP 读取超时,默认 30 秒,允许输入 1~100 秒,其他请求继续使用原有 5 秒超时。

架构:设置页通过独立配置类持久化和校验;扫码支付通过专用 OkHttp 客户端工厂只覆盖 readTimeout。保留原支付请求重载,确保 NewQuotaActivity 和 PaymentManager 不改动。

技术栈:Android Java、SharedPreferences、Retrofit 2.1.0、OkHttp 3.9.0、RxJava 2、JUnit 4、XML Layout。

文件结构

新增源码

修改源码

明确不修改

Task 1:建立扫码支付超时配置策略

文件:Constants.java、新增 QrcodePaymentTimeoutConfig.java 和对应测试。

./gradlew :app:testDebugUnitTest --tests com.cpt.cusumption.utils.QrcodePaymentTimeoutConfigTest

Task 2:建立扫码支付专用 HTTP 客户端

文件:新增 QrcodePaymentHttpClientFactory.java 和测试,修改 RetrofitClient.java。

./gradlew :app:testDebugUnitTest \
  --tests com.cpt.cusumption.utils.QrcodePaymentTimeoutConfigTest \
  --tests com.cpt.cusumption.network.QrcodePaymentHttpClientFactoryTest

Task 3:让当前 5 个页面显式选择扫码支付超时

文件:RetrofitRequest.java 和 5 个当前可达支付页面。

git diff -- app/src/main/java/com/cpt/cusumption/activity/NewQuotaActivity.java \
  app/src/main/java/com/cpt/cusumption/utils/PaymentManager.java
./gradlew :app:compileDebugJavaWithJavac

Task 4:实现 1~100 秒输入弹框

文件:新增输入弹框 Java/XML,修改字符串资源。

Task 5:在支付设置页接入配置

文件:fragment_payment_layout.xml、FragmentPayment.java。

Task 6:完成回归验证

Task 7:更新提示工程变更记录

在 zhctprompt/work_android/CusumptionMachine/change_records/ 创建同名 Markdown 和 HTML,记录背景、实际文件、配置边界、5 个覆盖页面、排除项、验证结果和限制。

Git 边界

每个任务只执行只读状态和差异检查。不要暂存、提交或推送,除非用户后续明确授权。