TransbankDevelopers / transbank-plugin-prestashop-webpay

OBSOLETO: Código fuente de Plugin Prestashop para Transbank Webpay
BSD 3-Clause "New" or "Revised" License
3 stars 5 forks source link

array_key_exists() expects parameter 2 to be array, null given Prestasho 1.7.6.7 #65

Closed msaustral closed 9 months ago

msaustral commented 4 years ago

Hola al realizar una actualización del prestashop a la 1.7.6.7 en modulo comenzo a dar el error:

Warning: array_key_exists() expects parameter 2 to be array, null given

en HealthCheck.php line 132

En realidad no se a que se deba, sospecho a que cambiaron la ruta de Git para validar la ultima ver. y ya no es https://api.github.com/repos/'.$string.'/releases/latest

Pra resolverlo temporalmente cambiamos la línea 132:

$version = array_key_exists('tag_name',$con) ? $con['tag_name'] : ''; return $version;

Por esta:

if (is_array($con) == true){ $version = array_key_exists('tag_name',$con) ? $con['tag_name'] : ''; return $version; }

Quedamos atentos

carlysjgg commented 4 years ago

Hola. Este problema fue resuelto?

msaustral commented 4 years ago

Hola buenas noches, no, aún persiste si no se aplica el correctivo recomendado, saludos

carlysjgg commented 4 years ago

Hola @msaustral en este caso:

if (is_array($con) == true){

no debe tomarse en cuenta también un else?

msaustral commented 4 years ago

Hola, el tema es que en PHP 7.2 > si no se valida que el array existe if (is_array($con) == true) antes de usarlo, da ese error, si no existe $version = array_key_exists('tag_name',$con) ? $con['tag_name'] : ''; return $version; este código no se debe ejecutar. Saludos

carlysjgg commented 4 years ago

Hola @msaustral pero debería retornar algo siempre, ya que esa función se utiliza en otra:

private function getEcommerceInfo($ecommerce){
    if (!defined('_PS_VERSION_')){
        exit;
    } else {
        $actualversion = _PS_VERSION_;
        **$lastversion = $this->getLastGitHubReleaseVersion('PrestaShop/PrestaShop');****AQUI**

Saludos.

msaustral commented 4 years ago

Hola generalmente todos los módulos para PS incluyen esta línea únicamente al inicio:

if (!defined('_PSVERSION')) { exit; }

si la variable global PS_VERSION no existe, la instalación de PS como tal presenta problemas y no funcionará.

gdespirito commented 4 years ago

Hola @msaustral ¿sabes si esto te está pasando en la última versión del plugin?

Girag-pty commented 4 years ago

Hola, aun no hemos puesto a prueba la nueva versión, saludos