PHP - Comunicación con hacienda agencia tributaria..

 
Vista:
sin imagen de perfil

Comunicación con hacienda agencia tributaria..

Publicado por Gustavo (6 intervenciones) el 31/03/2017 13:14:26
Alguien ha conseguido mediante cURL enviar peticiones a Hacienda....
Estamos intentando implementar los Webservice.


Pero desconozco como adjuntar el certificado .pfx y lo que me hace falta para la comunicación..
He partido de una comunicación con una integración que tenía con otro cliente, con el que mando y recibo los XML sin problemas:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[...]
	$ch = curl_init();
	$headers = array(
		'Accept:text/xml,text/html,image/gif,image/jpeg,*;q=.2,*/*;q=.2',
		'Content-Type: text/xml;charset=utf-8',
		'Connection:Keep-Alive'
	);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
	curl_setopt($ch, CURLOPT_URL, $url);
	//return the transfer as a string
	curl_setopt($ch, CURLOPT_HEADER         ,true);    // we want headers
	curl_setopt($ch, CURLOPT_NOBODY         ,false);    // dont need body
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
	curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
 
	curl_setopt($ch, CURLOPT_CAINFO, $fichero_cert);
	curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents ($datos));
	//curl_setopt($ch, CURLOPT_VERBOSE, true);
	//$verbose = fopen('php://temp', 'w+');
	//curl_setopt($ch, CURLOPT_STDERR, $verbose);
 
 
	$result = curl_exec($ch);
	if ($result === FALSE) {
		printf("cUrl error (#%d): %s<br>\n", curl_errno($ch),
			   htmlspecialchars(curl_error($ch)));
	}
 
	//rewind($verbose);
	//$verboseLog = stream_get_contents($verbose);
 
	//echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog),  "</pre>\n";
	//var_dump (curl_getinfo($ch)), var_dump(openssl_get_cert_locations()),
 
	curl_close($ch);
[...]


Pero no hay forma -_- he visto que hay estos 3 parámetros en cURL, que quizás sean la clave:


1
2
3
curl_setopt($ch, CURLOPT_SSLKEY, $SSLKEY);
  curl_setopt($ch, CURLOPT_SSLCERT, $SSLCERT);
  curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $SSLCERTPASSWD);

¿De donde sacar esos certificados?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Comunicación con hacienda agencia tributaria..

Publicado por Gustavo (6 intervenciones) el 19/04/2017 10:58:08
Bueno pues parece que hay una solución simple

curl --connect-timeout 300 -d "@FICHERO_XML_A_ENVIAR" -o "FICHERO_XML_RESPUESTA" -E CERTIFICADO.PEM:PASSWORD URL_DESTINO

para pruebas la url destino: https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar