Hello,
I want to be able to find and assign a PHP variable to the Transaction ID where the UserID is a specified user though Ebays XML API.
Here is the structure of the replies I get from the XML API; http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/io_GetItemTransactions.html
Now, I want to assign a variable to "TransactionArray.Transaction.TransactionID" where the "TransactionArray.Transaction.Buyer.UserID" is a specified user (theventsell in this example).
I tried with this code;
<?php
require_once('functions.php');
require_once('variables.php');
error_reporting(E_ALL);
//SiteID must also be set in the Request's XML
//SiteID = 0 (US) - UK = 3, Canada = 2, Australia = 15, ....
//SiteID Indicates the eBay site to associate the call with
$siteID = 0;
//the call being made:
$verb = 'GetItemTransactions';
//Regulates versioning of the XML interface for the API
$compatabilityLevel = 433;
//get an array of strings containing the required headers
$headers = buildEbayHeaders($devID, $appID, $certID, $compatabilityLevel, $siteID, $verb);
///Build the request Xml string
$requestXmlBody = '<?xml version="1.0" encoding="utf-8"?>';
$requestXmlBody .= '<GetItemTransactionsRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
$requestXmlBody .= "<RequesterCredentials><eBayAuthToken>$userToken</eBayAuthToken></RequesterCredentials>";
$requestXmlBody .= '<ItemID>110013682918</ItemID>';
$requestXmlBody .= '<ModTimeFrom>2006-12-25T18:28:52.799Z</ModTimeFrom>';
$requestXmlBody .= '<ModTimeTo>2007-01-10T18:28:52.799Z</ModTimeTo>';
$requestXmlBody .= '</GetItemTransactionsRequest>';
$responseXml = sendHttpRequest($requestXmlBody, $serverUrl, $headers);
if(stristr($responseXml, 'HTTP 404') || $responseXml == '')
die('<P>Error sending request');
//Xml string is parsed and creates a DOM Document object
$responseDoc = domxml_open_mem($responseXml);
//get any error nodes
$errors = $responseDoc->get_elements_by_tagname('Errors');
//if there are error nodes
if(count($errors) > 0)
{
echo '<P><B>eBay returned the following error(s):</B>';
//display each error
//Get error code, ShortMesaage and LongMessage
$code = $errors[0]->get_elements_by_tagname('ErrorCode');
$shortMsg = $errors[0]->get_elements_by_tagname('ShortMessage');
$longMsg = $errors[0]->get_elements_by_tagname('LongMessage');
//Display code and shortmessage
echo '<P>', $code[0]->get_content(), ' : ', str_replace(">", ">", str_replace("<", "<", $shortMsg[0]->get_content()));
//if there is a long message (ie ErrorLevel=1), display it
if(count($longMsg) > 0)
echo '<BR>', str_replace(">", ">", str_replace("<", "<", $longMsg[0]->get_content()));
}
else //no errors
{
//get results nodes
$transactionNodes = $responseDoc->get_elements_by_tagname('Transaction');
echo $transactionNodes;
//get the node containing the time and display its contents
$eBayTime = $responseDoc->get_elements_by_tagname('Transaction');
echo '<P><B>The answer is ', $eBayTime[0]->get_content(), ' GMT</B>';
}
?>
And got this when I runned it;
Array
The answer is 2.950.00.0falsenY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4CkAZKDqQydj6x9nY+seQ==oskare200@hotmail.com0falseNonetruetruefalse2006-01-01T19:59:59.000ZUSConfirmedtheventbuytrue2006-12-28T22:34:43.000ZNoVATTaxTest UseraddresscitystateNone(180) 011-1111 ext.: 1951253101053eBayfalsetrue0.0NotOfferedfalsefalse0.0falseUSPSPriority0.00.01false23Flatfalsefalse2.952.952006-12-31T11:12:49.000ZNone1NoPaymentFailureCheckoutIncomplete2006-12-31T11:12:49.000ZNoneIncompletefalse50062629452.95false0.0USPSPriority0.0eBay GMT
So it seams like what I get back is an array, the problem is that I don't know how to select and assign a variable to "TransactionArray.Transaction.TransactionID" where the "TransactionArray.Transaction.Buyer.UserID" is a specified user (theventsell in this example). Is it possible to do so and how can I do it?
If it is to any help, here is the results I get from print_r($transactionNodes);
ArrayArray ( [0] => domelement Object ( [type] => 1 [tagname] => Transaction [0] => 6 [1] => 144378264 ) [1] => domelement Object ( [type] => 1 [tagname] => Transaction [0] => 7 [1] => 143887560 ) )
Best Regards
Oskar R