fix(WxLoginController): 修正 getOrderQRCodeUnlimited 接口 scene 参数逻辑
- 调整 scene 参数优先级为:显式 scene > 自定义页面使用原始 orderNo > 兼容原订单核销 scene=orderNo=xxx - 当传入页面参数时,scene 直接使用原始 orderNo,满足小程序端 options.scene 读取需求 - page 参数无传入时默认设置为 package/admin/order-scan,保持兼容旧版订单核销页面 - 保证原有订单核销逻辑和接口调用行为向下兼容无影响
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
# 2026-09-01 工作记录
|
||||||
|
|
||||||
|
## 修复 getOrderQRCodeUnlimited scene 参数 bug
|
||||||
|
- 文件:`src/main/java/com/gxwebsoft/common/system/controller/WxLoginController.java`
|
||||||
|
- 问题:后台管理端调用 `/getOrderQRCodeUnlimited/e9?page=pages/event/detail/index` 时,因未传 `scene`,回退逻辑生成 `scene=orderNo=e9`,而 `pages/event/detail/index` 页面期望 `scene=e9`(直接读 options.scene)。
|
||||||
|
- 修复:scene 取值优先级改为 `显式 scene > 自定义页面用原始 orderNo > 兼容原订单核销(orderNo=xxx)`;page 无参时默认 `package/admin/order-scan`。
|
||||||
|
- 兼容性:原订单核销用法(不带参数)行为不变;自定义页面默认用原始 orderNo;需 `orderNo=` 格式可显式传 `?scene=orderNo=e9`。
|
||||||
@@ -980,8 +980,18 @@ public class WxLoginController extends BaseController {
|
|||||||
}
|
}
|
||||||
String apiUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + getAccessToken(loginUser.getTenantId());
|
String apiUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + getAccessToken(loginUser.getTenantId());
|
||||||
final HashMap<String, Object> map = new HashMap<>();
|
final HashMap<String, Object> map = new HashMap<>();
|
||||||
// scene 优先用入参,否则回退兼容原订单核销逻辑:orderNo=xxx
|
// scene 优先级:显式 scene > 自定义页面用原始 orderNo > 兼容原订单核销(orderNo=xxx)
|
||||||
map.put("scene", StrUtil.isNotBlank(scene) ? scene : "orderNo=".concat(orderNo));
|
String sceneValue;
|
||||||
|
if (StrUtil.isNotBlank(scene)) {
|
||||||
|
sceneValue = scene;
|
||||||
|
} else if (StrUtil.isNotBlank(page)) {
|
||||||
|
// 自定义页面场景:小程序端通过 options.scene 直接读取业务值(如活动/订单号)
|
||||||
|
sceneValue = orderNo;
|
||||||
|
} else {
|
||||||
|
// 兼容原订单核销场景:scene=orderNo=xxx,默认跳转 package/admin/order-scan
|
||||||
|
sceneValue = "orderNo=".concat(orderNo);
|
||||||
|
}
|
||||||
|
map.put("scene", sceneValue);
|
||||||
// page 优先用入参,否则回退兼容原订单核销页面
|
// page 优先用入参,否则回退兼容原订单核销页面
|
||||||
map.put("page", StrUtil.isNotBlank(page) ? page : "package/admin/order-scan");
|
map.put("page", StrUtil.isNotBlank(page) ? page : "package/admin/order-scan");
|
||||||
map.put("env_version", "trial");
|
map.put("env_version", "trial");
|
||||||
|
|||||||
Reference in New Issue
Block a user