# Quickstart: 可配置支付方式(031-pay-method-config) **Date**: 2026-09-11 | **Spec**: [spec.md](spec.md) | **Contracts**: [contracts/api.md](contracts/api.md) 验证场景按 spec Success Criteria 展开。环境要求:本地编译用 JDK21(`C:\Users\qmj\.jdks\graalvm-jdk-21.0.7` 临时 JAVA_HOME);数据库变更已手动执行 `updatesql/sql.md` 中 031 各条;本地 Redis 可用(起服务时)。 ## 0. 编译与单测 ```bash export JAVA_HOME="C:\Users\qmj\.jdks\graalvm-jdk-21.0.7" && export PATH="$JAVA_HOME/bin:$PATH" mvn compile -q -DskipTests # 编译 mvn test -pl ruoyi-admin -am -Dtest='PaymentMethodGate*,PayMethod*,BankCard*,FlashDelivery*' -Dsurefire.failIfNoSpecifiedTests=false ``` 重点单测(对照 FR): - 闸门服务:平台关/商家未选/不就绪 三独立原因都拒绝;缺行=开;CARD_OMG 组 2+5 联动;COD 默认开;现金不校验 - 三下单入口:各传被禁方式 → `pay.method.not.available` 国际化消息 - 抢单过滤:骑手只接受现金 → 银行转账单不出现;NULL=全部 - 银行卡:启用新卡停旧卡(事务);删除启用卡后线下转账不就绪 - 迁移:三字段齐全才生成启用卡 ## 1. 平台开关即时生效(SC-001) 1. 平台端"支付方式设置"页:关闭 `LINE_PAY × MERCHANT` 2. 用户端任意商家结算页刷新 → LINE Pay 消失 3. 重新开启 → 恢复(无重启) 4. `LINE_PAY × RIDER_FLASH` 保持开 → 闪送下单仍可选 LINE Pay(维度独立交叉验证) ## 2. 下单校验堵漏(SC-002) 用 curl 直连(绕过前端),向 `/system/order/createOrder` 提交 `paymentMethod=3`(平台已关 LINE_PAY): - 预期:HTTP 200 但 code=500,msg 为所请求语言的"该支付方式当前不可用" - zh-TW / en / vi 各请求一次(Accept-Language 或用户语言上下文),文案随语言切换 ## 3. 存量零回归(SC-003) 1. 升级部署后不执行任何设置操作 2. 抽样存量商家下单(各支付方式)、商家建单(到付)、闪送下单(现金/转账) 3. 行为与升级前一致;`SELECT COUNT(*) FROM payment_method_config` 可为 0(缺行=开) 4. 抽样骑手(未设置 flash_pay_methods)抢单列表 → 全部平台开放方式的订单可见 ## 4. 027 迁移不回退(SC-004) ```sql -- 迁移后核对(测试库只读冒烟,pymysql) SELECT COUNT(*) FROM info_user WHERE bank_name<>'' AND bank_account_no<>'' AND bank_account_name<>'' AND user_id NOT IN (SELECT user_id FROM info_bank_card WHERE is_active=1); -- 预期 0(三字段齐全者 100% 迁移为启用卡) ``` 再调 `GET /chanting/store/bankInfo?id={已迁移商家门店}` → 三字段值与迁移前一致;平台关 OFFLINE_TRANSFER×MERCHANT 再调 → data=null(老客户端自然隐藏)。 ## 5. 抢单过滤与确认收款(SC-005 / FR-013) 1. 骑手 A 设置只接受 `COD`;用户创建 LINE Pay 闪送单 2. 骑手 A 新任务列表无此单;骑手 B(未设置)可见 3. 骑手 B 接单→取件→送达(不确认收款),用户确认收货 → 订单正常完成,收款状态=未收 4. 骑手 B 补确认收款 → payment_status=1,flash_delivery_order_log 增 RIDER 操作行;重复调用幂等成功 ## 6. 前端页面冒烟 - admin-vue 支付方式设置页:矩阵渲染、开关切换、@Log 入库、四语言切换无 key 裸奔 - foodie-store 支付设置页:勾选保存→再进回显;银行卡增删改启用;四语言