feat(system): 支持自定义页面与场景值获取微信小程序码
- 修改获取微信小程序码接口,新增page和scene参数支持自定义 - 优先使用传入的scene参数,兼容原订单核销逻辑 - 优先使用传入的page参数,兼容原订单核销页面 - 更新接口文档说明,明确支持数量极多的业务场景下小程序码获取 - 保持登录校验和访问令牌获取不变,确保接口安全性
This commit is contained in:
@@ -965,17 +965,21 @@ public class WxLoginController extends BaseController {
|
||||
return fail("获取失败", null);
|
||||
}
|
||||
|
||||
@Operation(summary = "获取微信小程序码-订单核销码-数量极多的业务场景")
|
||||
@Operation(summary = "获取微信小程序码-数量极多的业务场景(支持自定义页面与场景值)")
|
||||
@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();
|
||||
if(loginUser == null){
|
||||
return fail("请先登录");
|
||||
}
|
||||
String apiUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + getAccessToken(loginUser.getTenantId());
|
||||
final HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("scene", "orderNo=".concat(orderNo));
|
||||
map.put("page", "package/admin/order-scan");
|
||||
// scene 优先用入参,否则回退兼容原订单核销逻辑:orderNo=xxx
|
||||
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");
|
||||
// 获取图片 Buffer
|
||||
byte[] qrCode = HttpRequest.post(apiUrl)
|
||||
|
||||
Reference in New Issue
Block a user