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:
Pero no hay forma -_- he visto que hay estos 3 parámetros en cURL, que quizás sean la clave:
¿De donde sacar esos certificados?
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
0