php 微信接口API之长链接转短链接代码示例

[php]  view plain  copy
 
  1. header("Content-Type: text/html; charset=utf-8");  
  2. $longurl;  
  3. if(isset($_POST['longurl'])){  
  4.     $longurl = $_POST['longurl'];  
  5. }else{  
  6.     die("没有post值进来");  
  7. }  
  8.   
  9. //echo $longurl;  
  10.   
  11. $id = "你的AppID";  
  12. $secret = "你的AppSecret";  
  13. $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$id."&secret=".$secret."";  
  14.   
  15. $token = getAccessToken($url);  
  16. //echo $token;  
  17. //你的长链接  
  18. //$longurl = "http://www.baidu.com/";  
  19. $data = '{"action":"long2short","long_url":"'.$longurl.'"}';  
  20. $shorturl = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=".$token."";  
  21.   
  22. echo httpPost($shorturl,$data);  
  23. //echo "你的长链接是:".$longurl;  
  24. //echo "";  
  25. //生成的短链接  
  26. //echo "生成的短链接是:".$shortArr['short_url'];  
  27. //echo $shortArr;  
  28.       
  29. function getAccessToken($url) {  
  30.     // access_token 应该全局存储与更新,以下代码以写入到文件中做示例  
  31.     $data = json_decode(file_get_contents("access_token.json"));  
  32.     if ($data->expire_time < time()) {  
  33.       // 如果是企业号用以下URL获取access_token  
  34.       $output = httpGet($url);  
  35.       $res = (array)json_decode($output);  
  36.       $access_token = $res['access_token'];  
  37.       if ($access_token) {  
  38.         $data->expire_time = time() + 7000;  
  39.         $data->access_token = $access_token;  
  40.         $fp = fopen("access_token.json", "w");  
  41.         fwrite($fp, json_encode($data));  
  42.         fclose($fp);  
  43.         //echo 'access_token.json读写了一次';  
  44.       }  
  45.     } else {  
  46.       $access_token = $data->access_token;  
  47.     }  
  48.     return $access_token;  
  49.   }  
  50.     
  51.   function httpGet($url) {  
  52.     //echo "url = ".$url;  
  53.     $curl = curl_init();  
  54.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  
  55.     curl_setopt($curl, CURLOPT_TIMEOUT, 500);  
  56.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  
  57.     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  
  58.     curl_setopt($curl, CURLOPT_URL, $url);  
  59.   
  60.     $res = curl_exec($curl);  
  61.     curl_close($curl);  
  62.     return $res;  
  63.   }  
  64.     
  65.   function httpPost($url,$data){  
  66.         $curl = curl_init();  
  67.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  
  68.         curl_setopt($curl, CURLOPT_TIMEOUT, 500);  
  69.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  
  70.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  
  71.         curl_setopt($curl, CURLOPT_URL, $url);  
  72.         curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");  
  73.         curl_setopt($curl, CURLOPT_POSTFIELDS, $data);  
  74.   
  75.         $res = curl_exec($curl);  
  76.         curl_close($curl);  
  77.         return $res;  
  78.   }  
  79.     
  80.   ?> 

转载于:https://www.cnblogs.com/yyjie/p/7306073.html

你可能感兴趣的:(php 微信接口API之长链接转短链接代码示例)