因为现在第一个百度实现短连接是需要企业认证权限的,所以百度现如今实现短连接已不大可能。看之前大家的讨论,新浪的貌似也不行。最后就只剩下微信实现,看见之前的同学实现的代码,我也做了出来。运行是没问题,可这个短网址根本不能用啊。代码如下:
public class ShortNetAddressUtil {
static String appid = "wx2c08f7b3e25db965";
static String appsrcret = "682afacdc63e53b28388bcc01db52a22";
public static void main(String[] args) {
String longUrl = "https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login";
System.out.println(getShortURL(longUrl));
}
/**
* 微信根据APPID和APPSECRET获取token
*
* @param appid
* @param appsrcret
* @return 返回转换后的短链接
*/
public static String getToken(String appid, String appsrcret) throws Exception {
// 访问地址
String TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
String APPID = appid;
String APPSECRET = appsrcret;
String request_url = TOKEN_URL.replace("APPID", APPID).replace("APPSECRET", APPSECRET);
JSONObject jsonObject = HttpUtils.httpsUtil(request_url, "GET", null);
if (null != jsonObject) {
String access_token = jsonObject.getString("access_token");
return access_token;
}
return null;
}
public static String getShortURL(String longUrl) {
ResultBean<String> result = new ResultBean<>();
String token;
try {
token = getToken(appid, appsrcret);
String uri = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN";
String url = uri.replace("ACCESS_TOKEN", token);
String param = "{\"action\":\"long2short\","
+ "\"long_url\":\""+longUrl+"\"}";
// 调用接口创建菜单
JSONObject jsonObject = HttpUtils.httpRequest(url, "POST", param);
System.out.println(jsonObject);
if (null != jsonObject) {
result.setCode(jsonObject.getInteger("errcode"));
result.setData(jsonObject.getString("short_url"));
return result.getData();
} else {
return null;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
对了,还有想请问一下,如果这地方扫码功能不做了。在后续中买家兑换商品的时候我也不做扫码功能,对后续开发影响吗(:意思就是直接不做扫码功能了,后续积分兑换也不做扫码了,默认线下面对面交易。不想影响到积分兑换的功能。因为做毕设,时间有点紧了,做出一个展示页面就行了
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
了解课程