| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429 |
- <?php
- class LewaimaiRequestApi
- {
- /*
- * www项目中用于调用api接口的函数封装
- * $url_path,请求的动作,例如/push/waimaiorder
- * $paramArray 要传递的接口数组
- */
- public static function Send($url_path, $paramArray)
- {
- if (isset($paramArray["username"]) || isset($paramArray["timestamp"]) || isset($paramArray["nonce"]) || isset($paramArray["url"]))
- {
- Yii::log("param error!");
- return false;
- }
- $username = 'lewaimai';
- $password = md5('lewaimai201800');
- $timestamp = time();
- $nonce = LewaimaiString::create_noncestr(6);
- // $url = API_CENTER_DOMAIN . "/www" . $url_path;
- $domain = Yii::app()->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"<pre>";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;
- }
- }
|