@antonshell

Ebay Api. Как получить Buyer email?

Здравствуйте.

Кто-нибудь знает, как получить email покупателя через Ebay Api? И возможно ли это впринципе?

Разрабатываю web-приложение, которое должно получать данные с Ebay.

Интересует список заказов, из него пытаюсь получить список пользователей.

Использую php-sdk:

https://github.com/davidtsadler/ebay-sdk-php

Использую Trading Api, метод GetOrders:

developer.ebay.com/devzone/xml/docs/Reference/ebay...

Пример кода:

public function getOrders(){
        $service = $this->getTradingService();

        $args = array(
            //"OrderStatus"   => "Completed",
            "OrderStatus"   => "All",
            "SortingOrder"  => "Ascending",
            "OrderRole"     => "Seller",

            //"CreateTimeFrom"   => new \DateTime('2015-01-01'),
            "CreateTimeFrom"   => new \DateTime('2000-01-01'),
            "CreateTimeTo"   => new \DateTime(),
        );

        $request = new Types\GetOrdersRequestType($args);
        $request->RequesterCredentials = new Types\CustomSecurityHeaderType();
        $request->RequesterCredentials->eBayAuthToken = $this->userToken;
        $request->IncludeFinalValueFee = true;
        $request->Pagination = new Types\PaginationType();
        $request->Pagination->EntriesPerPage = 100;
        $pageNum = 1;

        $orders = [];

        do {
            $request->Pagination->PageNumber = $pageNum;

            $response = $service->getOrders($request);

            if (isset($response->Errors)) {

                $message = '';

                foreach ($response->Errors as $error) {
                    $message .= $error->ShortMessage;
                }

                throw new Exception($message);
            }

            if ($response->Ack !== 'Failure' && isset($response->OrderArray)) {
                foreach ($response->OrderArray->Order as $order) {
                    $orders[] = $order->toArray();
                }
            }

            $pageNum += 1;
        }
        while(isset($response->OrderArray) && $pageNum <= $response->PaginationResult->TotalNumberOfPages);

        return $orders;
}


Работает нормально, получаю заказ, адрес доставки и т.д.
Но Email покупателя не удается получить никак.

$orders[0]['ShippingAddress']['ExternalAddressID']

Пустая строка.

$orders[0]['TransactionArray']['Transaction'][0]['Buyer']['Email']


Строковое значение "Invalid Request"

Грешил на sdk, пробовал то же самое делать через Post запрос, тот же результат.

Пробовал через метод GetUser - все то же самое.

Похоже, что это связано с политикой приватности ebay.
Но, по-идее, для завершенных заказов должна быть возможность получить email.

Кто-нибудь сталкивался с подобным?

Заранее спасибо.
  • Вопрос задан
  • 786 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
GetUserContactDetails returns all available contact information except street address and email address. Sellers who wish to send an email to bidders should use AddMemberMessagesAAQToBidder.

хотя когда-то

eBay® only stores the buyer email address in their system for 15 days. If you download shipments from their system that are older than 15 days, you will see "Invalid Request".

проверьте на недавнем заказе, если не второе - тогда первое
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы