config = $config; $this->appSecret = $config['appSecret']; $this->apiParas = [ 'sid' => $config['sid'], 'appkey' => $config['appKey'], 'timestamp' => time(), ]; } private function makeSign(&$apiParas, $appSecret){ $sign = md5($this->packData($apiParas) . $appSecret); $apiParas['sign'] = $sign; } private function packData(&$req) { ksort($req); $arr = array(); foreach($req as $key => $val) { if($key == 'sign') continue; if(count($arr)) $arr[] = ';'; $arr[] = sprintf("%02d", iconv_strlen($key, 'UTF-8')); $arr[] = '-'; $arr[] = $key; $arr[] = ':'; $arr[] = sprintf("%04d", iconv_strlen($val, 'UTF-8')); $arr[] = '-'; $arr[] = $val; } return implode('', $arr); } private function putMultiApiParam($params) { return array_merge($this->apiParas,$params); } private function organizationParam($data){ $params = $this->putMultiApiParam($data); $this->makeSign($params, $this->appSecret); $postData = http_build_query($params,'','&'); return $postData; } public function getOrderListAuto($data){ $timeStamp = time(); $data['start_time'] = date("Y-m-d H:i:s", $timeStamp - 60 * 60); $data['end_time'] = date("Y-m-d H:i:s", $timeStamp); $postData = $this->organizationParam($data); list($status, $msg) = $this->post_wdt_helper($this->config['order_query'], $postData); dd($status, $msg); } //发送请求 public function post_wdt_helper($url, $data, $timeout = 20){ $header = array("Content-Type: application/x-www-form-urlencoded"); Log::channel('apiLog')->info('旺店通POST', ["api" => $url , "param" => $data ,"header" => $header]); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_ENCODING, ''); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); if(! is_null($data)) curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $r = curl_exec($ch); if ($r === false) { // 获取错误号 $errorNumber = curl_errno($ch); // 获取错误信息 $errorMessage = curl_error($ch); $message = "cURL Error #{$errorNumber}: {$errorMessage}"; Log::channel('apiLog')->info('旺店通POST结果', ["message" => $message]); return [false, "cURL Error #{$errorNumber}: {$errorMessage}"]; } curl_close($ch); Log::channel('apiLog')->info('旺店通POST结果', ["message" => json_decode($r, true)]); return [true, json_decode($r, true)]; } }