params['api']; $url = $domain . "/www" . $url_path; //将url加入计算签名 $paramArray["username"] = $username; $paramArray["timestamp"] = $timestamp; $paramArray["nonce"] = $nonce; //对参与签名的参数进行排序 $stringArray = array(); foreach ($paramArray as $key => $value) { $string = $key . "=" . $value; array_push($stringArray, $string); } array_push($stringArray, "url=" . $url); sort($stringArray, SORT_STRING); $query = ""; $count = count($stringArray); $num = 0; foreach ($stringArray as $key => $value) { $query = $query . $value; $num++; if ($num < $count) { $query = $query . "&"; } } $query = $query . strtoupper($password); $sign = strtoupper(md5($query)); $paramArray["sign"] = $sign; $ret = LewaimaiHttp::POST($url, $paramArray); if (!$ret) { Yii::log("post api failed!"); return false; } $retArray = json_decode($ret, true); if (!$retArray || !is_array($retArray)) { return false; } return $retArray; } /* * 这个专用于发送请求给api里面的common这个module */ public static function SendCommon($url_path, $paramArray) { if (isset($paramArray["username"]) || isset($paramArray["timestamp"]) || isset($paramArray["nonce"]) || isset($paramArray["url"])) { Yii::log("param error!"); return false; } $paramArray["username"] = "common"; $paramArray["timestamp"] = time(); $paramArray["nonce"] = LewaimaiString::create_noncestr(8); //$paramArray["url"] = API_CENTER_DOMAIN . "/common" . $url_path; $domain = Yii::app()->params['api']; //$domain = "https://lewaimai-api-app-svc"; $paramArray['url'] = $domain . "/common" . $url_path; //对参与签名的参数进行排序 $stringArray = array(); foreach ($paramArray as $key => $value) { $string = $key . "=" . $value; array_push($stringArray, $string); } sort($stringArray, SORT_STRING); $query = ""; $count = count($stringArray); $num = 0; foreach ($stringArray as $key => $value) { $query = $query . $value; $num++; if ($num < $count) { $query = $query . "&"; } } $query = $query . strtoupper(LEWAIMAI_API_KEY); $sign = strtoupper(md5($query)); $paramArray["sign"] = $sign; unset($paramArray["url"]); //LewaimaiDebug::LogArray($paramArray); //$domain = Yii::app()->params['api']; //将参数一起POST到url上 $ret = LewaimaiHttp::POST($domain . "/common" . $url_path, $paramArray); Logger::errorMult('请求接口3453543', $domain, $url_path, $paramArray, $ret); if (!$ret) { Logger::errorMult('请求失败'); return false; } //Yii::log("ret:" . $ret); $retArray = json_decode($ret, true); if (!$retArray || !is_array($retArray)) { return false; } return $retArray; } /* * 这个专用于发送请求给api里面的common这个module */ public static function SendRcCommon($url_path, $paramArray) { if (isset($paramArray["username"]) || isset($paramArray["timestamp"]) || isset($paramArray["nonce"]) || isset($paramArray["url"])) { Yii::log("param error!"); return false; } $paramArray["username"] = "common"; $paramArray["timestamp"] = time(); $paramArray["nonce"] = LewaimaiString::create_noncestr(8); //$paramArray["url"] = API_CENTER_DOMAIN . "/common" . $url_path; if(isset($paramArray['is_rc']) && $paramArray['is_rc'] == 1) { $domain = "https://api-g.lewaimai.com"; } else { $domain = Yii::app()->params['apiGray']; } //$domain = "https://lewaimai-api-app-svc"; $paramArray['url'] = $domain . "/common" . $url_path; //对参与签名的参数进行排序 $stringArray = array(); foreach ($paramArray as $key => $value) { $string = $key . "=" . $value; array_push($stringArray, $string); } sort($stringArray, SORT_STRING); $query = ""; $count = count($stringArray); $num = 0; foreach ($stringArray as $key => $value) { $query = $query . $value; $num++; if ($num < $count) { $query = $query . "&"; } } $query = $query . strtoupper(LEWAIMAI_API_KEY); $sign = strtoupper(md5($query)); $paramArray["sign"] = $sign; unset($paramArray["url"]); //LewaimaiDebug::LogArray($paramArray); //$domain = Yii::app()->params['api']; //将参数一起POST到url上 Yii::log("send请求参数"); Yii::log($domain . "/common" . $url_path); Yii::log(json_encode($paramArray)); //echo"
";print_r([$domain . "/common" . $url_path, $paramArray]);
$ret = LewaimaiHttp::POST($domain . "/common" . $url_path, $paramArray);
Yii::log("ret: " . $ret);
if (!$ret)
{
Yii::log("bbbbbbbbbbbbbbbbb");
return false;
}
//Yii::log("ret:" . $ret);
$retArray = json_decode($ret, true);
if (!$retArray || !is_array($retArray))
{
return false;
}
return $retArray;
}
/**
* admin项目中用于调用api接口的函数封装
* $url_path,请求的动作,例如/push/waimaiorder
* $paramArray 要传递的接口数组
*/
public static function SendAdmin($url_path, $paramArray = [])
{
if (isset($paramArray["username"]) || isset($paramArray["timestamp"]) || isset($paramArray["nonce"]) || isset($paramArray["url"]))
{
Yii::log("param error!");
return false;
}
$username = Yii::app()->user->getState('username');
$password = Yii::app()->user->getState('password');
$timestamp = time();
$nonce = LewaimaiString::create_noncestr(6);
// $url = API_CENTER_DOMAIN . "/admin" . $url_path;
//$url = "https://api-test.lewaimai.com/admin" . $url_path;
$domain = Yii::app()->params['api'];
$url = $domain . "/admin" . $url_path;
LewaimaiDebug::LogArray($url);
//将url加入计算签名
$paramArray["username"] = $username;
$paramArray["timestamp"] = $timestamp;
$paramArray["nonce"] = $nonce;
//对参与签名的参数进行排序
$stringArray = array();
foreach ($paramArray as $key => $value)
{
$string = $key . "=" . $value;
array_push($stringArray, $string);
}
array_push($stringArray, "url=" . $url);
sort($stringArray, SORT_STRING);
$query = "";
$count = count($stringArray);
$num = 0;
foreach ($stringArray as $key => $value)
{
$query = $query . $value;
$num++;
if ($num < $count)
{
$query = $query . "&";
}
}
$query = $query . strtoupper($password);
$sign = strtoupper(md5($query));
$paramArray["sign"] = $sign;
LewaimaiDebug::LogArray($url);
LewaimaiDebug::LogArray($paramArray);
$ret = LewaimaiHttp::POST($url, $paramArray);
if (!$ret)
{
Yii::log("post api failed!");
return false;
}
//Yii::log("ret:" . $ret);
$retArray = json_decode($ret, true);
if (!$retArray || !is_array($retArray))
{
return false;
}
return $retArray;
}
/**
* admin项目中用于调用api接口的函数封装
* $url_path,请求的动作,例如/push/waimaiorder
* $paramArray 要传递的接口数组
*/
public static function SendAdmins($url_path, $paramArray = [])
{
// $url = API_CENTER_DOMAIN . "/admin" . $url_path;
//$url = "https://api-test.lewaimai.com/admin" . $url_path;
$domain = Yii::app()->params['api'];
$url = $domain . "/admin" . $url_path;
LewaimaiDebug::LogArray($url);
$ret = LewaimaiHttp::POST($url, $paramArray);
if (!$ret)
{
Yii::log("post api failed!");
return false;
}
//Yii::log("ret:" . $ret);
$retArray = json_decode($ret, true);
if (!$retArray || !is_array($retArray))
{
return false;
}
return $retArray;
}
/*
* 用于将任务发送到lewaimai-new的api处理器
*/
public static function SendApi($url_path, $paramArray)
{
$paramArray['admin_id'] = Yii::app()->user->_id;
$signArr = LewaimaiUtility::buildSignForApiRequest($paramArray);
//将参数一起POST到url上
$ret = LewaimaiHttp::POST(API_BASE_URL . "/admin" . $url_path, $paramArray + $signArr);
if (!$ret)
{
Yii::log('SendApi request fail url= '.API_BASE_URL . "/admin" . $url_path.',params='.json_encode($paramArray + $signArr));
return false;
}
//Yii::log("ret:" . $ret);
$retArray = json_decode($ret, true);
if (!$retArray || !is_array($retArray))
{
return false;
}
return $retArray;
}
/*
* 用于将任务发送到lewaimai-new的api处理器
*/
public static function sendHuifuApi($url_path, $paramArray)
{
$signArr = LewaimaiUtility::buildSignForApiRequest($paramArray);
//将参数一起POST到url上
//var_dump(API_BASE_URL . "/admin" . $url_path, $paramArray + $signArr);exit;
//$ret = LewaimaiHttp::POST("https://api-dev.lewaimai.com/admin" . $url_path, $paramArray + $signArr);
$api = Yii::app()->params['api'];
$env = Yii::app()->params['env'];
if($env=='prod'){
$options = [
CURLOPT_COOKIE => "lwm_gray_tag=rc;",
];
$ret = LewaimaiHttp::POST($api."/admin".$url_path, $paramArray + $signArr,$options);
}else{
$ret = LewaimaiHttp::POST($api. "/admin".$url_path, $paramArray + $signArr);
}
Yii::log('提交汇付,url= '.$api. "/admin".$url_path);
Yii::log(json_encode($ret));
if (!$ret)
{
Yii::log('SendApi request fail url= '.$api. "/admin" . $url_path.',params='.json_encode($paramArray + $signArr));
return false;
}
//Yii::log("ret:" . $ret);
$retArray = json_decode($ret, true);
if (!$retArray || !is_array($retArray))
{
return false;
}
return $retArray;
}
/**
* notify项目中用于调用api接口的函数封装
* $url_path,请求的动作,例如/push/waimaiorder
* $paramArray 要传递的接口数组
*/
public static function SendNotify($url_path, $paramArray = [])
{
LewaimaiDebug::Log("post notify!");
$domain = Yii::app()->params['api'];
$url = $domain . "/notify" . $url_path;
$ret = LewaimaiHttp::POST($url, $paramArray);
LewaimaiDebug::LogArray($ret);
if (!$ret)
{
Yii::log("post api failed!");
return false;
}
//Yii::log("ret:" . $ret);
$retArray = json_decode($ret, true);
if (!$retArray || !is_array($retArray))
{
return false;
}
return $retArray;
}
}