600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php微信短网址生成 微信公众号实现长链接转短链接!w.url.cn短网址生成

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

时间:2018-08-26 08:00:00

相关推荐

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

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

官方文档

https://developers./doc/offiaccount/Account_Management/URL_Shortener.html

请求参数

access_token

action 此处填long2short,代表长链接转短链接

long_url 需要转换的原链接

HTTP POST请求网址

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

请求流程

1、获取本地缓存的access_token,如果超过有效期,则重新获取,如果还没过期,直接使用缓存的access_token

2、构建请求参数,发起POST请求

3、获得短网址

代码

appid和appsecret可以申请一个微信公众号测试账号进行开发

申请地址:http://mp./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./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./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”:”/s/AVuvUup”}

本文由(学源码 -- 我爱我家)整理发布,转载请注明出处:/article/100.html

本站发布的文章及附件仅限于学习和研究目的;不得将上述内容用于商业或非法用途,否则后果请用户自负。

本站发布的文章及附件若侵犯到您的权益,请邮件联系 admin@ 说明情况,我们将及时处理!

您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容,请支持正版软件,得到更好的正版服务。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。