好不容易把微信实现短连接实现了,却又不能用

来源:14-11 店铺授权之短链接的实现

Simon___

2021-02-23

图片描述
图片描述
因为现在第一个百度实现短连接是需要企业认证权限的,所以百度现如今实现短连接已不大可能。看之前大家的讨论,新浪的貌似也不行。最后就只剩下微信实现,看见之前的同学实现的代码,我也做了出来。运行是没问题,可这个短网址根本不能用啊。代码如下:
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;
}

}

对了,还有想请问一下,如果这地方扫码功能不做了。在后续中买家兑换商品的时候我也不做扫码功能,对后续开发影响吗(:意思就是直接不做扫码功能了,后续积分兑换也不做扫码了,默认线下面对面交易。不想影响到积分兑换的功能。因为做毕设,时间有点紧了,做出一个展示页面就行了

写回答

3回答

AsYouWish99

2021-02-28

//img1.sycdn.imooc.com/szimg/603b3d8c09db70c408280260.jpg

生成的短链接并不会向百度上跳,一直是这个页面

0
1
翔仔
这个肯定不会自己跳呀,这个生成短链接是百度的,要在浏览器访问才可以,只有微信这边,有一个redirecturi的属性,给这个属性赋值上这个网址才会回调后打开这个网址呢。。
2021-02-28
共1条回复

Simon___

提问者

2021-02-23

//img1.sycdn.imooc.com/szimg/6035224909fc6b8e12020674.jpg

//img1.sycdn.imooc.com/szimg/6035224909fe19bf14810736.jpg

转换的网址也没问题

0
0

翔仔

2021-02-23

同学好,微信这个应该是能用的,同学是不是本身的这个长连接就有问题?可以把长连接复制粘贴到微信上,看看那能不能打开,如果能,才定位是短网址问题,调试一下,用的长连接不是自己想出来的哈,而是真正调用了微信短网址服务前的输入。 也可以用微信短网址转化一下 http://www.baidu.com 然后把输出贴到浏览器访问一下,看看能否转换成功

0
2
翔仔
回复
Simon___
同学好,我直接在浏览器上输入 https://mmbizurl.cn/s/8mVTBRPhN 就是你转换出来的结果,是能访问百度的呀。。
2021-02-24
共2条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程