Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fábio BN

Erro Cannot instantiate non-existent class: arrayobject - CIELO

Recommended Posts

Oi pessoal.

 

Estou testando uma página modelo da CIELO, e acusa um erro:

Fatal error: Cannot instantiate non-existent class: arrayobject in d:\Inetpub\Domains\site.com.br\www\lojaexemplo-php\includes\include.php on line 17

 

Conteúdo do include.php

<?php

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);


require 'http://www.site.com.br/lojaexemplo-php/includes/errorHandling.php';
require_once 'http://www.site.com.br/lojaexemplo-php/includes/pedido.php';
require_once 'http://www.site.com.br/lojaexemplo-php/includes/logger.php';

define('VERSAO', "1.1.0");

 session_start();

 if(!isset($_SESSION["pedidos"]))
 {
 	$_SESSION["pedidos"] = new ArrayObject();
 }

// CONSTANTES
define("ENDERECO_BASE", "https://qasecommerce.cielo.com.br");
define("ENDERECO", ENDERECO_BASE."/servicos/ecommwsec.do");

define("LOJA", "1006993069");
define("LOJA_CHAVE", "25fbb99741c739dd84d7b06ec78c9bac718838630f30b112d033ce2e621b34f3");
define("CIELO", "1001734898");
define("CIELO_CHAVE", "e84827130b9837473681c2787007da5914d6359947015a5cdb2b8843db0fa832");


// Envia requisição
function httprequest($paEndereco, $paPost){

	$sessao_curl = curl_init();
	curl_setopt($sessao_curl, CURLOPT_URL, $paEndereco);
	
	curl_setopt($sessao_curl, CURLOPT_FAILONERROR, true);

	//  CURLOPT_SSL_VERIFYPEER
	//  verifica a validade do certificado
	curl_setopt($sessao_curl, CURLOPT_SSL_VERIFYPEER, true);
	//  CURLOPPT_SSL_VERIFYHOST
	//  verifica se a identidade do servidor bate com aquela informada no certificado
	curl_setopt($sessao_curl, CURLOPT_SSL_VERIFYHOST, 2);

	//  CURLOPT_SSL_CAINFO
	//  informa a localização do certificado para verificação com o peer
	curl_setopt($sessao_curl, CURLOPT_CAINFO, getcwd() .
			"http://www.site.com.br/lojaexemplo-php/pages/ssl/VeriSignClass3PublicPrimaryCertificationAuthority-G5.crt");
	curl_setopt($sessao_curl, CURLOPT_SSLVERSION, 3);

	//  CURLOPT_CONNECTTIMEOUT
	//  o tempo em segundos de espera para obter uma conexão
	curl_setopt($sessao_curl, CURLOPT_CONNECTTIMEOUT, 10);

	//  CURLOPT_TIMEOUT
	//  o tempo máximo em segundos de espera para a execução da requisição (curl_exec)
	curl_setopt($sessao_curl, CURLOPT_TIMEOUT, 40);

	//  CURLOPT_RETURNTRANSFER
	//  TRUE para curl_exec retornar uma string de resultado em caso de sucesso, ao
	//  invés de imprimir o resultado na tela. Retorna FALSE se há problemas na requisição
	curl_setopt($sessao_curl, CURLOPT_RETURNTRANSFER, true);

	curl_setopt($sessao_curl, CURLOPT_POST, true);
	curl_setopt($sessao_curl, CURLOPT_POSTFIELDS, $paPost );

	$resultado = curl_exec($sessao_curl);
	
	curl_close($sessao_curl);

	if ($resultado)
	{
		return $resultado;
	}
	else
	{
		return curl_error($sessao_curl);
	}
}

// Monta URL de retorno
function ReturnURL()
{
	$pageURL = 'http';

	if ($_SERVER["SERVER_PORT"] == 443) // protocolo https
	{
		$pageURL .= 's';
	}
	$pageURL .= "://";
	if ($_SERVER["SERVER_PORT"] != "80")
	{
		$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
	} else {
		$pageURL .= $_SERVER["SERVER_NAME"]. substr($_SERVER["REQUEST_URI"], 0);
	}
	// ALTERNATIVA PARA SERVER_NAME -> HOST_HTTP

	$file = substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);

	$ReturnURL = str_replace($file, "retorno.php", $pageURL);

	return $ReturnURL;
}

?>

A Linha 17 do erro tem:
$_SESSION["pedidos"] = new ArrayObject();

 

Abraços!

Fábio!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para substituir o código você terá que ver se o proprietário do código da suporte para a versão 4 do PHP (o que eu dúvido muito, mas muito mesmo!).

 

O que te indico é alterar a versão do PHP no seu servidor para uma mais atual, 5.4 por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi. Agora estou em outro servidor com PHP atualizado, agora dá erro ao acessar o XML.

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi. Eu acho que era erro de URL, mas a parte do ArrayObject funcionou de boa. Mas a Loja virtual em ASP rodou normal ao conectar o certificado, não vou mais precisar do código em PHP.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.