【官方文档】:shortlink.generate
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/short-link/shortlink.generate.html
需求:
获取小程序 Short Link 方法
@Value("${wxmini.appId:}")
private String appId;
@Value("${wxmini.appSecret:}")
private String appSecret;
/**
* 微信API服务
*/
private WxMaService wxMaService;
@PostConstruct
public void init() {
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
config.setAppid(appId);
config.setSecret(appSecret);
wxMaService = new WxMaServiceImpl();
wxMaService.setWxMaConfig(config);
}
/**
* 获取小程序 Short Link
*/
public String getShortLink(String pageUrl, String pageTitle, boolean isPermanent) throws Exception {
try {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("page_url", pageUrl);
jsonObject.addProperty("page_title", pageTitle);
jsonObject.addProperty("is_permanent", isPermanent);
String res = this.wxMaService.post("https://api.weixin.qq.com/wxa/genwxashortlink", jsonObject.toString());
if (StringUtils.isBlank(res)) {
throw new Exception("获取小程序 Short Link异常");
}
JSONObject obj = JSONObject.parseObject(res);
return obj.getString("link");
} catch (Exception e) {
log.error("获取小程序 Short Link异常,msg=" + e.getMessage(), e);
throw new Exception("获取小程序 Short Link异常");
}
}
配置:
版本比较老,自行升级
<properties>
<java.version>1.8</java.version>
<binarywang.version>3.9.6.B</binarywang.version>
<!-- <binarywang.version>4.1.8.B</binarywang.version> -->
</properties>
<!-- 微信开放平台(包含小程序、app、公众号) -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-open</artifactId>
<version>${binarywang.version}</version>
</dependency>
# 微信小程序 配置
wxmini.appId=
wxmini.appSecret=
踩过的坑:
"errcode":40066,"errmsg":"invalid url"
url 需要是发布的小程序有的 url 。
不是指的请求 url “https://api.weixin.qq.com/wxa/genwxashortlink”,
而是参数 “page_url”