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


    [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.   ?> 
  • 相关阅读:
    20 类中的函数重载
    19 友元的尴尬能力
    18 类的静态成员函数
    17 类的静态成员变量
    16 经典问题解析二
    15 临时对象
    Lucene4.6查询时完全跳过打分,提高查询效率的实现方式
    Lucene4.6 把时间信息写入倒排索引的Offset偏移量中,并实现按时间位置查询
    Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询
    Dom4j解析语音数据XML文档(注意ArrayList多次添加对象,会导致覆盖之前的对象)
  • 原文地址:https://www.cnblogs.com/yyjie/p/7306073.html
Copyright © 2020-2023  润新知