2017-01-30 3 views
1

Я использую этот ebay-sdk-php, и я пытаюсь заставить это работать. Я не использую SSL-квитирование. Мой код работает на сервере XAMPP в основном для иллюстрации. Код вPHP Ebay SDK SSL-сертификат

цен ниже
<?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 
     ); 
    } 
} 

И я получаю это error-

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)

ответ

2

правильный способ заключается в использовании опции verify конфигурации отключить SSL/TLS проверки сертификата. Очевидно, не делайте этого для производственного кода.

$service = new Services\TradingService([ 
    'credentials' => $config['production']['credentials'], 
    'siteId'  => Constants\SiteIds::US, 
    'httpOptions' => [ 
     'verify' => false 
    ]  
]); 
0

Чтобы решить эту проблему, в этом Client.php файле, который будет существенно проживает в этом папку со

поставщика \ guzzlehttp \ жрать \ SRC

нам нужно изменить этот array-

$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 
    ]; 
+0

Не нужно менять код SDK. Вместо этого вы можете передавать параметры конфигурации. –

Смежные вопросы