Php 易趣Api,获取订单。Can';我没有收到买家的电子邮件

Php 易趣Api,获取订单。Can';我没有收到买家的电子邮件,php,ebay-api,Php,Ebay Api,大家好 对易趣交易api有疑问 我正在尝试获取授权用户的所有订单。 我正在使用PHP开发我的web应用程序 所以,我使用这个sdk: 我正在使用getOrders方法获取列表: 下面是我的代码示例: public function getOrders(){ $service = $this->getTradingService(); $args = array( //"OrderStatus" => "Complete

大家好

对易趣交易api有疑问

我正在尝试获取授权用户的所有订单。 我正在使用PHP开发我的web应用程序

所以,我使用这个sdk:

我正在使用getOrders方法获取列表:

下面是我的代码示例:

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;
}
是空的

$orders[0]['TransactionArray']['Transaction'][0]['Buyer']['Email']
字符串值为“无效请求”

如果有人知道如何得到买家的电子邮件

或者只是在一个请求中获取有关多个用户的信息(这样我就可以简单地合并它们)

更新:

在没有SDK的情况下也尝试了同样的方法

public function getOrders2(){
        $xml = '<?xml version="1.0" encoding="utf-8"?>
                <GetOrdersRequest xmlns="urn:ebay:apis:eBLBaseComponents">
                  <CreateTimeFrom>2000-01-01T00:00:00</CreateTimeFrom>
                  <CreateTimeTo>2015-10-22T00:00:00</CreateTimeTo>
                  <IncludeFinalValueFee>true</IncludeFinalValueFee>
                  <OrderRole>Seller</OrderRole>
                  <OrderStatus>All</OrderStatus>
                  <DetailLevel>ReturnAll</DetailLevel>
                  <RequesterCredentials>
                    <eBayAuthToken>' . $this->userToken . '</eBayAuthToken>
                  </RequesterCredentials>
                </GetOrdersRequest>';

        $url = 'https://api.ebay.com/ws/api.dll';
        $results = $this->sendPostRequest($xml,$url);
        $results = new SimpleXMLElement($results);
        return $results;
    }
公共函数getOrders2(){
$xml='0
2000-01-01T00:00:00
2015-10-22T00:00:00
真的
卖方
全部的
返回所有
“.$this->userToken”
';
$url='1https://api.ebay.com/ws/api.dll';
$results=$this->sendPostRequest($xml,$url);
$results=新的SimpleXMLElement($results);
返回$results;
}
得到同样的问题


感谢需要将站点id更改为id用户注册

$config = [
            'apiVersion' => Services\TradingService::API_VERSION,
            'siteId' => Constants\SiteIds::US, 
            'credentials' => [
                'appId'  => getenv('EBAY_APP_ID'),
                'certId' => getenv('EBAY_CERT_ID'),
                'devId'  => getenv('EBAY_DEV_ID')
            ],
            'sandbox' => false
        ];

需要将站点id更改为id用户注册

$config = [
            'apiVersion' => Services\TradingService::API_VERSION,
            'siteId' => Constants\SiteIds::US, 
            'credentials' => [
                'appId'  => getenv('EBAY_APP_ID'),
                'certId' => getenv('EBAY_CERT_ID'),
                'devId'  => getenv('EBAY_DEV_ID')
            ],
            'sandbox' => false
        ];

如果订单太旧,则会导致无效请求(简单地说“此订单已经XX天了,我们不会为其提供电子邮件地址)

如果订单太旧,则会导致无效请求(简单地说“此订单已经XX天了,我们不会为其提供电子邮件地址)

易趣会在下单14天后扣留用户的电子邮件信息

如果您正在使用他们的API提取订单信息,您将获得:

电子邮件='无效请求'

示例响应

...
'TransactionArray': {'Transaction': [...
                                     'Buyer': {'Email': 'Invalid Request',
                                               'UserFirstName': None,
                                               'UserLastName': None},
...                             
要做的是

  • 在那之前提取数据,然后
  • 不要在后续数据提取中更新订单电子邮件数据

  • 我好不容易才发现这一点。我不记得在API文档中读到过这方面的内容。

    易趣在下单14天后会扣留用户的电子邮件信息

    如果您正在使用他们的API提取订单信息,您将获得:

    电子邮件='无效请求'

    示例响应

    ...
    'TransactionArray': {'Transaction': [...
                                         'Buyer': {'Email': 'Invalid Request',
                                                   'UserFirstName': None,
                                                   'UserLastName': None},
    ...                             
    
    要做的是

  • 在那之前提取数据,然后
  • 不要在后续数据提取中更新订单电子邮件数据

  • 我好不容易才发现这一点。我不记得在API文档中读过这方面的内容。

    尝试过GetUser API方法,也无法收到电子邮件。获取无效的请求字符串而不是大约5%的时间我还获取一个空的电子邮件字段。如果您这样做是为了联系买家,一个解决方法是使用AddMemberMessageAAQToPartner callI获取任何订单的空电子邮件。但订单大约在1年前就完成了。也许是因为这个原因。我只需要将订单导入我的crm系统,此处的“电子邮件是必填字段”。如果需要某种电子邮件标识符,可能需要使用StaticAlias,它采用电子邮件地址的形式,例如@members.ebay.com.GetUser Api方法,也无法获取电子邮件。获取无效的请求字符串而不是大约5%的时间我还获取一个空的电子邮件字段。如果您这样做是为了联系买家,一个解决方法是使用AddMemberMessageAAQToPartner callI获取任何订单的空电子邮件。但订单大约在1年前就完成了。也许是因为这个原因。我只需要将订单导入到我的crm系统,此处的“电子邮件”字段为必填字段。如果您需要某种类型的电子邮件标识符,您可能需要使用StaticAlias,其形式为电子邮件地址e.g@members.ebay.com。