微信生成外部链接

时间:2025-02-28 21:33:35
import cn.binarywang.wx.miniapp.api.WxMaService; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * @author * @date 2022/2/28 14:37 */ @Slf4j @AllArgsConstructor @Component public class WxUrlUtil { //刚才注册到spring里面的wxservice private final WxMaService wxMaService; /** * 生成微信跳转链接,用于钉钉跳转 * 目前钉钉内部安卓可以直接跳到微信,但是ios不能跳转 * 但是通过外部浏览器能打开 * * @param path 微信小程序路径(如果为空默认就进入的是小程序首页) * @param query 进入小程序的参数(配合有参的路径用) * @return 微信url,如果生成失败返回一个默认地址 */ public String getWxUrl(String path, String query) { try { String accessToken = wxMaService.getAccessToken(); //构建请求参数 JSONObject paramMap = new JSONObject(); //通过 URL Link 进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query 。path 为空时会跳转小程序主页 paramMap.put("path", path); //小程序页面的参数,直接为:参数=值 if (!StrUtil.isEmpty(query)) { paramMap.put("query", query); } //生成的 URL Link 类型,到期失效:true,永久有效:false paramMap.put("is_expire", true); //小程序 URL Link 失效类型,失效时间:0,失效间隔天数:1 paramMap.put("expire_type", 1); //到期失效的URL Link的失效间隔天数。生成的到期失效URL Link在该间隔时间到达前有效。最长间隔天数为365天。expire_type 为 1 必填 paramMap.put("expire_interval", 60); //执行post String generateLinkUrl = "/wxa/generate_urllink?access_token=ACCESS_TOKEN"; String postUrl = generateLinkUrl.replaceAll("ACCESS_TOKEN", accessToken); String result = HttpUtil.post(postUrl, paramMap.toString()); System.out.println(result); JSONObject jsonObject = JSONObject.parseObject(result); String wxUrl = jsonObject.getString("url_link"); return StrUtil.isEmpty(wxUrl) ? "默认地址" : wxUrl; } catch (Exception e) { log.error("微信链接生成失败:错误信息:{}", e.getMessage()); } //如果生成链接失败就返回kpi首页地址 return "默认地址"; } }