Buen día foro
Tengo un problema con un script que estoy realizando para la cancelación de facturas electrónicas.
Al momento de tratar de cancelar me regresa un erro y unos datos que yo no asigne y no se porque alguien me puede ayudar.
Código PHP:
Ver original<?php
header ('Content-type: text/html; charset=utf-8');
include_once('cancelacion.class.php');
$serv=new Cancelacion;
$serv->usuario = "pruebasWS";
$serv->password = "pruebasWS";
$serv->rfc = "AAA010101AAA";
$serv->fecha = "2013-01-07T11:00:00";
0 => "EB4A689D-D70E-40EA-A96D-5E8B07F006E5"
/*0 => "1" */
);
// arreglo de bytes de publicKey...
$ckey = "";
$archivoCert = fopen("archivosPEM/pruebas/cert.txt","r") or
die("No se pudo abrir el archivo"); while (!feof($archivoCert)) {
$ckey.= fgets($archivoCert); }
// arreglo de bytes de privateKey...
$pkey = "";
$archivoKey = fopen("archivosPEM/pruebas/key.txt","r") or
die("No se pudo abrir el archivo"); while(!feof($archivoKey)) {
$pkey.= fgets($archivoKey); }
$serv->passwordkeys = "a0123456789";
//$serv->file_cancelacion = "facturas/cancela.xml";
//var_dump($serv->https->__getFunctions());
//var_dump($serv->https->__getTypes());
//var_dump($serv->https->SignatureType);
/*
$cert = file_get_contents($serv->publicKey);
$data_x509 = openssl_x509_parse($cert,true);
print_r ($data_x509);
echo ($data_x509['name']);
var_dump ($data_x509);
*/
//exit;
$serv->process();
if($serv->error != ""){
echo "Error**** <br>";
echo $serv->error . "<br>";
}else{
echo $serv->out . "<br>";
}
function getOID($OID, $ssl)
{
preg_match('/\/' . $OID . '=([^\/]+)/', $ssl, $matches); return $matches[1];
}
?>
Código PHP:
Ver original<?php
/************************************************************
# Esta clase permite generar la firma digital a una cadena
# mediante la ejecucion de comandos java
#
# Results are passed to: FirmaString->output
#
# Parameters to set:
# usuario -> usuario ws
# password -> password ws
# rfc -> rfc
# fecha -> fecha cancelacion
# folios -> folios lista de folios a cancelar
# publicKey -> archivo .cer
# privateKey -> archivo .key
# passwordkeys-> password de la clave privada
#
#
#
# Returned data:
# error -> Errores encontrados durante el proceso
# out -> acuse de cancelacion
#
# Methods:
# process() -> Process data
************************************************************/
class Cancelacion{
var $usuario;
var $password;
var $rfc;
var $fecha;
var $folios;
var $pubKey;
var $privKey;
var $passwordkeys;
var $out;
var $error;
var $coderror;
var $https;
var $responseAutentica;
var $Cancelacion_1Response;
function Cancelacion(){
// Set error message
$this->error="";
//$this->https = new SoapClient('https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService?wsdl');
$this->https = new SoapClient
('https://dev.facturacfdi.mx:8081/WSTimbrado/WSForcogsaService?wsdl',array('trace' => 1,'encoding' => 'UTF-8'));
}
function process(){
try{
if($this->usuario==""){
$this->error="ERROR: El usuario es requerido.";
return 0;
}
if($this->password==""){
$this->error="ERROR: El password es requerido.";
return 0;
}
/* se le pasan los datos de acceso */
$autentica = new Autenticar();
$autentica->usuario = $this->usuario;
$autentica->contrasena = $this->password;
/* se cacha la respuesta de la autenticacion */
$this->responseAutentica = $this->https->Autenticar($autentica);
if($this->responseAutentica->return->mensaje != ""){
$this->error = $this->responseAutentica->return->mensaje;
}else{
/* se manda el xml a timbrar */
$cancela1 = new Cancelacion_1();
$cancela1->rfcEmisor = $this->rfc;
$cancela1->token = $this->responseAutentica->return->token;
$cancela1->fecha = $this->fecha;
$cancela1->folios = $this->folios;
$cancela1->password = $this->passwordkeys;
$cancela1->publicKey = $this->pubKey;
$cancela1->privateKey = $this->privKey;
/* cacha la respuesta */
$this->Cancelacion_1Response = $this->https->Cancelacion_1($cancela1);
if($this->Cancelacion_1Response->return->mensaje != ""){
$this->error = $this->Cancelacion_1Response->return->mensaje;
}else{
$this->out = $this->Cancelacion_1Response->return->acuse;
}
}
} catch (SoapFault $e) {
print("Auth Error:::: $e");
}
}
}
class Autenticar{
public $usuario;
public $contrasena;
}
class Cancelacion_1{
public $rfcEmisor;
public $fecha;
public $folios;
public $publicKey;
public $privateKey;
public $password;
public $token;
}
?>
Gracias de antemano