View Single Post
Old 12-31-2006, 09:52 AM   #1 (permalink)
oskare100
Junior Member
 
Join Date: Dec 2006
Posts: 4
Default Assign a variable to TransactionArray.Transaction.TransactionID where user ID =?

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; GetItemTransactions - Version 491 - Version 491[/url].

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 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(">""&gt;"str_replace("<""&lt;"$shortMsg[0]->get_content()));
        
//if there is a long message (ie ErrorLevel=1), display it
        
if(count($longMsg) > 0)
            echo 
'<BR>'str_replace(">""&gt;"str_replace("<""&lt;"$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;
Code:
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);
Quote:
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

Last edited by oskare100 : 12-31-2006 at 10:12 AM.
oskare100 is offline   Reply With Quote
Sponsored Links