•   爱学习,爱源码,爱上一流源码网!
  •   一流源码网就是好!
一流源码网是专业的网站源码、网站模板下载站!提供各类精品模板和商业源码,包括ecshop商城模板,织梦模板,discuz模板,wordpress模板,游戏源码,asp源码,php源码,免费网站模板,网页特效素材等资源!

微信公众号实现长链接转短链接!w.url.cn短网址生成

摘要: 微信公众号开发者平台提供短网址生成的API,最终生成的短网址是w.url.cn的,下面是详细的代码。官方文档https://developers.weixin.qq.com/doc/offiACCou...
资源来源网络,如果需要授权,请大家更换源码,源码仅供学习,如需商用请购买正版授权

微信公众号开发者平台提供短网址生成的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" => "1.1",
        "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”}


爱一流源码网提供商业源码,企业网站源码,微信小程序源码,棋牌游戏源码,漫画小说源码,论坛源码等免费源码,提供dedecms织梦模板,帝国cms模板,discuz模板,wordpress模板,zblog模板,emlog模板等网站模板,免费下载就上爱一流源码网!加入qq群【爱一流源码网】(群号1050177837),源码模板免费下载!

本文链接:https://www.aiyiliu.com/yuanma/6425.html

版权声明:爱一流源码网声明: 大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有! 若您需要使用非免费的软件、源码或服务,请购买正版授权并合法使用! 本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理! 本站所有资源(一流资源除外)均是收集而来,资源均不提供任何安装服务和技术支持!

发表评论

评论列表

还没有评论,快来说点什么吧~

日历