feat(system): 支持自定义页面与场景值获取微信小程序码

- 修改获取微信小程序码接口,新增page和scene参数支持自定义
- 优先使用传入的scene参数,兼容原订单核销逻辑
- 优先使用传入的page参数,兼容原订单核销页面
- 更新接口文档说明,明确支持数量极多的业务场景下小程序码获取
- 保持登录校验和访问令牌获取不变,确保接口安全性
This commit is contained in:
2026-08-31 17:55:49 +08:00
parent d93c4684ee
commit 539819d474
@@ -965,17 +965,21 @@ public class WxLoginController extends BaseController {
return fail("获取失败", null); return fail("获取失败", null);
} }
@Operation(summary = "获取微信小程序码-订单核销码-数量极多的业务场景") @Operation(summary = "获取微信小程序码-数量极多的业务场景(支持自定义页面与场景值)")
@GetMapping("/getOrderQRCodeUnlimited/{orderNo}") @GetMapping("/getOrderQRCodeUnlimited/{orderNo}")
public ApiResult<?> getOrderQRCodeUnlimited(@PathVariable("orderNo") String orderNo) { public ApiResult<?> getOrderQRCodeUnlimited(@PathVariable("orderNo") String orderNo,
@RequestParam(required = false) String page,
@RequestParam(required = false) String scene) {
final User loginUser = getLoginUser(); final User loginUser = getLoginUser();
if(loginUser == null){ if(loginUser == null){
return fail("请先登录"); return fail("请先登录");
} }
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<>();
map.put("scene", "orderNo=".concat(orderNo)); // scene 优先用入参,否则回退兼容原订单核销逻辑:orderNo=xxx
map.put("page", "package/admin/order-scan"); map.put("scene", StrUtil.isNotBlank(scene) ? scene : "orderNo=".concat(orderNo));
// page 优先用入参,否则回退兼容原订单核销页面
map.put("page", StrUtil.isNotBlank(page) ? page : "package/admin/order-scan");
map.put("env_version", "trial"); map.put("env_version", "trial");
// 获取图片 Buffer // 获取图片 Buffer
byte[] qrCode = HttpRequest.post(apiUrl) byte[] qrCode = HttpRequest.post(apiUrl)