fix(merchant): 通道侧配置失败的进件允许重新提交,不再永久卡在 pending
商户进件在通道侧被明确拒绝后,会永远停在 pending,而且**连重新提交的机会都没有**:
- 进件页 onShow 见到 pending/approved 就 redirectTo 到"审核中"页,商户进不到表单;
- submitOnboarding 按门店查到 active 进件就直接返回旧记录,不再向通道提交;
- 银行卡校验会拦"该银行卡已有审核中的进件",同一张卡也用不了。
本地开发没有公网 IP、收不到汇付异步通知时尤其容易触发:这次个人进件(application 450)
微信小程序支付配置返回 20002,wechat_config_status=failed,记录就停在 pending 出不来了。
改动:
- retryable(row):微信小程序支付配置或商户业务开通任一为 failed,即视为"通道侧已明确失败、
可以重新提交"。进行中的申请(not_started/processing)不受影响。
- submitOnboarding:active 进件为 retryable 时不再直接返回旧记录;提交前把旧进件收口成
rejected,从而解开按门店查 active 的判断,以及银行卡"已有审核中/已通过进件"的占用,
商户可以用同一张卡重新提交。
- onboarding() 响应增加 retryable 字段;settlement.uts 的 SettlementOnboarding 同步。
- 进件页与等待页:retryable 的 pending/approved 不再跳转/停留,回到表单让商户重填。
新增 MerchantOnboardingRetryTests 4 项(两种 failed 可重试、进行中不可重试、缺失状态按不可重试),
连同支付相关测试共 34 项通过。