我一直在使用这个ebay-sdk-php,我正在努力使这个工作。我没有使用任何SSL握手。我的代码在XAMPP服务器上运行,主要用于说明目的。代码如下 -
<?php
/**
* Copyright 2016 Luca Accomazzi and David T. Sadler
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Include the SDK by using the autoloader from Composer.
*/
require __DIR__.'/../vendor/autoload.php';
/**
* Include the configuration values.
*
* Ensure that you have edited the configuration.php file
* to include your application keys.
*/
$config = require __DIR__.'/../configuration.php';
/**
* The namespaces provided by the SDK.
*/
use \DTS\eBaySDK\Constants;
use \DTS\eBaySDK\Trading\Services;
use \DTS\eBaySDK\Trading\Types;
use \DTS\eBaySDK\Trading\Enums;
/**
* Create the service object.
*/
$service = new Services\TradingService([
'credentials' => $config['production']['credentials'],
'siteId' => Constants\SiteIds::US
]);
/**
* Create the request object.
*/
$request = new Types\GetFeedbackRequestType();
/**
* An user token is required when using the Trading service.
*
* NOTE: eBay will use the token to determine which store to return.
*/
$request->RequesterCredentials = new Types\CustomSecurityHeaderType();
$request->RequesterCredentials->eBayAuthToken = $config['production']['authToken'];
/**
* By specifying 'Positive' we are telling the API return only positive reviews.
*/
$request->CommentType = ['Positive'];
/**
* By specifying 'ReturnAll' we are telling the API return the full reviews.
*/
$request->DetailLevel = ['ReturnAll'];
/**
* Send the request.
*/
$response = $service->getFeedback($request);
/**
* Output the result of calling the service operation.
*/
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') {
foreach ($response->FeedbackDetailArray->FeedbackDetail as $feedback) {
printf(
"User %s bought %s on %s. Comment: %s\n",
$feedback->CommentingUser,
$feedback->ItemTitle,
$feedback->CommentTime->format('d-m-Y H:i'),
$feedback->CommentText
);
}
}
我收到了这个错误 -
PHP Fatal error: Uncaught GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-erro
rs.html)
答案 0 :(得分:2)
正确的方法是使用verify配置选项禁用SSL / TLS证书验证。显然不要为生产代码这样做。
$service = new Services\TradingService([
'credentials' => $config['production']['credentials'],
'siteId' => Constants\SiteIds::US,
'httpOptions' => [
'verify' => false
]
]);
答案 1 :(得分:0)
要解决此问题,请在此Client.php文件中基本上驻留在此文件夹中 -
供应商\ guzzlehttp \狂饮\ SRC
我们需要更改此数组 -
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => true,
'cookies' => false
];
到
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => false,
'cookies' => false
];