skip to Main Content

GET /post-order/v2/casemanagement/{caseId} call of eBay Post Order API giving an empty string. Can anyone clear out where does my code go wrong? Am I passing the headers correctly? Especially is the syntax of authorization correct?

<?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);

2

Answers


  1. ADD
    curl_setopt($connection, CURLOPT_HEADER, 1);

    To return the headers and see what your problem might be.

    I also don’t know if it matters but my headers array looks like:

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

    So you can see there is a space after the colon.

    Login or Signup to reply.
  2. Try this code it is working fine for me.

    <?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);
         ?>
    

    Response:

     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
            )
    
    )
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search