Reputation: 5407
I have created code to get the response from ebay. I tested using sandbox in ebay, which gives correct result.
but here in localhost example it does not give response:
For below code when I do:
$xmlResponse = simplexml_load_string($response);
var_dump($xmlResponse);
it returns : false
;
any idea what can be wrong here?
code:
require_once 'tradingConstants.php';
//DEFINE("API_URL",'https://api.sandbox.ebay.com/ws/api.dll');
// check if posted
// grab our posted keywords and call helper function
// TODO: check if need urlencode
$title = $_POST['title'];
$categoryID = $_POST['categoryID'];
$startPrice = $_POST['startPrice'];
$pictureURL = $_POST['pictureURL'];
$description = $_POST['description'];
// call the getAddItem function to make AddItem call
$response = getAddItem($title, $categoryID, $startPrice, $pictureURL, $description);
// Function to call the Trading API AddItem
function getAddItem($addTitle, $addCatID, $addSPrice, $addPicture, $addDesc) {
/* Sample XML Request Block for minimum AddItem request
see ... for sample XML block given length*/
// Create unique id for adding item to prevent duplicate adds
$uuid = md5(uniqid());
// create the XML request
$xmlRequest = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$xmlRequest .= "<AddItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">";
$xmlRequest .= "<ErrorLanguage>en_US</ErrorLanguage>";
$xmlRequest .= "<WarningLevel>High</WarningLevel>";
$xmlRequest .= "<Item>";
$xmlRequest .= "<Title>" . $addTitle . "</Title>";
$xmlRequest .= "<Description>" . $addDesc . "</Description>";
$xmlRequest .= "<PrimaryCategory>";
$xmlRequest .= "<CategoryID>" . $addCatID . "</CategoryID>";
$xmlRequest .= "</PrimaryCategory>";
$xmlRequest .= "<StartPrice>" . $addSPrice . "</StartPrice>";
$xmlRequest .= "<ConditionID>1000</ConditionID>";
$xmlRequest .= "<CategoryMappingAllowed>true</CategoryMappingAllowed>";
$xmlRequest .= "<Country>US</Country>";
$xmlRequest .= "<Currency>USD</Currency>";
$xmlRequest .= "<DispatchTimeMax>3</DispatchTimeMax>";
$xmlRequest .= "<ListingDuration>Days_7</ListingDuration>";
$xmlRequest .= "<ListingType>Chinese</ListingType>";
$xmlRequest .= "<PaymentMethods>PayPal</PaymentMethods>";
$xmlRequest .= "<PayPalEmailAddress>[email protected]</PayPalEmailAddress>";
$xmlRequest .= "<PictureDetails>";
$xmlRequest .= "<PictureURL>" . $addPicture . "</PictureURL>";
$xmlRequest .= "</PictureDetails>";
$xmlRequest .= "<PostalCode>05485</PostalCode>";
$xmlRequest .= "<Quantity>1</Quantity>";
$xmlRequest .= "<ReturnPolicy>";
$xmlRequest .= "<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>";
$xmlRequest .= "<RefundOption>MoneyBack</RefundOption>";
$xmlRequest .= "<ReturnsWithinOption>Days_30</ReturnsWithinOption>";
$xmlRequest .= "<Description>" . $addDesc . "</Description>";
$xmlRequest .= "<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>";
$xmlRequest .= "</ReturnPolicy>";
$xmlRequest .= "<ShippingDetails>";
$xmlRequest .= "<ShippingType>Flat</ShippingType>";
$xmlRequest .= "<ShippingServiceOptions>";
$xmlRequest .= "<ShippingServicePriority>1</ShippingServicePriority>";
$xmlRequest .= "<ShippingService>USPSMedia</ShippingService>";
$xmlRequest .= "<ShippingServiceCost>2.50</ShippingServiceCost>";
$xmlRequest .= "</ShippingServiceOptions>";
$xmlRequest .= "</ShippingDetails>";
$xmlRequest .= "<Site>US</Site>";
$xmlRequest .= "<UUID>" . $uuid . "</UUID>";
$xmlRequest .= "</Item>";
$xmlRequest .= "<RequesterCredentials>";
$xmlRequest .= "<eBayAuthToken>" . AUTH_TOKEN . "</eBayAuthToken>";
$xmlRequest .= "</RequesterCredentials>";
$xmlRequest .= "<WarningLevel>High</WarningLevel>";
$xmlRequest .= "</AddItemRequest>";
// define our header array for the Trading API call
// notice different headers from shopping API and SITE_ID changes to SITEID
$headers = array(
/*'X-EBAY-API-SITEID:'.SITEID,
'X-EBAY-API-CALL-NAME:addItem',
'X-EBAY-API-REQUEST-ENCODING:XML',
'X-EBAY-API-COMPATIBILITY-LEVEL:' . API_COMPATIBILITY_LEVEL,
'X-EBAY-API-DEV-NAME:' . API_DEV_NAME,
'X-EBAY-API-APP-NAME:' . API_APP_NAME,
'X-EBAY-API-CERT-NAME:' . API_CERT_NAME,*/
'X-EBAY-API-APP-ID:Startupb1-efb9-43ca-a0e8-473753fe9ad,
X-EBAY-API-VERSION:863,
X-EBAY-API-SITE-ID:203,
X-EBAY-API-CALL-NAME:AddItem,
X-EBAY-API-REQUEST-ENCODING:XML,
Content-Type: text/xml;charset=utf-8'
);
$API_URL = 'https://api.sandbox.ebay.com/ws/api.dll';
// initialize our curl session
$session = curl_init();
curl_setopt($session, CURLOPT_URL, $API_URL);
// set our curl options with the XML request
curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
curl_setopt($session, CURLOPT_POST, true);
curl_setopt($session, CURLOPT_POSTFIELDS, $xmlRequest);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// execute the curl request
$responseXML = curl_exec($session);
// close the curl session
curl_close($session);
//echo $addTitle;
// return the response XML
return $responseXML;
}
Upvotes: 1
Views: 1239
Reputation: 45490
simplexml_load_string
returns an object of class SimpleXMLElement
with properties containing the data held within the xml
document, or FALSE on failure.
You will need to find out why getAddItem
dies not return a valid xml
Upvotes: 1