你是一名资深前端原型工程师。你的任务是：为“原型工程（/specs/prototypes/）”补齐移动端结算与支付流程页面，确保可演示“确认订单 → 选择支付方式 → 支付结果”的闭环。

路由（必须）：
1. 移动端路由前缀必须为 `/m/*`。
2. 结算/支付页路由为 `/m/payment`（必须稳定可访问）。
3. 支付页必须以“订单入口”进入：
   - 必须从 `/m/orders` 或 `/m/orders/:id` 的“去支付”按钮跳转进入（携带 `orderId`）。
4. 支付结果页（必须）：
   - 支付结果路由为 `/m/payment/result`（必须稳定可访问），通过 query 参数体现结果状态（例如 `?status=success|fail&orderId=...`）。

页面结构（必须）：
1. 顶部栏：返回 + 标题“确认支付”。
2. 订单摘要：
   - 商品列表（可只展示 1~3 个缩略项）+ 合计件数
   - 金额明细：商品小计、优惠、运费、应付合计（金额格式化：千分位 + 两位小数，右对齐）
   - 优惠明细必须可展开查看（至少包含：使用的优惠券/优惠类型、是否可叠加、有效期、抵扣金额）
3. 配送与联系人（占位即可但要可编辑）：
   - 收货地址选择（mock 列表 + 选择态）
   - 联系方式展示需脱敏（例如手机号中间 4 位隐藏）
4. 支付方式选择（必须）：
   - 至少 3 种：余额/银行卡/第三方（示例即可）
   - 选择后写回 mock
5. 优惠与券（必须可演示，需覆盖多样性）：
   - 必须提供“选择优惠券/输入优惠码”入口（二选一不可，必须至少支持选择优惠券）
   - 必须覆盖至少 4 类优惠：满减、固定比例折扣、指定商品/服务折扣、免运费
   - 每张券必须有有效期（start/end 或 expiredAt），过期不可用并提示
   - 低值券：至少 1 张面额较低的券用于验证链路
   - 叠加规则：至少包含“可叠加/不可叠加”两类券，并在 UI 上明确提示与限制
   - 客群限制：至少 1 张券要求特定客群可用（例如新用户/会员等级），不满足则置灰并提示
   - 选择优惠后必须实时重算应付金额，并写回 mock（含抵扣明细）
6. 协议确认（必须）：
   - 展示“我已阅读并同意相关协议”Checkbox
   - 点击“查看协议”跳转到 `/m/agreement`
   - 未勾选时，“立即支付”按钮不可用并提示原因
7. 底部吸底操作栏（必须）：
   - “立即支付”按钮：触发支付请求（mock）并进入结果状态

交互与状态（必须可演示）：
1. 支付结果：
   - 支付完成后必须跳转到 `/m/payment/result` 展示结果（禁止只在原页面 toast 了事）
   - 成功态 UI（必须）：
     - 成功图标/状态标题（如“支付成功”）+ 核心金额（应付合计）
     - 订单信息摘要（订单号/支付方式/支付时间）
     - 动作区：至少包含“查看订单详情（/m/orders/:id）”“返回首页（/m）”，可加“再次购买/分享”占位
   - 失败态 UI（必须）：
     - 失败图标/状态标题（如“支付失败”）+ 失败原因（mock）
     - 动作区：至少包含“重试支付（回到 /m/payment）”“查看订单”，可加“联系客服”占位
2. 加载/错误：提交支付时需显示 Loading；失败需提示并可重试。
3. 幂等与防抖：重复点击“立即支付”不得重复发起请求。

数据要求（必须）：
1. 支付页默认从购物车 mock 派生订单（例如 `mock.orderDraft`），至少包含：orderId、items、amount、discount、discountDetails、shipping、payable、address、payMethod、agreed。
2. 若无购物车数据：提供一键生成示例订单按钮（用于演示）。

与 Landing 串联（必须）：
1. 移动端 Landing 的金刚区不允许直接提供“支付”入口；支付类必须以“订单列表”作为入口（跳转到 `/m/orders`）。
