Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Enviar TRA al WSAA (https://www.clubdelphi.com/foros/showthread.php?t=61965)

marilinspi 28-11-2008 12:29:24

Enviar TRA al WSAA
 
hola a todos estoy con el tema de la factura electronica... ya consegui el certificado x509 y crear el TRA, ahora en lo que necesito ayuda es en como enviarlo al WSAA, tengo un ejemplo en PHP pero no logro reproducirlo en Delphi talvez alguien de ustedes conozca los dos lenguajes y me pueda ayudar o sino alguien que ya haya pasado por esta situacion y lo resolvio que me de una mano. aca va el codigo en PHP

Cita:

Input:
WSDL, CERT, PRIVATEKEY, PASSPHRASE, SERVICE, WSAAURL
Check below for its definitions
Output:
TA.xml: the authorization ticket as granted by WSAA.
==============================================================================
define ("WSDL", "wsaa.wsdl"); # The WSDL corresponding to WSAA
define ("CERT", "ghf.crt"); # The X.509 obtained from Seg. Inf.
define ("PRIVATEKEY", "ghf.key"); # The private key correspoding to CERT
define ("PASSPHRASE", "xxxxxxx"); # The passphrase (if any) to sign
SERVICE: The WS service name you are asking a TA for
define ("SERVICE", "wsfe");
WSAAURL: the URL to access WSAA, check for http or https and wsaa or wsaahomo
define ("WSAAURL", "https://wsaa.afip.gov.ar/ws/services/LoginCms");
define ("WSAAURL", "https://wsaahomo.afip.gov.ar/ws/services/LoginCms");



function SignTRA()
{
$STATUS=openssl_pkcs7_sign("TRA.xml", "TRA.tmp", "file://".CERT,
array("<A href="file://".PRIVATEKEY/">file://".PRIVATEKEY, PASSPHRASE),
array(),
!PKCS7_DETACHED
);
if (!$STATUS) {exit("ERROR generating PKCS#7 signature\n");}
$inf=fopen("TRA.tmp", "r");
$i=0;
$CMS="";
while (!feof($inf))
{
$buffer=fgets($inf);
if ( $i++ >= 4 ) {$CMS.=$buffer;}
}
fclose($inf);
unlink("TRA.xml");
unlink("TRA.tmp");
return $CMS;
}
desde ya muchas gracias.

cmschneider 18-12-2010 13:06:05

Hola... yo estoy en la misma situación que vos, investigando sobre factura electrónica. Me gustaría saber como resolviste lo del certificado, y si es posible que compartas el código para ayudarnos. Supongo que por el nombre del Webservice, sos Argentino, ya que ví en algunos lados componentes mejicanos que no tienen el mismo protocolo que nosotros.
Saludos.

Claudio

marilinspi 18-12-2010 13:49:20

hola, si soy argentina...y el tema es que hace mucho que lo hice y no recuerdo demasiado... pero voy a intentar ser lo más clara posible, con respecto a como envié en TRA lo hice usando un XMLDocument, y el código es este
Código:

        memo2.lines.LoadFromFile('ticket.xml.cms');
        memo2.Lines.Delete(memo2.Lines.Count - 1);
        memo2.Lines.Delete(0);
        fun := GetLoginCMS;
        aa := fun.loginCms(Memo2.Text);
        Memo1.Text := aa;
        memo1.lines.SaveToFile('resultado.xml');


la función GetLoginCMS la tengo en una Unit 'LoginCms' que esa unidad no recuerdo de donde la saque, pero se que esa y otras más son necesarias para poder realizar todo el proceso, el código que te puse es solo el que envía, pero antes lo tenes que haber creado... no sé en que etapa estas....
Bueno espero te haya servido, y en lo que te pueda ayudar...


La franja horaria es GMT +2. Ahora son las 03:08:36.

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