Php 易趣授权令牌

Php 易趣授权令牌,php,token,trading,ebay-api,Php,Token,Trading,Ebay Api,我正在使用沙盒验证。这里有一个令牌,它总是向我发送这样的错误 错误:身份验证令牌无效。验证API请求中的身份验证令牌失败。 但是如果我使用我的产品授权。这似乎是锻炼,没有任何问题 我还检查了我的沙盒令牌的有效性,有效期是2016年11月,这已经足够了。有人能帮我解决我的问题吗?提前谢谢 代码如下: require __DIR__.'/../vendor/autoload.php'; $config = require __DIR__.'/../configuration.php'; use

我正在使用沙盒验证。这里有一个令牌,它总是向我发送这样的错误

错误:身份验证令牌无效。验证API请求中的身份验证令牌失败。

但是如果我使用我的产品授权。这似乎是锻炼,没有任何问题

我还检查了我的沙盒令牌的有效性,有效期是2016年11月,这已经足够了。有人能帮我解决我的问题吗?提前谢谢

代码如下:

require __DIR__.'/../vendor/autoload.php';

$config = require __DIR__.'/../configuration.php';

use \DTS\eBaySDK\Constants;
use \DTS\eBaySDK\Trading\Services;
use \DTS\eBaySDK\Trading\Types;
use \DTS\eBaySDK\Trading\Enums;

$service = new Services\TradingService(array(
    'apiVersion' => $config['tradingApiVersion'],
    'siteId' => Constants\SiteIds::US
));

$request = new Types\GetMyeBaySellingRequestType();

$request->RequesterCredentials = new Types\CustomSecurityHeaderType();
$request->RequesterCredentials->eBayAuthToken = $config['sandbox']['userToken'];

$request->ActiveList = new Types\ItemListCustomizationType();
$request->ActiveList->Include = true;
$request->ActiveList->Pagination = new Types\PaginationType();
$request->ActiveList->Pagination->EntriesPerPage = 10;
$request->ActiveList->Sort = Enums\ItemSortTypeCodeType::C_CURRENT_PRICE_DESCENDING;

$pageNum = 1;

do {
    $request->ActiveList->Pagination->PageNumber = $pageNum;
    $response = $service->getMyeBaySelling($request);

echo "==================\nResults for page $pageNum\n==================\n";

if (isset($response->Errors)) {
    foreach ($response->Errors as $error) {
        printf("%s: %s\n%s\n\n",
            $error->SeverityCode === Enums\SeverityCodeType::C_ERROR ? 'Error' : 'Warning',
            $error->ShortMessage,
            $error->LongMessage
        );
    }
}

if ($response->Ack !== 'Failure' && isset($response->ActiveList)) {
    foreach ($response->ActiveList->ItemArray->Item as $item) {
        printf("(%s) %s: %s %.2f\n",
            $item->ItemID,
            $item->Title,
            $item->SellingStatus->CurrentPrice->currencyID,
            $item->SellingStatus->CurrentPrice->value
        );
    }
}

$pageNum += 1;

} while(isset($response->ActiveList) && $pageNum <= $response->ActiveList->PaginationResult->TotalNumberOfPages);
require _DIR _./../vendor/autoload.php';
$config=require _DIR _.'/../configuration.php';
使用\DTS\eBaySDK\Constants;
使用\DTS\eBaySDK\Trading\Services;
使用\DTS\eBaySDK\Trading\Types;
使用\DTS\eBaySDK\Trading\Enums;
$service=新服务\TradingService(阵列)(
“apiVersion”=>$config['tradingApiVersion'],
'siteId'=>Constants\SiteIds::US
));
$request=新类型\GetMyeBaySellingRequestType();
$request->RequesterCredentials=新类型\CustomSecurityHeaderType();
$request->RequesterCredentials->eBayAuthToken=$config['sandbox']['userToken'];
$request->ActiveList=新类型\ItemListCustomizationType();
$request->ActiveList->Include=true;
$request->ActiveList->Pagination=new-Types\PaginationType();
$request->ActiveList->Pagination->entriespage=10;
$request->ActiveList->Sort=Enums\ItemSortTypeCodeType::C\u CURRENT\u PRICE\u DESCENDING;
$pageNum=1;
做{
$request->ActiveList->Pagination->PageNumber=$pageNum;
$response=$service->getMyeBaySelling($request);
echo“===========================\n第$pageNum页的结果\n============================\n”;
if(设置($response->Errors)){
foreach($response->Errors as$error){
printf(“%s:%s\n%s\n\n”,
$error->SERVERITYCODE===Enums\SERVERITYCODETYPE::C_错误?'error':'Warning',
$error->ShortMessage,
$error->LongMessage
);
}
}
如果($response->Ack!='Failure'&&isset($response->ActiveList)){
foreach($response->ActiveList->ItemArray->itemas$Item){
printf((%s)%s:%s%.2f\n“,
$item->ItemID,
$item->Title,
$item->SellingStatus->CurrentPrice->currencyID,
$item->SellingStatus->CurrentPrice->value
);
}
}
$pageNum+=1;
}while(isset($response->ActiveList)&&&$pageNum-ActiveList->PaginationResult->TotalNumberOfPages);

大卫·T·萨德勒爵士的功劳

基于所得到的,我几乎可以保证您将您的请求发送到

(这就是为什么production auth可以工作的原因)

而不是把它送到

(其中sandox授权 (应该有效)

附加说明

确保所有三个开发人员id都是沙箱,因为它们确实不同


还应该注意的是,sandbox比production有更多的bug,所以我个人只使用production设置调用和内容。

默认情况下,SDK将连接到production API。如果您想使用沙盒API,只需在创建TradingService对象时将true传递给沙盒配置选项。有一份列出了所有这些问题的清单

$service = new Services\TradingService(array(
    'apiVersion' => $config['tradingApiVersion'],
    'siteId' => Constants\SiteIds::US,
    'sandbox' => true
));

在这种情况下,为您的请求编写的代码也将非常有助于解决问题。谢谢David的帮助。