get() public static method

模拟GET请求
public static get ( string $url, string $data_type = 'text' ) : mixed
$url string
$data_type string
return mixed Examples: ``` HttpCurl::get('http://api.example.com/?a=123&b=456', 'json'); ```
Beispiel #1
0
 /**
  * 通过ticket换取二维码,返回二维码图片的内容
  *
  * @string $ticket 获取到的二维码ticket
  *
  * @return string 二维码图片的内容
  *
  * Examples:
  * ```
  * list($err, $data) = $api->get_qrcode('gQGa8ToAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xLzlVeXJZWS1seGNlODZ2SV9XMkMwAAIEo5rVVQMEAAAAAA==');
  * header('Content-type: image/jpg');
  * echo $data;
  * ```
  */
 public function get_qrcode($ticket)
 {
     $url = self::get_qrcode_url($ticket);
     $res = HttpCurl::get($url);
     // 异常处理: 获取时网络错误
     if ($res === FALSE) {
         return Error::code('ERR_GET');
     }
     return array(NULL, $res);
 }
Beispiel #2
0
 /**
  * 获取用户授权后回调页面根据获取到的code,获取用户信息
  * 注:本函数将获取access_token和拉取用户信息集成在了一起,未对获取到的access_token进行保存
  *
  * Examples:
  * ```
  * $api->get_userinfo_by_authorize('snsapi_base', $_GET['code']);
  * $api->get_userinfo_by_authorize('snsapi_userinfo', $_GET['code']);
  * ```
  *
  * @param $scope `get_authorize_url`时使用的授权类型
  * @param string $lang 可选,返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
  *
  * @return array|object
  */
 public function get_userinfo_by_authorize($scope, $lang = 'zh_CN')
 {
     if (isset($_GET['code']) && !empty($_GET['code'])) {
         $code = $_GET['code'];
         // 1. 通过code换取网页授权access_token
         $url = self::API_DOMAIN . 'sns/oauth2/access_token?appid=' . $this->appId . '&secret=' . $this->appSecret . '&code=' . $code . '&grant_type=authorization_code';
         $res = HttpCurl::get($url, 'json');
         // 异常处理: 获取时网络错误
         if ($res === false) {
             return Error::code('ERR_POST');
         }
         // 判断是否调用成功
         if (isset($res->access_token)) {
             if ($scope == 'snsapi_userinfo') {
                 // 2.1 `snsapi_userinfo` 继续通过access_token和openid拉取用户信息
                 $url = self::API_DOMAIN . 'sns/userinfo?access_token=' . $res->access_token . '&openid=' . $res->openid . '&lang=' . $lang;
                 $res = HttpCurl::get($url, 'json');
                 // 异常处理: 获取时网络错误
                 if ($res === false) {
                     return Error::code('ERR_POST');
                 }
                 // 判断是否调用成功
                 if (isset($res->openid)) {
                     return array(null, $res);
                 } else {
                     return array($res, null);
                 }
             } else {
                 // 2.2 `snsapi_base` 不弹出授权页面,直接跳转,只能获取用户openid
                 return array(null, $res);
             }
         } else {
             return array($res, null);
         }
     } else {
         return array('授权失败', null);
     }
 }
Beispiel #3
0
 /**
  * 获取用户列表
  *
  * Examples:
  * ```
  * $api->get_user_list();
  * $api->get_user_list('ocNtAt_TirhYM6waGeNUbCfhtZoA');
  * ```
  * Result:
  * ```
  * [
  *     null,
  *     {
  *         total: 4,
  *         count: 2,
  *         data: {
  *             openid: [
  *                 "ocNtAt_K8nRlAdmNEo_R0WVg_rRw",
  *                 "ocNtAt9DVhWngpiMyZzPFWr4IXD0"
  *             ]
  *         },
  *         next_openid: "ocNtAt9DVhWngpiMyZzPFWr4IXD0"
  *     }
  * ]
  * ```
  *
  * @param string $next_openid [可选:第一个拉取的OPENID,不填默认从头开始拉取]
  *
  * @return array(err, data)
  * - `err`, 调用失败时得到的异常
  * - `res`, 调用正常时得到的对象
  */
 public function get_user_list($next_openid = '')
 {
     if ($next_openid != '') {
         $next_openid = '&next_openid=' . $next_openid;
     }
     $url = self::API_DOMAIN . 'cgi-bin/user/get?access_token=' . $this->get_access_token() . $next_openid;
     $res = HttpCurl::get($url, 'json');
     // 异常处理: 获取时网络错误
     if ($res === false) {
         return Error::code('ERR_POST');
     }
     // 判断是否调用成功
     if (isset($res->data)) {
         return array(null, $res);
     } else {
         return array($res, null);
     }
 }