• 正文概述
  • 售后服务
  •  

    微信公众号开发者平台提供短网址生成的API,最终生成的短网址是w.url.cn的,下面是详细的代码。

     

    官方文档

    https://developers.weixin.qq.com/doc/offiaccount/Account_Management/URL_Shortener.html

     

    请求参数

    access_token
    action 此处填long2short,代表长链接转短链接
    long_url 需要转换的原链接

    HTTP POST请求网址

    https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN

    请求流程

    1、获取本地缓存的access_token,如果超过有效期,则重新获取,如果还没过期,直接使用缓存的access_token
    2、构建请求参数,发起POST请求
    3、获得短网址

    代码

    appid和appsecret可以申请一个微信公众号测试账号进行开发
    申请地址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

     

    <?php
    header("Content-type:application/json");
     
    // 声明APPID、APPSECRET
    $appid = "xxx";
    $appsecret = "xxx";
     
    // 获取access_token和jsapi_ticket
    function getToken(){
        $file = file_get_contents("access_token.json",true);//读取access_token.json里面的数据
        $result = json_decode($file,true);
     
    //判断access_token是否在有效期内,如果在有效期则获取缓存的access_token
    //如果过期了则请求接口生成新的access_token并且缓存access_token.json
    if (time() > $result['expires']){
            $data = array();
            $data['access_token'] = getNewToken();
            $data['expires'] = time()+7000;
            $jsonStr =  json_encode($data);
            $fp = fopen("access_token.json", "w");
            fwrite($fp, $jsonStr);
            fclose($fp);
            return $data['access_token'];
        }else{
            return $result['access_token'];
        }
    }
      
    //获取新的access_token
    function getNewToken($appid,$appsecret){
        global $appid;
        global $appsecret;
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret."";
        $access_token_Arr =  file_get_contents($url);
        $token_jsonarr = json_decode($access_token_Arr, true);
        return $token_jsonarr["access_token"];
    }
     
    // 获得长链接
    $long_url = trim($_GET["long_url"]);
     
    // 过滤
    if (empty($long_url)) {
        $result = array(
            "result" => "101",
            "msg" => "请传入长链接"
        );
    } else if (strpos($long_url,'http') !== false){
        //初始化 CURL
        $ch = curl_init();
        //请求地址 
        curl_setopt($ch, CURLOPT_URL, 'https://api.weixin.qq.com/cgi-bin/shorturl?access_token='.getToken());
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        $postdata =  '{"action":"long2short","long_url":"'.$long_url.'"}'; 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
        // 对认证证书来源的检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        // 从证书中检查SSL加密算法是否存在
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        //获取的信息以文件流的形式返回,而不是直接输出
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        //发起请求
        $dwzStr = curl_exec($ch);
        //解析数据
        $arr_dwzStr = json_decode($dwzStr, true);
        $dwz = $arr_dwzStr["short_url"];
        //关闭请求
        curl_close($ch);
     
        // 返回结果
        $result = array(
            "result" => "100",
            "msg" => "解析成功",
            "dwz" => $dwz
        );
    }else{
        $result = array(
            "result" => "102",
            "msg" => "长链接不合法"
        );
    }
     
    // 返回JSON
    echo json_encode($result,JSON_UNESCAPED_UNICODE);
    ?>

     

    生成示例

    {“result”:”100″,”msg”:”生成成功”,”dwz”:”https:\/\/w.url.cn\/s\/AVuvUup”}

     

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!79581008@qq.com
    2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!(除原创作品外)
    3. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    4. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
    5. 站点所有资源仅供学习交流使用,切勿用于商业或者非法用途,与本站无关,一切后果请用户自负!
    多啦咪资源网 » 微信公众号短网址生成w.url.cn 实现长链接转短链接方法教程

    常见问题FAQ

    本站声明!
    (1)、因源码的可复制性及原创源码维护不易,一旦下单,概不接受退款。 源码你买去做啥希望你自己清楚且了解,需要准备什么请在下单前联系我问清楚! (2)、(视频类)源码适用于原创视频分享等,(视频类)源码为视频系统框架,不涉及任何音频影像播放内容,购买前请遵守相关法律法规 一旦下单购买即认为你已了解相关法律法规,买家所经营的任何内容均与本站无关,请仔细阅读并对该内容清晰且了解后再下单! (3)、再次警告,(视频类)源码仅为开发学习交流使用,请勿用做其他违法用途! 请在法律允许的范围内使用源码程序。上传数据均是个人行为,与本站无关。请仔细、认真的看完下面的介绍再来咨询!
    售后服务技术支持申明!
    (注:非本站购买的资源,如淘宝倒卖,其他个人渠道倒卖不提供任何服务及技术支持!)本站购买的如需要提供技术支持前,请发送订单号及会员uid 核对信息后会一一解答!【本站唯一服务:qq79581008,加前请说明问题重点,否则无视!】
    关于支付下载问题?
    支付成功后请及时下载,如支付未跳转,或没反应,请刷新下浏览器或者清理缓存,要不换个浏览器,建议使用360安全浏览器,或者uc、qq都行
    会员开通及支付说明!
    由于浏览器兼容问题,建议先充值到余额后,再开通会员选择余额支付哦!如支付成功后开通失败请及时联系管理员!
    免费下载或者VIP会员专享资源能否直接商用?
    1.本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。(除原创作品外)若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。