我是 eBay API 的新手,目前正在使用 PHP 进行开发,我已经设法使用 GetItem 将基于项目 ID 的订单详细信息导入我的网站数据库。但我现在要做的是将用户帐户链接到我的网站并将他们的列表导入我的数据库。我已经将我用于 GetItem 的代码(如下)放在了:
首先:让我的用户从我的网站重定向到 eBay,以授权我的应用程序访问他/她的列表。
第二:将该列表(现在回显就足够了)导入我的网站。
这是我的 GetItem 代码:
require_once('keys.php');
require_once('eBaySession.php');
if(isset($_POST['Id']))
{
//Get the ItemID inputted
$id = $_POST['Id'];
//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 = 101;
//the call being made:
$verb = 'GetItem';
///Build the request Xml string
$requestXmlBody = '<?xml version="1.0" encoding="utf-8" ?>';
$requestXmlBody .= '<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
$requestXmlBody .= "<RequesterCredentials><eBayAuthToken>$userToken</eBayAuthToken></RequesterCredentials>";;
$requestXmlBody .= "<ItemID>$id</ItemID>";
$requestXmlBody .= '</GetItemRequest>';
//Create a new eBay session with all details pulled in from included keys.php
$session = new eBaySession($userToken, $devID, $appID, $certID, $serverUrl, $compatabilityLevel, $siteID, $verb);
//send the request and get response
$responseXml = $session->sendHttpRequest($requestXmlBody);
if(stristr($responseXml, 'HTTP 404') || $responseXml == '')
die('<P>Error sending request');
//Xml string is parsed and creates a DOM Document object
$responseDoc = new DomDocument();
$responseDoc->loadXML($responseXml);
//get any error nodes
$errors = $responseDoc->getElementsByTagName('Errors');
//if there are error nodes
if($errors->length > 0)
{
echo '<P><B>eBay returned the following error(s):</B>';
//display each error
//Get error code, ShortMesaage and LongMessage
$code = $errors->item(0)->getElementsByTagName('ErrorCode');
$shortMsg = $errors->item(0)->getElementsByTagName('ShortMessage');
$longMsg = $errors->item(0)->getElementsByTagName('LongMessage');
//Display code and shortmessage
echo '<P>', $code->item(0)->nodeValue, ' : ', str_replace(">", ">", str_replace("<", "<", $shortMsg->item(0)->nodeValue));
//if there is a long message (ie ErrorLevel=1), display it
if(count($longMsg) > 0)
echo '<BR>', str_replace(">", ">", str_replace("<", "<", $longMsg->item(0)->nodeValue));
}
else //no errors
{
//get the nodes needed
$titleNode = $responseDoc->getElementsByTagName('Title');
$primaryCategoryNode = $responseDoc->getElementsByTagName('PrimaryCategory');
$categoryNode = $primaryCategoryNode->item(0)->getElementsByTagName('CategoryName');
$listingDetailsNode = $responseDoc->getElementsByTagName('ListingDetails');
$startedNode = $listingDetailsNode->item(0)->getElementsByTagName('StartTime');
$endsNode = $listingDetailsNode->item(0)->getElementsByTagName('EndTime');
$ShippingPackageDetailsNode = $responseDoc->getElementsByTagName('ShippingPackageDetails');
if ($ShippingPackageDetailsNode->length > 0) {
$packageDepthNode = $ShippingPackageDetailsNode->item(0)->getElementsByTagName('PackageDepth');
$DepthUnit = $packageDepthNode->item(0)->getAttribute('unit');
$packageLengthNode = $ShippingPackageDetailsNode->item(0)->getElementsByTagName('PackageLength');
$LengthUnit = $packageLengthNode->item(0)->getAttribute('unit');
$packageWidthNode = $ShippingPackageDetailsNode->item(0)->getElementsByTagName('PackageWidth');
$WidthUnit = $packageWidthNode->item(0)->getAttribute('unit');
}
$sellingStatusNode = $responseDoc->getElementsByTagName('SellingStatus');
$currentPriceNode = $sellingStatusNode->item(0)->getElementsByTagName('CurrentPrice');
$currency = $currentPriceNode->item(0)->getAttribute('currencyID');
$startPriceNode = $responseDoc->getElementsByTagName('StartPrice');
$buyItNowPriceNode = $responseDoc->getElementsByTagName('BuyItNowPrice');
$bidCountNode = $sellingStatusNode->item(0)->getElementsByTagName('BidCount');
$sellerNode = $responseDoc->getElementsByTagName('Seller');
//Display the details
echo '<P><B>', $titleNode->item(0)->nodeValue, " ($id)</B>";
echo '<BR>Category: ', $categoryNode->item(0)->nodeValue;
echo '<BR>Started: ', $startedNode->item(0)->nodeValue;
echo '<BR>Ends: ', $endsNode->item(0)->nodeValue;
if ($ShippingPackageDetailsNode->length > 0) {
echo "<BR>Package Length: ", $packageLengthNode->item(0)->nodeValue, ' '.$LengthUnit.'';
echo "<BR>Package Width: ", $packageWidthNode->item(0)->nodeValue, ' '.$WidthUnit.'';
echo "<BR>Package Depth: ", $packageDepthNode->item(0)->nodeValue, ' '.$DepthUnit.'';
}
echo "<P>Current Price: ", $currentPriceNode->item(0)->nodeValue, $currency;
echo "<BR>Start Price: ", $startPriceNode->item(0)->nodeValue, $currency;
echo "<BR>BuyItNow Price: ", $buyItNowPriceNode->item(0)->nodeValue, $currency;
echo "<BR>Bid Count: ", $bidCountNode->item(0)->nodeValue;
//Display seller detail if present
if($sellerNode->length > 0)
{
echo '<P><B>Seller</B>';
$userIDNode = $sellerNode->item(0)->getElementsByTagName('UserID');
$scoreNode = $sellerNode->item(0)->getElementsByTagName('FeedbackScore');
$regDateNode = $sellerNode->item(0)->getElementsByTagName('RegistrationDate');
echo '<BR>UserID: ', $userIDNode->item(0)->nodeValue;
echo '<BR>Feedback Score: ', $scoreNode->item(0)->nodeValue;
echo '<BR>Registration Date: ', $regDateNode->item(0)->nodeValue;
}
}
}