请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

3回答

AsYouWish99 2021-02-28 14:53:17

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

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

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    这个肯定不会自己跳呀,这个生成短链接是百度的,要在浏览器访问才可以,只有微信这边,有一个redirecturi的属性,给这个属性赋值上这个网址才会回调后打开这个网址呢。。
    回复 有任何疑惑可以回复我~ 2021-02-28 22:42:32
提问者 Simon___ 2021-02-23 23:42:35

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

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

转换的网址也没问题

0 回复 有任何疑惑可以回复我~
翔仔 2021-02-23 23:35:26

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

0 回复 有任何疑惑可以回复我~
  • 提问者 Simon___ #1
    老师,还是访问不了
    回复 有任何疑惑可以回复我~ 2021-02-23 23:41:42
  • 翔仔 回复 提问者 Simon___ #2
    同学好,我直接在浏览器上输入
    https://mmbizurl.cn/s/8mVTBRPhN
    就是你转换出来的结果,是能访问百度的呀。。
    回复 有任何疑惑可以回复我~ 2021-02-24 23:37:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信