ebay api - отправьте xml запрос через php - PullRequest
2 голосов
/ 24 февраля 2012

Кто-нибудь может увидеть, что мне не хватает? Я не получаю ответа, XML-файл правильный, так же как и заголовки и URL, но я ничего не получаю в ответ.

<?php
    error_reporting(E_ALL);

    $URL = $_REQUEST['URL'];
    $site = $_REQUEST['site'];
    $file = fopen($URL, 'r');
    $xmlRequest = fread($file, filesize($URL));
    echo "<textarea>" . $xmlRequest . "</textarea>"; //this is me making sure the file
                                                     //actually contains the xml doc

    $endpoint = "https://api.sandbox.ebay.com/ws/api.dll";
    $session  = curl_init($endpoint);                       // create a curl session

    curl_setopt($session, CURLOPT_POST, true);              // POST request type
    curl_setopt($session, CURLOPT_POSTFIELDS, $xmlRequest); // set the body of the POST
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);    // return values as a string - not to std out
    $headers = array(
      'X-EBAY-API-CALL-NAME: GetCategories',
      'X-EBAY-API-SITE-ID: ' . $site,
      'X-EBAY-API-DEV-NAME: *****',
      'X-EBAY-API-APP-NAME: *****',
      'X-EBAY-API-CERT-NAME: *****',
      'X-EBAY-API-COMPATIBILITY-LEVEL: 761',
      'X-EBAY-API-REQUEST-ENCODING: XML',    // for a POST request, the response by default is in the same format as the request
      'Content-Type: text/xml;charset=utf-8'
    );
    curl_setopt($session, CURLOPT_HTTPHEADER, $headers);    //set headers using the above array of headers

    $responseXML = curl_exec($session);                     // send the request
    curl_close($session);

    if ($responseXML = '' OR $responseXML = ' ') {
      echo "Failed!";
    }
    echo $responseXML;
    return $responseXML;  // returns a string

?>

1 Ответ

0 голосов
/ 15 февраля 2017

Попробуйте это:

$xml_response =  simplexml_load_string($responseXML);

Внутри этого xml_response вы должны найти Ack

$xml_response->Ack

значения могут быть: «Предупреждение», «Сбой» или «Успех» и указывают тип ошибки (если в запросе была ошибка)

...