您的位置:首页 > 移动开发 > 微信开发

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

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