2016-02-13 1 views
0

моя проблема заключается в следующем:Infusionsoft OAuth обратного вызова SSL ошибка PHP

Ive пошел developer.infusionsoft.com, чтобы получить вспомогательную библиотеку PHP-SDK для интеграции Infusionsoft API. Я установил его через композитора. У меня есть поставщик (папка), который появляется после завершения композитора.

за учебники, папки поставщика является очень важным, так что я думаю, что им на правильном пути вещей

мой код для использования API это

function loadInfusionsoft($callback) { 
    $data = array(); 
    $data['status'] = "unsuccessfull"; 
    try { 
     $infusionsoft = new \Infusionsoft\Infusionsoft(array(
      'clientId' => 'CLIENTID', 
      'clientSecret' => 'SECRETKEY', 
      'redirectUri' => $callback, 
     )); 
//  If the serialized token is available in the session storage, we tell the SDK 
//  to use that token for subsequent requests. 
     if (isset($_SESSION['token'])) { 
      $infusionsoft->setToken(unserialize($_SESSION['token'])); 
     } 

// If we are returning from Infusionsoft we need to exchange the code for an 
// access token. 
     if (isset($_GET['code']) and ! $infusionsoft->getToken()) { 
      $infusionsoft->requestAccessToken($_GET['code']); 
     } 

     if ($infusionsoft->getToken()) { 
// Save the serialized token to the current session for subsequent requests 
      $_SESSION['token'] = serialize($infusionsoft->getToken()); 
     } else { 
      $href = $infusionsoft->getAuthorizationUrl(); 
      $data['status'] = "successfull"; 
      $data["href"] = $href; 
     } 
    } catch (Exception $ex) { 
     echo $ex->getMessage(); 
    } 
    return $data; 

, пожалуйста, медведь со мной, я новый к этому, поэтому у меня есть неопределенное понимание того, что происходит. Я получил этот код в учебнике infusionsoft (git). и в середине понимания вещей, я получил ошибку.

cURL error 60: SSL certificate problem: self signed certificate in certificate chain (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) 

Я не получил эту ошибку сразу. на что я понимаю,

  • он пропустит все утверждения if и приземлится на инструкцию else.
  • в инструкции else, мне будет предоставлена ​​ссылка href для аутентификации infusionsoft. скорее всего, значение href <a>.
  • на странице, нажав на эту ссылку, будет идти на Infusionsoft LoggedIn
  • после успешного входа в систему, он будет перенаправлять на мой локального хоста (из-за переменной обратного вызова) с GET переменные (которые являются сфера, и код)
  • Он снова вызовет эту функцию.
  • я считаю, что это будет ввести if isset($_GET['code']) заявление
  • получил ошибку

    Curl ошибка 60: SSL проблема сертификата: самостоятельно подписанный сертификат в цепочке сертификатов (см http://curl.haxx.se/libcurl/c/libcurl-errors.html)

  • на моих исследований, я нужен сертификат.

  • на глядя на папку поставщика (Infusionsoft PHP SDK) я вижу, что есть cacert.pem файл .. на моем исследовании, то есть файл сертификат

  • Я искал, как использовать его, но я всегда видел о файлах crt и cert.

и im stucked.

Что дальше? искал сообщество infusionsoft, но не повезло.

Я считаю, что это не проблема инфузий, а простая неправильная конфигурация на моем конце. кто-нибудь?

+0

У вас есть копия cacert.pem в вашей системе? вы можете скачать с curl.haxx.se (https://curl.haxx.se/ca/cacert.pem) – RamRaider

+0

@RamRaider да, я имею его на PHP-SDK infusionsoft, но я не знаю, как его использовать. как указано в моих заявлениях выше –

ответ

0

просто хочу поделиться. после нескольких испытаний и ошибок.

его просто очень простая ошибка (проблема в том, я не совсем осведомлен в этом)

на файле php.ini, добавьте путь к cacert.pem вот так.

curl.cainfo = "C:\path\to\cacert.pem" 

Обратите внимание, что curl.cainfo должен иметь абсолютный путь.