Příspěvekod jirk » 5 years ago
Ještě bych měl dotaz ohledně nefunkčnosti stahování plateb přes API Fiobanky.
V pluginech nainstaluji tento plugin - zadám token: tak jak jej zkopíruji z Fiobanky (funkčnost tokenu ověřena přes aplikaci fio-api-plus)
Do pole: Payments start date: zadám datum od kdy chci začít párovat platby
Do pole:Match attribute from payment variable symbol to UCRM - tady nejsem jistý jak zpracování, funguje mám nastaveno: 'customId' (Je to správně?)
Když dělám import výpisu z CSV do UCRM tak Dávám do pole Client Identification:Poznámka a do pole UCRM: custom ID ;Import proběhne vpořádku (když smažu hlavičku ve výpisu)
V cli UCRM vydím, že se script spustí, ale nic se neděje. Výpis - [2019-01-06 14:00:02.272751] [info] CLI process started
v logu php mi to píše:
cesta k logu: /home/ucrm/data/ucrm/log/ucrm/php
[06-Jan-2019 14:00:02 UTC] PHP Fatal error: Declaration of FioCz\Service\FioCurlExecutor::curlQuery($url, array $headers = Array, array $parameters = Array) must be compatible with FioCz\Service\CurlExecutor::curlQuery($url, array $headers = Array, array $parameters = Array, bool $verifySsl = true): array in /data/ucrm/data/plugins/fio_cz/src/Service/FioCurlExecutor.php on line 9
Neporadil by někdo co to po mě chce?
Díky
Chyba nalezena v sobouru FioCurlExecutor.php
změnit položku původní na tuto: public function curlQuery($url, array $headers = [], array $parameters = [], bool $verifySsl = true): array
Výpis souboru FioCurlExecutor.php
cesta: /home/ucrm/data/ucrm/ucrm/data/plugins/fio_cz/src/Service
<?php
declare(strict_types=1);
namespace FioCz\Service;
use FioCz\Exception\CurlException;
class FioCurlExecutor extends CurlExecutor
{
/**
* @var OptionsManager
*/
private $optionsManager;
public function __construct(OptionsManager $optionsManager, Logger $logger)
{
$this->optionsManager = $optionsManager;
}
/**
* @throws CurlException
*/
public function curlQuery($url, array $headers = [], array $parameters = [])
{
$options = $this->optionsManager->loadOptions();
$lastProcessedTimestamp = (int) $options->lastProcessedTimestamp;
if ($lastProcessedTimestamp + 30 > time()) {
throw new CurlException('Execution skipped, because last request was less than 30 seconds ago.');
}
$response = parent::curlQuery($url, $headers, $parameters);
$options->lastProcessedTimestamp = time();
$this->optionsManager->updateOptions();
return $response;
}
}
Výpis CurlExecutor.php
<?php
declare(strict_types=1);
namespace FioCz\Service;
use FioCz\Exception\CurlException;
class CurlExecutor
{
/**
* @throws CurlException
*/
public function curlCommand($url, $method, array $headers = [], array $data = null, bool $verifySsl = true): void
{
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
curl_setopt($c, CURLOPT_CUSTOMREQUEST, $method);
if ($data) {
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
if ($verifySsl) {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
} else {
// we are disabling verification by request
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
}
$result = curl_exec($c);
$error = curl_error($c);
$errno = curl_errno($c);
if ($errno || $error) {
throw new CurlException(sprintf('Error for request %s. Curl error %s: %s', $url, $errno, $error));
}
$httpCode = curl_getinfo($c, CURLINFO_HTTP_CODE);
if ($httpCode < 200 || $httpCode >= 300) {
throw new CurlException(
sprintf('Error for request %s. HTTP error (%s): %s', $url, $httpCode, $result),
$httpCode
);
}
curl_close($c);
}
/**
* @throws CurlException
*/
public function curlQuery($url, array $headers = [], array $parameters = [], bool $verifySsl = true): array
{
if ($parameters) {
$url .= '?' . http_build_query($parameters);
}
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
if ($verifySsl) {
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
} else {
// we are disabling verification by request
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
}
$result = curl_exec($c);
$error = curl_error($c);
$errno = curl_errno($c);
if ($errno || $error) {
throw new CurlException(sprintf('Error for request %s. Curl error %s: %s', $url, $errno, $error));
}
$httpCode = curl_getinfo($c, CURLINFO_HTTP_CODE);
if ($httpCode < 200 || $httpCode >= 300) {
throw new CurlException(
sprintf('Error for request %s. HTTP error (%s): %s', $url, $httpCode, $result),
$httpCode
);
}
curl_close($c);
if (! $result) {
throw new CurlException(sprintf('Error for request %s. Empty result.', $url));
}
$decodedResult = json_decode($result, true);
if ($decodedResult === null) {
throw new CurlException(
sprintf('Error for request %s. Failed JSON decoding. Response: %s', $url, $result)
);
}
return $decodedResult;
}
}
Chyba nalezena v sobouru FioCurlExecutor.php
změnit položku původní na tuto: public function curlQuery($url, array $headers = [], array $parameters = [], bool $verifySsl = true): array
0 x