function callOpenSystem($paramArr) { global $memc_obj; $url = isset($paramArr['requesturl']) ? array_shift($paramArr) : C('OPEN_SYS_URL'); $cachetime = isset($paramArr['cachetime']) ? array_shift($paramArr) : 0; $token = C('OPEN_SYS_TOKEN'); //用户token $strParam = array2http($paramArr) . "&sign=" . createSign($paramArr, $token); //生成签名,组织参数 $urls = $url . $strParam; //构造Url // echo $urls;exit; $cachekey = C('DB_PREFIX') . "callOpenSystem_" . md5($urls); if ($cachetime > 0 && ($result = $memc_obj->get($cachekey))) { return $result; } //连接超时自动重试3次 $cnt = 0; if ($paramArr['getOrPost'] == '2') { //POST方式 while ($cnt < 3 && ($result = @vita_get_url_content2($url . 'sign=' . createSign2($paramArr, $token), $paramArr)) === FALSE) { $cnt++; } } else { //GET方式 while ($cnt < 3 && ($result = @vita_get_url_content($urls)) === FALSE) { $cnt++; } } if (strpos($result, "[") > 0 && strpos($result, "[") < strpos($result, "{")) { $result = substr($result, strpos($result, "[")); } else { $result = substr($result, strpos($result, "{")); } $memc_obj->set($cachekey, $result, $cachetime); return $result; }
public static function getOpenSysApiPost($method, $paArr, $idc = '') { include_once WEB_PATH . "api/include/functions.php"; if (empty($method) || empty($paArr) || !is_array($paArr)) { //参数不规范 self::$errCode = 301; self::$errMsg = '参数信息不规范'; return false; } else { $paramArr = array('format' => 'json', 'v' => '1.0', 'app_key' => 'valsun.cn', 'protocol' => 'param2'); $paramArr['method'] = $method; //调用接口名称,系统级参数 foreach ($paArr as $key => $value) { if (!is_array($value)) { //如果传递的应用级参数不是数组的话,直接加入到paramArr中 $paramArr[$key] = $value; } else { $paramArr['jsonArr'] = base64_encode(json_encode($value)); //对数组进行jsonencode再对其进行base64编码进行传递,否则直接传递数组会出错 } } //生成签名 $sign = createSign2($paramArr, self::$token); //echo $sign,"<br/>"; //组织参数 $strParam = createStrParam($paramArr); $strParam .= 'sign=' . $sign; //echo $strParam,"<br/>"; if ($idc == '') { $url = self::$url; } else { $url = 'http://gw.open.valsun.cn:88/router/rest?'; } //构造Url $urls = $url . $strParam; // echo self::$token.'<br>'; //echo $urls; // exit; //连接超时自动重试3次 $cnt = 0; while ($cnt < 3 && ($result = @Curl($urls, $paramArr)) === FALSE) { $cnt++; } //print_r($result); // exit; $data = json_decode($result, true); // var_dump($data,$result,"++___+++");exit; if ($data) { self::$errCode = 200; self::$errMsg = 'Success'; return $data; } else { self::$errCode = "000"; self::$errMsg = "is empty!"; } } }
function callOpenSystem($paramArr) { global $memc_obj; $url = isset($paramArr['requesturl']) ? array_shift($paramArr) : C('OPEN_SYS_URL'); $cachetime = isset($paramArr['cachetime']) ? array_shift($paramArr) : 0; $token = C('OPEN_SYS_TOKEN'); //用户token if (!empty($paramArr['app_key'])) { //POST方式 $sign = createSign2($paramArr, $token); } else { $sign = createSign($paramArr, $token); } $strParam = array2http($paramArr) . "&sign=" . $sign; //生成签名,组织参数 $urls = $url . $strParam; //构造Url $cachekey = "om_callOpenSystem_" . md5($urls); if ($cachetime > 0 && ($result = $memc_obj->get($cachekey))) { return $result; } //连接超时自动重试3次 $cnt = 0; if (!empty($paramArr['app_key'])) { //POST方式 while ($cnt < 3 && ($result = @vita_get_url_content2($urls, $paramArr)) == FALSE) { $cnt++; } } else { //GET方式 while ($cnt < 3 && ($result = @vita_get_url_content($urls)) == FALSE) { $cnt++; } //added by andy 09.04 if (empty($result)) { $result = file_get_contents($urls); } } $memc_obj->set($cachekey, $result, $cachetime); return $result; }