2015-11-11 49 views
1

eBay Post Order API的GET/post-order/v2/casemanagement/{caseId}調用給出一個空字符串。任何人都可以清除我的代碼出錯的地方嗎?我是否正確傳遞標題?尤其是授權的語法是否正確?向eBay Post Order API發送curl請求,提供空字符串(PHP)

<?php 

error_reporting(E_ALL); // Turn on all errors, warnings and notices for easier debugging 

//Seller Authorization Token 
$userAuthToken= 'Authorization:TOKEN abc123'; 

//Endpoint URL to Use 
$url = "https://api.ebay.com/post-order/v2/casemanagement/xyz"; 

//Initializle cURL 
$connection = curl_init(); 

//Set Endpoint URL 
curl_setopt($connection,CURLOPT_URL,$url); 

//Set HTTP Method 
curl_setopt($connection, CURLOPT_HTTPGET, true); 

//Create Array of Required Headers 
$headers = array(); 
$headers[] = $userAuthToken; 
$headers[] = 'Content-Type:application/json'; 
$headers[] = 'X-EBAY-C-MARKETPLACE-ID:EBAY-DE'; 
//var_dump($headers); 
//set the headers using the array of headers 
curl_setopt($connection,CURLOPT_HTTPHEADER,$headers); 

//set it to return the transfer as a string from curl_exec 
curl_setopt($connection,CURLOPT_RETURNTRANSFER,1); 

//stop CURL from verifying the peer's certificate 
curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0); 

//Execute the Request 
$response = curl_exec($connection); 

//close the connection 
curl_close($connection); 

var_dump($response); 
+0

你有沒有發現你的問題的解決方案,我也有同樣一個? 方面的 –

回答

0

ADD curl_setopt($connection, CURLOPT_HEADER, 1);

要返回頭看看你的問題可能是什麼。

我也不知道,如果它的問題,但我的頭陣的樣子:

$headers = array ( 'Authorization: ' . "TOKEN $token", 'Content-Type: ' . 'application/json', 'X-EBAY-C-MARKETPLACE-ID: ' . 'EBAY-US', 'Accept: ' . 'application/json', );

所以你可以看到有冒號後的空間。

1

試試這段代碼對我來說工作的很好。

<?php 
     // Your ID and token 
     $authToken = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 

     // The data to send to the API 
     $post_data = json_encode(array("legacyOrderId"=>"110181400870-27973775001")); 
     $url = 'https://api.sandbox.ebay.com/post-order/v2/cancellation/check_eligibility'; 
     //Setup cURL 
     $header = array(
         'Accept: application/json', 
         'Authorization: TOKEN '.$authToken, 
         'Content-Type: application/json', 
         'X-EBAY-C-MARKETPLACE-ID: EBAY-UK' 
         ); 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $response = curl_exec($ch); 
     if(curl_errno($ch)){ 
      echo "ERROR:".curl_error($ch); 
     } 
     curl_close($ch); 
     echo json_decode($response,true); 
    ?> 

響應:

Array 
(
    [legacyOrderId] => 110181400870-27973775001 
    [eligible] => 1 
    [failureReason] => Array 
     (
     ) 

    [itemEligibilityResult] => Array 
     (
      [0] => Array 
       (
        [itemId] => 110181400870 
        [transactionId] => 34573775001 
        [eligible] => 1 
        [failureReason] => Array 
         (
         ) 

       ) 

     ) 

    [eligibleCancelReason] => Array 
     (
      [0] => OUT_OF_STOCK_OR_CANNOT_FULFILL 
      [1] => BUYER_CANCEL_OR_ADDRESS_ISSUE 
     ) 

)