Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 16202 : Invalid item, при обращении возвращает ошибку 
:(
    Опции темы
liliputochka
Дата 22.2.2010, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 16.3.2006
Где: Волгоград

Репутация: нет
Всего: нет



День добрый!
Проблема с eBay! Скачиваю письма с ebay.com через соответствующую функцию GetMemberMessages. Раньше у меня скачивались письма нормально, но теперь возникает ошибка
Цитата

eBay returned the following error(s):

16202 : Invalid item. 
We did not find your item in our system.

Класс, который реализует скачивание:
Код

<?
session_start();
include_once "GetMemberMessages_class.php";
include_once "DataBase_class.php";

$obj = new GMM("saferseller", 0);
$DB = new DataBase();

$MR = "Unread";

$responseAnswer = $obj->GetMemberMessagesInputAnswered();
$responseUnanswer = $obj->GetMemberMessagesInputUnanswered();
$responseCustome = $obj->GetMemberMessagesInputCustomeCode();

$conn = $DB->Connecting();

$obj->GetMemberMessagesOutput($responseCustome);
for($i = 0; $i < $obj->CountLetters; $i++){
    $SN = $obj->valueSenderID[$i];
    $SE = $obj->valueSenderEmail[$i];
    $S = $obj->valueSubject[$i];
    $B = $obj->valueBody[$i];
    $MID = $obj->valueMessageID[$i];
    $MS = $obj->valueMessageStatus[$i];
    $CD = $obj->valueCreationDate[$i];
    

    $retval = $DB->QueryInsertInbox($SN, $S, $B, $MID, $MS, $MR, $CD, $conn, $SE);
}
    
$obj->GetMemberMessagesOutput($responseAnswer);
for($i = 0; $i < $obj->CountLetters; $i++){
    $SN = $obj->valueSenderID[$i];
    $SE = $obj->valueSenderEmail[$i];
    $S = $obj->valueSubject[$i];
    $B = $obj->valueBody[$i];
    $MID = $obj->valueMessageID[$i];
    $MS = $obj->valueMessageStatus[$i];
    $CD = $obj->valueCreationDate[$i];
    
    $retval = $DB->QueryInsertInbox($SN, $S, $B, $MID, $MS, $MR, $CD, $conn, $SE);
}
$obj->GetMemberMessagesOutput($responseUnanswer);
for($i = 0; $i < $obj->CountLetters; $i++){
    $SN = $obj->valueSenderID[$i];
    $SE = $obj->valueSenderEmail[$i];
    $S = $obj->valueSubject[$i];
    $B = $obj->valueBody[$i];
    $MID = $obj->valueMessageID[$i];
    $MS = $obj->valueMessageStatus[$i];
    $CD = $obj->valueCreationDate[$i];
    
    $retval = $DB->QueryInsertInbox($SN, $S, $B, $MID, $MS, $MR, $CD, $conn, $SE);
}

$DB->Disconnecting($conn);
echo "Ok! Letters downloaded!";
?>

Файл GetMemberMessages_class.php
Код

<?
//error_reporting(E_ALL);

include_once "eBaySession_class.php";

class GMM{
    public $valueitemID = array();
    public $valueMessageType = array();
    public $valueSenderID = array();
    public $valueSenderEmail = array();
    public $valueRecipientID = array();
    public $valueSubject = array();
    public $valueBody = array();
    public $valueMessageID = array();
    public $valueMessageStatus = array();
    public $valueCreationDate = array();
    public $CountLetters;

    public function __construct($requester, $siteID){
        $this->requester    = $requester;
        $this->siteID    = $siteID;
        
        //, false, 517, $this->siteID, $verb

        //Application Specfic Developer tokens
        $this->devID    = '';
        $this->appID    = '';
        $this->certID    = '';
        
        //the token representing the eBay user to assign the call with -- All eBay Users in use on the system
        
        $this->token = '';
    }
    
    public function GetMemberMessagesInputAnswered(){ 
        $date = new DateTime(date('Y-m-d H:i:s'));
        $start = $this->LastDate();
        $end = $date->format("Y-m-d H:i:s");
        
        // Header XML file
        $requestXmlBody = '<?xml version="1.0" encoding="utf-8"?>';
        $requestXmlBody .= '<GetMemberMessagesRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
        $requestXmlBody .= "<RequesterCredentials>";
        $requestXmlBody .= "<eBayAuthToken>".$this->token."</eBayAuthToken>";
        $requestXmlBody .= "</RequesterCredentials>";
        
        // Body XML file
        $requestXmlBody .= "<MailMessageType>All</MailMessageType>";
        $requestXmlBody .= "<MessageStatus>Answered</MessageStatus>";
        $requestXmlBody .= "<StartCreationTime>$start</StartCreationTime>";
        $requestXmlBody .= "<EndCreationTime>$end</EndCreationTime>";
        $requestXmlBody .= "<Pagination>";
        $requestXmlBody .= "<EntriesPerPage>100</EntriesPerPage>";
        $requestXmlBody .= "<PageNumber>1</PageNumber>";
        $requestXmlBody .= "</Pagination>";
        $requestXmlBody .= "</GetMemberMessagesRequest>";
        $requestXmlBody = utf8_encode($requestXmlBody);
        
        return $this->eBayRequest($requestXmlBody , 'GetMemberMessages');
    }
    
        public function GetMemberMessagesInputUnanswered(){ 
        $date = new DateTime(date('Y-m-d H:i:s'));
        $start = $this->LastDate();
        $end = $date->format("Y-m-d H:i:s");
        
        // Header XML file
        $requestXmlBody = '<?xml version="1.0" encoding="utf-8"?>';
        $requestXmlBody .= '<GetMemberMessagesRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
        $requestXmlBody .= "<RequesterCredentials>";
        $requestXmlBody .= "<eBayAuthToken>".$this->token."</eBayAuthToken>";
        $requestXmlBody .= "</RequesterCredentials>";
        
        // Body XML file
        $requestXmlBody .= "<MailMessageType>All</MailMessageType>";
        $requestXmlBody .= "<MessageStatus>Unanswered</MessageStatus>";
        $requestXmlBody .= "<StartCreationTime>$start</StartCreationTime>";
        $requestXmlBody .= "<EndCreationTime>$end</EndCreationTime>";
        $requestXmlBody .= "<Pagination>";
        $requestXmlBody .= "<EntriesPerPage>100</EntriesPerPage>";
        $requestXmlBody .= "<PageNumber>1</PageNumber>";
        $requestXmlBody .= "</Pagination>";
        $requestXmlBody .= "</GetMemberMessagesRequest>";
        $requestXmlBody = utf8_encode($requestXmlBody);
        
        return $this->eBayRequest($requestXmlBody , 'GetMemberMessages');
    }
    
        public function GetMemberMessagesInputCustomeCode(){ 
        $date = new DateTime(date('Y-m-d H:i:s'));
        $start = $this->LastDate();
        $end = $date->format("Y-m-d H:i:s");
        
        // Header XML file
        $requestXmlBody = '<?xml version="1.0" encoding="utf-8"?>';
        $requestXmlBody .= '<GetMemberMessagesRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
        $requestXmlBody .= "<RequesterCredentials>";
        $requestXmlBody .= "<eBayAuthToken>".$this->token."</eBayAuthToken>";
        $requestXmlBody .= "</RequesterCredentials>";
        
        // Body XML file
        $requestXmlBody .= "<MailMessageType>All</MailMessageType>";
        $requestXmlBody .= "<MessageStatus>CustomCode</MessageStatus>";
        $requestXmlBody .= "<StartCreationTime>$start</StartCreationTime>";
        $requestXmlBody .= "<EndCreationTime>$end</EndCreationTime>";
        $requestXmlBody .= "<Pagination>";
        $requestXmlBody .= "<EntriesPerPage>1000</EntriesPerPage>";
        $requestXmlBody .= "<PageNumber>1</PageNumber>";
        $requestXmlBody .= "</Pagination>";
        $requestXmlBody .= "</GetMemberMessagesRequest>";
        $requestXmlBody = utf8_encode($requestXmlBody);
        
        return $this->eBayRequest($requestXmlBody , 'GetMemberMessages');
    }
    
    public function eBayRequest($requestXmlBody, $verb) {
        //set the Server to use (Sandbox or Production)
        $serverUrl = 'https://api.ebay.com/ws/api.dll';

        $session = new eBaySession($this->token, $this->devID, $this->appID, $this->certID, false, "517", $this->siteID, $verb);
        $responseXml = $session->sendHttpRequest($requestXmlBody);
        if(stristr($responseXml, 'HTTP 404') || $responseXml == '')
            die('<P>Error sending request');
            
        return $responseXml;
    }
    
    public function GetMemberMessagesOutput($stringXml){
        //Xml string is parsed and creates a DOM Document object
        $responseDoc = new DomDocument();
        $responseDoc->loadXml($stringXml);
        
        //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(">", "&gt;", str_replace("<", "&lt;", $shortMsg->item(0)->nodeValue));
            //if there is a long message (ie ErrorLevel=1), display it
            if(count($longMsg) > 0)
                echo '<BR>', str_replace(">", "&gt;", str_replace("<", "&lt;", $longMsg->item(0)->nodeValue));
            return 0;
            echo '<br><br><br>
            Request:
            ';
            echo $requestXmlBody . '<br><br>';
        }
        else {
            $memberMessage = $responseDoc->getElementsByTagName('MemberMessageExchange');
            $this->CountLetters = $memberMessage->length;
            $i = 0;
            foreach( $memberMessage as $mM ){

            $itemID = $mM->getElementsByTagName( "ItemID" );//позиция товара на eBay
            @$this->valueitemID[$i] = $itemID->item(0)->nodeValue;
            
            $senderID = $mM->getElementsByTagName("SenderID");//кто послал сообщение
            $this->valueSenderID[$i] = $senderID->item(0)->nodeValue;
            
            $senderEmail = $mM->getElementsByTagName("SenderEmail");//email человека, который послал сообщение
            @$this->valueSenderEmail[$i] = $senderEmail->item(0)->nodeValue;

            
            $recipientID = $mM->getElementsByTagName("RecipientID");//кому написали сообщение = saferseller
            $this->valueRecipientID[$i] = $recipientID->item(0)->nodeValue;// не нужные данные
            
            $subject = $mM->getElementsByTagName("Subject");//тема сообщения
            $this->valueSubject[$i] = $subject->item(0)->nodeValue;
            
            $Body = $mM->getElementsByTagName( "Body" );//само сообщение
            $this->valueBody[$i] = $Body->item(0)->nodeValue;
            
            $messageID = $mM->getElementsByTagName("MessageID");// id данного сообщения
            $this->valueMessageID[$i] = $messageID->item(0)->nodeValue;
            
            $messageStatus = $mM->getElementsByTagName("MessageStatus");// статус данного сообщения (отвеченное, неотвеченное, ???)
            $this->valueMessageStatus[$i] = $messageStatus->item(0)->nodeValue;
            
            $creationDate = $mM->getElementsByTagName("CreationDate");//дата и время создания сообщения
            $this->valueCreationDate[$i] = $creationDate->item(0)->nodeValue;
   
            $i++;
            } 
        }
    }
    

    private function LastDate(){
        $date = new DateTime(date('Y-m-d H:i:s'));
        $year = $date->format("Y");
        $month = $date->format("m");
        $day = $date->format("d");
        $time = $date->format("H:i:s");
        
        if($month == 01){
            $month = 12;
            $year -= 1;
        }
        else{
            $month -= 1;
            $temp = "0";
            $temp .= $month;
            $month = $temp;
        }
        $prevDate = $year;
        $prevDate .= "-";
        $prevDate .= $month;
        $prevDate .= "-";
        $prevDate .= $day;
        $prevDate .= " ";
        $prevDate .= $time;
        
        return $prevDate;
    }
}
?>

Помогите пожалуйста!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.