# 微信小程序 · 退款预览 refundRatio 之前永远为 0 — 已修复

- **变更日期**: 2026-04-23
- **PR**: #1313
- **端**: 微信小程序（管理端不涉及）
- **影响面**: 订单退款预览弹窗
- **兼容性**: **纯 bug 修复**，接口/字段/调用方式零变化，前端无需改动

---

## 变化一句话

调用微信小程序退款预览接口时，返回的 `refundRatio`（退款比例，如 `50` = 50%）之前**永远返回 0**；现在会按订单实际绑定的退款政策和出发日期返回正确的比例值。

---

## 相关接口

`POST /mp/refund/preview`（实际路径以 Swagger 为准）

入参结构不变，继续按之前传 `orderId` 即可。

返回 `RefundPreviewVO` 里的字段：

| 字段 | 之前 | 现在 |
|---|---|---|
| `refundRatio` | 恒 `0` | 按退款政策 + 距离出发天数查表得出的真实比例（0~100）|
| `refundAmount` | 基于 ratio=0 计算 → 恒 `0` | 按真实比例计算 |
| 其它字段 | 正常 | 不变 |

---

## 根因（一句话，前端可忽略）

微信小程序侧 Feign 只传了 `orderId`，后端 Service 期望同时传 `policyId/paidAmount/departureDate` 才能匹配策略；旧版直接拿 null 去查，匹配不到策略导致 ratio=0。本次后端按 `orderId` 反查订单主表自动补齐这些参数。

---

## 不影响范围

- 管理端退款预览（`/admin/refund/preview`）已经传齐参数，**零影响**
- 实际退款提交流程（preview 之后的 `apply / approve`）**零影响**
- 退款政策、订单金额、已付金额等字段**零影响**

---

## 建议前端验收一个点

之前因为 ratio 恒 0 导致"退款弹窗金额显示 0、用户不敢点"的场景，现在应回到正常金额。发布后请重点点一次"申请退款"弹窗确认数字正确。

---

## 相关

- PR：[wx/HL#1313](https://git.1814.love:8443/wx/HL/pulls/1313)
- 部署：`hl-order-service-v2`（8094）
