Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2013, 10:28
Avatar de jandrogdz
jandrogdz
 
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 10 años, 1 mes
Puntos: 12
Pregunta Problema al asignar datos a una propiedad de una clase

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
  1. <?php
  2.     header ('Content-type: text/html; charset=utf-8'); 
  3.     ob_end_clean();
  4.    
  5.     include_once('cancelacion.class.php');
  6.    
  7.    
  8.     $serv=new Cancelacion;
  9.     $serv->usuario = "pruebasWS";
  10.     $serv->password = "pruebasWS";
  11.     $serv->rfc = "AAA010101AAA";
  12.     $serv->fecha = "2013-01-07T11:00:00";
  13.     $serv->folios = Array(
  14.                             0 => "EB4A689D-D70E-40EA-A96D-5E8B07F006E5"
  15.                             /*0 => "1" */
  16.                             );
  17.        
  18.         // arreglo de bytes de publicKey...
  19.         $ckey = "";
  20.         $archivoCert  = fopen("archivosPEM/pruebas/cert.txt","r") or die("No se pudo abrir el archivo");
  21.         while (!feof($archivoCert))
  22.       {
  23.             $ckey.= fgets($archivoCert);
  24.       }
  25.         fclose($archivoCert);
  26.     $serv->pubKey = str_replace("\r\n", "",$ckey);
  27.        
  28.         // arreglo de bytes de privateKey...
  29.         $pkey = "";
  30.         $archivoKey = fopen("archivosPEM/pruebas/key.txt","r") or die("No se pudo abrir el archivo");
  31.         while(!feof($archivoKey))
  32.         {
  33.             $pkey.= fgets($archivoKey);
  34.         }
  35.         fclose($archivoKey);
  36.     $serv->privKey = str_replace("\r\n", "",$pkey);
  37.     $serv->passwordkeys = "a0123456789";
  38.    
  39.     //$serv->file_cancelacion = "facturas/cancela.xml";
  40.    
  41.         var_dump($serv->pubKey)."<br />";
  42.         var_dump($serv->privKey);
  43.        
  44.        
  45.     //var_dump($serv->https->__getFunctions());
  46.     //var_dump($serv->https->__getTypes());
  47.     //var_dump($serv->https->SignatureType);
  48.    
  49.  
  50. /*
  51. $cert = file_get_contents($serv->publicKey);
  52. $data_x509 = openssl_x509_parse($cert,true);
  53. print_r ($data_x509);
  54. echo ($data_x509['name']);
  55. var_dump ($data_x509);
  56.  */
  57.  
  58. //exit;
  59.    
  60.     $serv->process();
  61.         var_dump($serv->process());
  62.    
  63.     if($serv->error != ""){
  64.         echo "Error**** <br>";
  65.         echo $serv->error . "<br>";
  66.         exit;
  67.     }else{
  68.         echo $serv->out . "<br>";
  69.         exit;
  70.     }
  71.  
  72.     function getOID($OID, $ssl)
  73.       {
  74.         preg_match('/\/' . $OID  . '=([^\/]+)/', $ssl, $matches);
  75.         return $matches[1];
  76.       }
  77.    
  78. ?>

Código PHP:
Ver original
  1. <?php
  2.  
  3. /************************************************************
  4. #   Esta clase permite generar la firma digital a una cadena
  5. #   mediante la ejecucion de comandos java
  6. #
  7. #   Results are passed to: FirmaString->output
  8. #
  9. #   Parameters to set:
  10. #       usuario     -> usuario ws
  11. #       password    -> password ws
  12. #       rfc             -> rfc
  13. #       fecha       -> fecha cancelacion
  14. #       folios      -> folios lista de folios a cancelar
  15. #       publicKey   -> archivo .cer
  16. #       privateKey  -> archivo .key
  17. #       passwordkeys-> password de la clave privada
  18. #      
  19. #
  20. #
  21. #   Returned data:
  22. #       error           -> Errores encontrados durante el proceso
  23. #       out         -> acuse de cancelacion
  24. #
  25. #   Methods:
  26. #       process()   -> Process data
  27. ************************************************************/
  28.  
  29. class Cancelacion{
  30.  
  31.     var $usuario;
  32.     var $password;
  33.     var $rfc;
  34.     var $fecha;
  35.     var $folios;
  36.     var $pubKey;
  37.     var $privKey;
  38.     var $passwordkeys;
  39.    
  40.    
  41.    
  42.     var $out;
  43.     var $error;
  44.     var $coderror;
  45.     var $https;
  46.     var $responseAutentica;
  47.     var $Cancelacion_1Response;
  48.    
  49.     function Cancelacion(){
  50.         // Set error message
  51.         $this->error="";
  52.        
  53.         //$this->https = new SoapClient('https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService?wsdl');
  54.         $this->https = new SoapClient('https://dev.facturacfdi.mx:8081/WSTimbrado/WSForcogsaService?wsdl',array('trace' => 1,'encoding' => 'UTF-8'));
  55.  
  56.     }
  57.  
  58.     function process(){
  59.         try{
  60.             if($this->usuario==""){
  61.                 $this->error="ERROR: El usuario es requerido.";
  62.                 return 0;
  63.             }
  64.             if($this->password==""){
  65.                 $this->error="ERROR: El password es requerido.";
  66.                 return 0;
  67.             }      
  68.            
  69.            
  70.             var_dump($this->https);
  71.            
  72.             /* se le pasan los datos de acceso */
  73.             $autentica = new Autenticar();
  74.             $autentica->usuario = $this->usuario;
  75.             $autentica->contrasena = $this->password;
  76.            
  77.            
  78.             /* se cacha la respuesta de la autenticacion */
  79.             $this->responseAutentica = $this->https->Autenticar($autentica);
  80.  
  81.            
  82.             if($this->responseAutentica->return->mensaje != ""){
  83.                 $this->error = $this->responseAutentica->return->mensaje;
  84.             }else{
  85.                 /* se manda el xml a timbrar */
  86.                 $cancela1 = new Cancelacion_1();
  87.                 $cancela1->rfcEmisor = $this->rfc;
  88.                 $cancela1->token = $this->responseAutentica->return->token;
  89.                 $cancela1->fecha = $this->fecha;
  90.                 $cancela1->folios = $this->folios;
  91.                 $cancela1->password = $this->passwordkeys;
  92.                 $cancela1->publicKey = $this->pubKey;
  93.                 $cancela1->privateKey = $this->privKey;
  94.                
  95.                 /* cacha la respuesta */
  96.                 $this->Cancelacion_1Response = $this->https->Cancelacion_1($cancela1);
  97.                                
  98.                 if($this->Cancelacion_1Response->return->mensaje != ""){
  99.                     $this->error = $this->Cancelacion_1Response->return->mensaje;
  100.                 }else{
  101.                     $this->out = $this->Cancelacion_1Response->return->acuse;
  102.                 }          
  103.             }
  104.         } catch (SoapFault $e) {
  105.             print("Auth Error:::: $e");
  106.         }      
  107.     }  
  108. }
  109.  
  110. class Autenticar{
  111.     public $usuario;
  112.     public $contrasena;
  113. }
  114.  
  115. class Cancelacion_1{
  116.     public $rfcEmisor;
  117.     public $fecha;
  118.     public $folios;
  119.     public $publicKey;
  120.     public $privateKey;
  121.     public $password;
  122.     public $token;
  123. }
  124. ?>

Gracias de antemano
__________________
Lo imposible solo cuesta un poco mas