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;
    }

}