function customHttpClient($SERVER, $PATH, $COOKIES, $PARAMS) { //return;//return '{"resHeader":{"backUrl":"","flag":"0","msg":"访问失败"}}'; //到远程服务器查询登录状态 include_once dirname(__FILE__) . '/httpclient.inc.php'; try { $client = new HttpClient($SERVER); $client->timeout = 10; $client->setCookies($COOKIES); $client->setPersistCookies(true); $postURL = $PATH; customCreateLogFile(dirname(__FILE__) . "/httpclient_log/" . date('Ymd') . ".txt", getHexDecode($client->buildQueryString($PARAMS))); if (!$client->post($postURL, $PARAMS)) { customCreateLogFile(dirname(__FILE__) . "/httpclient_log/" . date('Ymd') . ".txt", "\nPUT SERVER:" . $SERVER . "" . $PATH . "\nFAILD1"); return '{"resHeader":{"backUrl":"","flag":"0","msg":"访问失败1"}}'; } } catch (Exception $e) { customCreateLogFile(dirname(__FILE__) . "/httpclient_log/" . date('Ymd') . ".txt", "\nPUT SERVER:" . $SERVER . "" . $PATH . "\nFAILD2"); return '{"resHeader":{"backUrl":"","flag":"0","msg":"访问失败2"}}'; } $response = $client->getContent(); customCreateLogFile(dirname(__FILE__) . "/httpclient_log/" . date('Ymd') . ".txt", "\nPUT SERVER:" . $SERVER . "" . $PATH . "\nPUT COOKIES:" . (is_array($COOKIES) ? var_export($COOKIES, true) : '') . "\nPUT DATA:" . (is_array($PARAMS) ? var_export($PARAMS, true) : $PARAMS) . "\nGET DATA:" . iconv('GBK', 'UTF-8', $response)); return iconv('GBK', 'UTF-8', $response); }
private function weixin_bind($username, $password) { // echo 555;exit; $new_token = md5($username . $password); $new_token = substr($new_token, 2, 15); import("@.ORG.HttpClient"); $http = new HttpClient('mp.weixin.qq.com'); $http->setPersistCookies(true); $http->setPersistReferers(true); $http->setCookies(array('uin_cookie' => '85858963', 'euin_cookie' => 'A6C9D89A295536D698C6446BEBE935C403FA57F2166E6962', 'ac' => '1,008,009')); $http->get('/'); $http->post('/cgi-bin/login', array('f' => 'json', 'imgcode' => '', 'username' => $username, 'pwd' => md5($password))); $sres = trim($http->getContent(true)); $reds = json_decode($sres); $token = $reds->ErrMsg; $token = explode('&token=', $token); $token = $token[1]; //关闭普通接口 $http->post('/cgi-bin/skeyform?form=advancedswitchform&lang=zh_CN', array('flag' => '0', 'type' => '1', 'token' => $token)); $http->getContent(true); //修改开发路径 $http->post('/cgi-bin/callbackprofile?t=ajax-response&lang=zh_CN&token=' . $token, array('url' => C('site_url') . '/index.php/api/' . $new_token, 'callback_token' => $new_token)); $res = $http->getContent(true); sleep(1); //开启开发接口 $http->post('/cgi-bin/skeyform?form=advancedswitchform&lang=zh_CN', array('flag' => '1', 'type' => '2', 'token' => $token)); $http->getContent(true); //获取用户微信基本信息 $http->get('/cgi-bin/settingpage?t=setting/index&action=index&token=' . $token . '&lang=zh_CN'); $setting = $http->getContent(true); preg_match('|<li class="account_setting_item">.*?名称.*?<div class="meta_content">(.*?)</div>.*?</li>.*?<li class="account_setting_item">.*?原始ID.*?<div class="meta_content">.*?<span>(.*?)</span>.*?</div>.*?</li>.*?<li class="account_setting_item">.*?微信号.*?<div class="meta_content">.*?<span>(.*?)</span>.*?</div>.*?</li>|is', $setting, $baseinfo); if (trim($baseinfo[1])) { $resut = array('wxname' => trim($baseinfo[1]), 'wxid' => trim($baseinfo[2]), 'weixin' => trim($baseinfo[3]), 'token' => $new_token); } else { $resut = array(); } return $resut; }