load->_model("Model_logic_ding","logic_ding"); $this->load->_model("Model_apitt","apitt"); } private function sign($method,$query,$body,$secret){ unset($query['sign']); unset($query['access_token']); $input = $method; ksort($query); foreach ($query as $key => $value) { $input.= $key.$value; } if(!empty($body)){ $input.= json_encode($body); } $input = $secret . $input . $secret; // 生成签名 $sign = hash_hmac('sha256', $input,$secret); return $sign; } private function reqGet($url,$headers){ // 初始化cURL $ch = curl_init(); // 设置cURL选项 curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPGET => true, // 明确设置为GET请求 CURLOPT_HTTPHEADER => $headers, // SSL设置 - 禁用验证(仅测试环境) CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, // 其他设置 CURLOPT_TIMEOUT => 300, CURLOPT_FOLLOWLOCATION => true, ]); // 执行请求 $response = curl_exec($ch); // 检查错误 $error_msg = ""; if (curl_errno($ch)) { $error_msg = $ch; } // 获取HTTP状态码 $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); return [ 'httpCode'=>$httpCode, 'response'=>$response, 'errorMsg'=>$error_msg ]; } private function reqPost($url,$headers,$data){ // 初始化cURL $ch = curl_init(); // 设置cURL选项 curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => $headers, CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_SSL_VERIFYPEER => false, // 根据实际情况调整,生产环境建议设为true CURLOPT_TIMEOUT => 300, ]); // 执行请求 $response = curl_exec($ch); // 检查错误 $error_msg = ""; if (curl_errno($ch)) { $error_msg = curl_error($ch); } // 获取HTTP状态码 $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 关闭cURL资源 curl_close($ch); return [ 'httpCode'=>$httpCode, 'response'=>$response, 'errorMsg'=>$error_msg ]; } public function ShipByTiktok($package_id,$shop,$info){ $r = $this->apitt->ShipByTiktok($package_id,$shop,$info); var_dump($r); } public function downloadLabel($package_id,$shop,$info){ $rr1 = $this->apitt->getExpressCompany($info,$shop); var_dump($rr1); die; if($rr1['x'] == 0){ return $rr1; } $info = $rr1['data']; if(is_string($info['extra_text'])){ $info['extra_text'] = json_decode($info['extra_text'],true); } // $res = $this->apitt->downloadLabel($package_id,$shop,$info); // return $res; } // public function downloadLabel($package_id,$shop,$info){ // $url = 'https://open-api.tiktokglobalshop.com'; // $link = '/fulfillment/202309/packages/'.$package_id.'/shipping_documents'; // $time = time(); // $querys = [ // 'timestamp'=>$time, // 'shop_cipher'=>$shop['shop_cipher'], // 'app_key'=>$shop['app_key'], // 'document_type'=>'SHIPPING_LABEL' // ]; // echo "
";
	// 	 $sign = $this->sign($link,$querys,[],$shop['app_key']);
    //      var_dump($sign);

    //      $full_url = $url.$link.'?'.http_build_query($querys).'&sign='.$sign;
    //      $ch = curl_init();
    //      curl_setopt_array($ch, [
    //         CURLOPT_URL =>  $full_url,
    //         CURLOPT_RETURNTRANSFER => true, // 返回响应内容而不是直接输出
    //         CURLOPT_HTTPGET => true, // 明确设置为GET请求
    //         CURLOPT_HTTPHEADER => [
    //             'x-tts-access-token: '.$full_url.'',
    //             'content-type: application/json',
    //         ],
    //         CURLOPT_SSL_VERIFYPEER => false, // 仅用于测试环境,生产环境应设为true
    //         CURLOPT_TIMEOUT => 30 // 设置超时时间
    //     ]);
    //     // 执行请求并获取响应
    //     $response = curl_exec($ch);

    //     // 检查是否有错误
    //     if (curl_errno($ch)) {
    //         echo 'cURL错误: ' . curl_error($ch);
    //     }

    //     // 获取HTTP状态码
    //     $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    //     // 关闭cURL资源
    //     curl_close($ch);
    //     var_dump($response);
    //     // $link .= '?'.http_build_query($querys);
    //     // $url = $url.$link;
       

    //     // $sign = $this->apitt->sign($url,$shop['app_key'],'') ;
    //     // $headers = array('Content-Type: application/json','x-tts-access-token:'.$shop['token']);
    //     // var_dump($headers);
	// 	// $url .= '&sign='.$sign;
    //     // var_dump($sign);
    //     // var_dump($url);
    //     // $res = $this->apitt->su_curl('',$url,$headers,'json',300,"GET");
		
    //     // print_r($res);
    //     // die;
        
	// 	// $res = $this->reqGet($url,$headers);
    //     // if($res['httpCode'] != 200){
    //     //     echo "
";
    //     //     print_r($res);
    //     // }else{
    //     //     echo "
";
    //     //     print_r($res);
    //     // }
		 
    // }


    
   
}