Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 4
Irreo Va por buen camino
EDIT: Solucionado, explicación abajo

Buenas tardes,

A ver si alguien puede arrojarme algo de luz, porque tengo delante una pared y estoy dando palos de ciego.

Tengo ya funcionando el proceso de generar una factura, el XML y el QR.

Me he puesto con el tema de enviar a Hacienda, y por ahora he conseguido que me llegue el aviso de "001 - no se ha usado certificado de cliente".

- He generado un certificado de dispositivo usando la web de Izenpe (es gratuito).
- Se ha creado un P12, que he convertido a PEM y CRT con open_ssl, y lo he subido a Plesk.
- El certificado no puedo usarlo directamente en un dominio porque dice que "la conexión no es segura".
- Para probar a enviar algo firmado, me he descargado el Autofirma y he firmado usando ese certificado P12. En principio parece que OK.
- Al intentar subir por PHP este XML, me dice que no se ha usado certificado SSL.

En sí, el dominio desde el que envío los datos, tiene un certificado Let's Encrypt que funciona correctamente, pero no sé si esto se llega a usar o detectar.

He estado mirando diferentes opciones, y he visto que desde PHP se puede especificar qué fichero quieres usar como certificado.

Por un lado he probado esto:

Código PHP:
    // XML a Hacienda
    
$opts = array(
        
"ssl" => array(
            
"local_cert" => "/var/www/vhosts/xx/bai.pem",
            
"locak_pk" => "/var/www/vhosts/xx/bai_key.pem",
            
"passphrase" => "xxxxxx",
            
"allow_self_signed"    => true,
            
"cafile" =>'/var/www/vhosts/xxx/bai.pem',
            
"capath" =>'/var/www/vhosts/xxx/',
            
"verify_peer" => false
        
),
        
"http" => array (
            
"method" => "POST",
            
"header" =>
              
"Accept-language: es\r\n".
              
"Content-type: application/xml;charset=UTF-8\r\n",
            
"content" => $xml
        
)
    );
    
$context stream_context_create($opts);

    
$haciendaResult file_get_contents($eHaciendaUrlfalse$context); 
Decir que he estado jugando poniendo y quitando parámetros "local_pk", "ca_file", etc... sin resultado satisfactorio. He puesto el último ejemplo usado.

El error es este:

Código:
<br />
<b>Warning</b>:  file_get_contents(): Unable to set private key file `/var/www/vhosts/xxx/dkbai.pem' in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br />
<br />
<b>Warning</b>:  file_get_contents(): Failed to enable crypto in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br />
<br />
<b>Warning</b>:  file_get_contents(tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta): Failed to open stream: operation failed in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br />
Después he probado con CURL:

Código PHP:
$ch curl_init();

curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_CAINFO'/var/www/vhosts/xxx/bai.pem');

curl_setopt($chCURLOPT_URL$eHaciendaUrl);
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_SSH_PRIVATE_KEYFILE'/var/www/vhosts/xxx/bai_key.pem');
curl_setopt($chCURLOPT_SSLCERT'/var/www/vhosts/xxx/bai.pem');
curl_setopt($chCURLOPT_SSLCERTPASSWD"xxxxxx");
curl_setopt($chCURLOPT_POSTFIELDS$xml);
curl_setopt($chCURLOPT_FOLLOWLOCATION0);
curl_setopt($chCURLOPT_REFERER$eHaciendaUrl);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt ($chCURLOPT_VERBOSE 1);

curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);

$ch_result curl_exec($ch); 
Y el resultado es el siguiente:

Código:
58unable to load client key: -8178 (SEC_ERROR_BAD_KEY)
Básicamente, no solo no tengo ni idea de qué está pasando o cómo solucionarlo. Ni siquiera se si voy bien encaminado intentando enviar así los XML.

¿Alguien me ilumina un poco el camino?

Entiendo que quizás es algún problema con el fichero de la Key, pero no me hago idea el qué...

Gracias!
Saludos.

EDIT: SOLUCIONADO!!

El problema era el comando que utilicé para convertir el P12 en PEM. Un usuario de Stackoverflow dice que se le solucionó con este comando:

Código:
openssl pkcs12 -in keyname.p12 -out keyname.pem -nodes -clcerts
Y me ha servido al parecer, porque ahora el error es Hacienda es "004", de que falta algún campo, etc.... pero yo diría que el primer obstáculo ya sido sorteado.

Última edición por Irreo fecha: 28-03-2022 a las 17:45:46. Razón: Problema solucionado.
Responder Con Cita
  #2  
Antiguo 22-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Yo he probado eso mismo y no me funciona

Pues yo he probado ese mismo comando:
Código:
openssl pkcs12 -in keyname.p12 -out keyname.pem -nodes -clcerts
Y me responde el servidor:

<b>Parse error</b>: syntax error, unexpected identifier &quot;pkcs12&quot; in <b>/srv/vhost/kalion.com/home/html/enviaXML.php</b> on line <b>32</b>

Lo cual es lógico porque ese comando con espacios entre medias no me ha parecido que exista en PHP. Lo he buscado en la bibliografía oficial y existen otros. ¿es en otro leguaje? ¿hay que adaptarlo a cada lenguaje en concreto?

Si alguien pudiera responder lo agradecería porque llevo luchando con esto ni se sabe.
Responder Con Cita
  #3  
Antiguo 22-11-2022
sEngine sEngine is offline
Miembro
 
Registrado: jul 2021
Posts: 59
Poder: 4
sEngine Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Pues yo he probado ese mismo comando:
Código:
openssl pkcs12 -in keyname.p12 -out keyname.pem -nodes -clcerts
Y me responde el servidor:

<b>Parse error</b>: syntax error, unexpected identifier &quot;pkcs12&quot; in <b>/srv/vhost/kalion.com/home/html/enviaXML.php</b> on line <b>32</b>

Lo cual es lógico porque ese comando con espacios entre medias no me ha parecido que exista en PHP. Lo he buscado en la bibliografía oficial y existen otros. ¿es en otro leguaje? ¿hay que adaptarlo a cada lenguaje en concreto?

Si alguien pudiera responder lo agradecería porque llevo luchando con esto ni se sabe.
Ese comando que has puesto es el que se usa desde el cmd de windows, no?
Yo lo estoy usando mas o menos asi para comprobar la fecha de caducidad desde delphi

Código:
openssl pkcs12 -in "certificadoengineclaveprivada.pfx" -passin pass:password -passout pass:password -clcerts -nodes | openssl x509 -noout -enddate

Última edición por sEngine fecha: 22-11-2022 a las 13:56:57.
Responder Con Cita
  #4  
Antiguo 22-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
No me deja escribir la clave

Cita:
Empezado por sEngine Ver Mensaje
Ese comando que has puesto es el que se usa desde el cmd de windows, no?
Yo lo estoy usando mas o menos asi para comprobar la fecha de caducidad desde delphi

Código:
openssl pkcs12 -in "certificadoengineclaveprivada.pfx" -passin pass:password -passout pass:password -clcerts -nodes | openssl x509 -noout -enddate
Efectivamente. Solo que al terminar me pide "Enter import Password:" pero curiosamente no me permite escribir, solo pulsar en intro.ç

¿alguien tiene algún vínculo a un tutorial o similar?

Gracias otra vez
Responder Con Cita
  #5  
Antiguo 22-11-2022
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 419
Poder: 17
espinete Va camino a la fama
Cita:
Empezado por Zósimo Ver Mensaje
Efectivamente. Solo que al terminar me pide "Enter import Password:" pero curiosamente no me permite escribir, solo pulsar en intro.ç

¿alguien tiene algún vínculo a un tutorial o similar?

Gracias otra vez
Ten en cuenta que algunos programas en la línea de comandos, cuando preguntan contraseña, no se ve lo que escribes pero sí se está escribiendo. Por seguridad no se muestran los caracteres escritos.

Por si acaso sea eso
Responder Con Cita
  #6  
Antiguo 23-11-2022
KiwiCode KiwiCode is offline
Registrado
 
Registrado: nov 2022
Posts: 2
Poder: 0
KiwiCode Va por buen camino
Tarjetas regalo

Buenos días, ¿alguien ha tenido que lidiar con tarjetas regalo? He enviado varios mensajes a las diferentes haciendas preguntando como se tiene que gestionar este tipo de operativa y no me han aclarado absolutamente nada. (que sorpresa...)
Se me plantean dos posibilidades:

1) Para operativas de recarga de tarjetas regalo, generar un fichero de alta de TicketBAI donde el desglose de factura sea NoSujeto con causa OT y en el importe el correspondiente a la recarga de la tarjeta.
Por otra parte, cuando se hace uso de la tarjeta regalo no reflejar nada en el fichero de alta ya que se trataría como un medio de pago.

2) Para operativas de recarga de tarjetas regalo, generar un fichero de alta de TicketBAI donde el desglose de factura sea NoSujeto con causa OT y en el importe el correspondiente a la recarga de la tarjeta.
Por otra parte, cuando se hace uso de la tarjeta regalo, reflejar ese importe empleado como si fuera un descuento.

3) Para operativas de recarga de tarjetas regalo, no generar un fichero de alta TicketBAI ya que no hay un movimiento real de mercancías ni existe IVA que puedan recaudar (es un cambio de un tipo de medio de pago por otro)
Por otra parte, cuando se hace uso de la tarjeta regalo no reflejar nada en el fichero de alta ya que se trataría como un medio de pago.

A ver si alguien puede arrojar un poco de luz...

Gracias!
Responder Con Cita
  #7  
Antiguo 23-11-2022
Avatar de HerensugeBeltz
HerensugeBeltz HerensugeBeltz is offline
Miembro
 
Registrado: may 2021
Ubicación: Hondarribia
Posts: 88
Poder: 4
HerensugeBeltz Va por buen camino
Tarjetas regalo

En mi opinión, por el hecho de ser un concepto no sujeto yo optaría por la opción 3, dado que al ser no sujeto no se da el hecho imponible, lo mismo que tampoco se indicaría en el modelo 303 de IVA.

Otra cosa es que la factura contenga conceptos adicionales sujetos a IVA, o una factura de servicios a empresas intracomunitarias (no sujeta por reglas de localización). No sé qué pensarán los compañeros pero, en tu caso, yo pienso que sería la tres.
Responder Con Cita
  #8  
Antiguo 23-11-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 4
Irreo Va por buen camino
Cita:
Empezado por KiwiCode Ver Mensaje
Buenos días, ¿alguien ha tenido que lidiar con tarjetas regalo? He enviado varios mensajes a las diferentes haciendas preguntando como se tiene que gestionar este tipo de operativa y no me han aclarado absolutamente nada. (que sorpresa...)
Me suena, sí... en su momento les pregunte sobre temas de bonos regalo, etc.. y la respuesta básicamente siempre es un copy-paste de "TicketBAI no modifica la Ley de IVA ni la normativa de facturación".

Te doy un poco mi opinión en base a lo que estuve investigando en su día, pero yo de contabilidad sé lo básico básico, así que no me lo tengas muy en cuenta.

Para mí, si alguien compra una tarjeta regalo, es a esa persona a la que se le hace una factura, digamos por 50€, por un producto llamado "Tarjeta Regalo 50".

Ahora, al usar esa tarjeta, entiendo que en el momento de comprar un producto, si por ejemplo es por valor de 60€, además de las líneas para los productos adquiridos, habría una línea de descuento por valor de 50€, quedando un total de 10€ a pagar.

Si fuese por ejemplo de 40€, entiendo que sería un descuento de -40€, y luego ya se gestiona como corresponda para saber que a esa tarjeta le quedan 10€ (en caso que se permita eso, claro).

Quizás si es una tarjeta regalo de estas que son tipo de crédito, que hay que activar, etc. y creo que llevan un banco por detrás, igual la operativa es diferente, y la compra del cliente final se trata como una compra normal y corriente.

Pero estas tarjeta tipo "vale" o "bono", yo personalmente las veo como un descuento. Compro una cámara de fotos de 450€, y lo mismo que puedo tener un vale de "10% de descuento", o "10€ para compras superiores a 80€", etc... si tengo un vale, tarjeta, bono.... de 50€, a mi la cámara me costará 400€ aplicando el descuento de 50€, y alguien tendrá una factura por la compra de ese vale.

Lo que ya no sé cómo va es el tema de si ese descuento se ha pagado a 50€ IVA inc... como aplicarlo si vendes productos de diferentes IVAs... si da igual, o qué...

Pero lo dicho... mejor contrastarlo con un contable o asesor
Responder Con Cita
  #9  
Antiguo 24-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
Ten en cuenta que algunos programas en la línea de comandos, cuando preguntan contraseña, no se ve lo que escribes pero sí se está escribiendo. Por seguridad no se muestran los caracteres escritos.

Por si acaso sea eso
Muchas gracias. No había caído en eso. Ya lo hace.
Responder Con Cita
  #10  
Antiguo 22-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
No me deja escribir la clave

Perdón por repetirme.
Responder Con Cita
  #11  
Antiguo 22-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
No me deja escribir la clave

¿Cómo puedo borrar los mensajes repetidos?
Responder Con Cita
  #12  
Antiguo 22-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Este ha sido una repetición del mensaje anterior creada por error. No sé como borrarlo. Siento las molestias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3706 Hace 2 Semanas 09:38:43
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 19:25:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi