pero no queria arrancar si pedir un consejo por aca,
recomiendan alguna otra lib? cosas a tener en cuenta? experiencias?
Gracias!
Fijate el laburo que está haciendo Mariano Reingart con
http://www.pyafipws.com.ar/ que es muy impresionante y está mantenido.
Ofrece compatibilidad con varios lenguajes, si bien está desarrollado
en Python.
Es muy bueno.
Saludos,
Juan
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.
2011/8/15 Jadull Edgardo <jadu...@gmail.com>:
Saludos
Z
El 12/10/2011 11:37 AM, Xava escribi�:
hola pasalas estoy en el lugar donde trabajo me pidieron algo asi...y no tengo idea para donde correr jajaja
Uhhh esto me viene al pelo. Yo había hecho la implementación de esta API hace algunos años pero ni se donde quedo ese código y encima debe estar de desactualizado y JUSTO esta semana salio que alguien me lo pidió. AL Peloooo.
Nota: Sale un github de esto, no?
Uhhh esto me viene al pelo. Yo había hecho la implementación de esta API hace algunos años pero ni se donde quedo ese código y encima debe estar de desactualizado y JUSTO esta semana salio que alguien me lo pidió. AL Peloooo.
Nota: Sale un github de esto, no?
saludos
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a php-arg+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a php...@googlegroups.com. Para acceder a más opciones, visita https://groups.google.com/d/optout.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a php-arg+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a php...@googlegroups.com. Para acceder a más opciones, visita https://groups.google.com/d/optout.
Marcelo Argüello
Ingeniero en Sistemas de Información
0351-3275330 · marcelo....@gmail.com
Socio fundador de MakeIT-COOP
marcelo....@makeit.coop · www.makeit.coop
--
Has recibido este mensaje porque estás suscrito a un tema del grupo "Grupo PHP Argentina" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/php-arg/lJ_PQshAaLU/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a php-arg+u...@googlegroups.com.
Yo estoy en lo mismo. Si hay algo hecho me vendría bien. Si termino algo lo paso.
Saludos
Estimados, estoy tratando de armar la factura electrónica en php, tanto la común como así también para una cooperativa de servicios, si alguien me puede ayudar se lo agradeceré o si alguien tiene algo hecho que lo quiera vender también será bienvenido ya que la necesito urgente, desde ya muchas gracias a todos.Un cordial saludo.
--
El 19/06/2015, a las 16:17, INNOVAR GROUP MDQ <olivera1...@gmail.com> escribió:
Estimados, estoy tratando de armar la factura electrónica en php, tanto la común como así también para una cooperativa de servicios, si alguien me puede ayudar se lo agradeceré o si alguien tiene algo hecho que lo quiera vender también será bienvenido ya que la necesito urgente, desde ya muchas gracias a todos.Un cordial saludo.
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a php-arg+u...@googlegroups.com.
--
Has recibido este mensaje porque estás suscrito a un tema del grupo "Grupo PHP Argentina" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/php-arg/lJ_PQshAaLU/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a php-arg+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a php...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/php-arg.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
coloque un alias
pegue el contenido del CSR y luego click en crear dn y certificado
Este resultado entiendo es mi CERT (El sistema devuelve un certificado x509v2 en formato PEM)
4- ingreso al php para generar el TA -> ticket de acceso Y ERROR
Observaciones:
- tengo creado el archivo TRA.tmp
- controle todos los path y estan correctos, he puesto la funcion realpath
- ejecuto el php por linea de comando (CMD de windows) -> php.exe wsaa-client.php wsfev1
- controlado que la extension openssl este funcionando tanto para ejecutar en el navegador como para ejecutar en linea de comando
alguien pudo pasar este paso?
Paso el php que estoy utilizando, sacado de AFIP en su momento
---------------------------------------------------------------------------------------------------------
<?php
# Author: Gerardo Fisanotti - DvSHyS/DiOPIN/AFIP - 13-apr-07
# Function: Get an authorization ticket (TA) from AFIP WSAA
# Input:
# WSDL, CERT, PRIVATEKEY, PASSPHRASE, SERVICE, URL
# 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 certificate in PEM format
define ("PRIVATEKEY", "ghf.key"); # The private key correspoding to CERT (PEM)
define ("PASSPHRASE", "dsfafafdasfas"); # The passphrase (if any) to sign
define ("PROXY_HOST", "10.20.152.112"); # Proxy IP, to reach the Internet
define ("PROXY_PORT", "80"); # Proxy TCP port
define ("URL", "https://wsaahomo.afip.gov.ar/ws/services/LoginCms");
#define ("URL", "https://wsaa.afip.gov.ar/ws/services/LoginCms");
#------------------------------------------------------------------------------
# You shouldn't have to change anything below this line!!!
#==============================================================================
function CreateTRA($SERVICE)
{
$TRA = new SimpleXMLElement(
'<?xml version="1.0" encoding="UTF-8"?>' .
'<loginTicketRequest version="1.0">'.
'</loginTicketRequest>');
$TRA->addChild('header');
$TRA->header->addChild('uniqueId',date('U'));
$TRA->header->addChild('generationTime',date('c',date('U')-60));
$TRA->header->addChild('expirationTime',date('c',date('U')+60));
$TRA->addChild('service',$SERVICE);
$TRA->asXML('TRA.xml');
}
#==============================================================================
# This functions makes the PKCS#7 signature using TRA as input file, CERT and
# PRIVATEKEY to sign. Generates an intermediate file and finally trims the
# MIME heading leaving the final CMS required by WSAA.
function SignTRA()
{
$STATUS=openssl_pkcs7_sign("TRA.xml", "TRA.tmp", "file://".CERT,
array("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;
}
#==============================================================================
function CallWSAA($CMS)
{
$client=new SoapClient(WSDL, array(
'proxy_host' => PROXY_HOST,
'proxy_port' => PROXY_PORT,
'soap_version' => SOAP_1_2,
'location' => URL,
'trace' => 1,
'exceptions' => 0
));
$results=$client->loginCms(array('in0'=>$CMS));
file_put_contents("request-loginCms.xml",$client->__getLastRequest());
file_put_contents("response-loginCms.xml",$client->__getLastResponse());
if (is_soap_fault($results))
{exit("SOAP Fault: ".$results->faultcode."\n".$results->faultstring."\n");}
return $results->loginCmsReturn;
}
#==============================================================================
function ShowUsage($MyPath)
{
printf("Uso : %s Arg#1 Arg#2\n", $MyPath);
printf("donde: Arg#1 debe ser el service name del WS de negocio.\n");
printf(" Ej.: %s wsfe\n", $MyPath);
}
#==============================================================================
ini_set("soap.wsdl_cache_enabled", "0");
if (!file_exists(CERT)) {exit("Failed to open ".CERT."\n");}
if (!file_exists(PRIVATEKEY)) {exit("Failed to open ".PRIVATEKEY."\n");}
if (!file_exists(WSDL)) {exit("Failed to open ".WSDL."\n");}
if ( $argc < 2 ) {ShowUsage($argv[0]); exit();}
$SERVICE=$argv[1];
CreateTRA($SERVICE);
$CMS=SignTRA();
$TA=CallWSAA($CMS);
if (!file_put_contents("TA.xml", $TA)) {exit();}
?>
=================================================
define ("WSDL", "wsaa.wsdl"); # The WSDL corresponding to WSAA
define ("CERT", "ghf.crt"); # The X.509 certificate in PEM format
define ("PRIVATEKEY", "ghf.key"); # The private key correspoding to CERT (PEM)
define ("PASSPHRASE", "dsfafafdasfas"); # The passphrase (if any) to sign
define ("PROXY_HOST", "10.20.152.112"); # Proxy IP, to reach the Internet
define ("PROXY_PORT", "80"); # Proxy TCP port
define ("URL", "https://wsaahomo.afip.gov.ar/ws/services/LoginCms");
#define ("URL", "https://wsaa.afip.gov.ar/ws/services/LoginCms");
Dentro del archivo que definen con nombre ghf.crt deben ingresar el certificado que les da via web la afip. (paso 3) El que comienza... -----BEGIN CERTIFICATE-----
Dentro del archivo que definen con nombre ghf.key deben ingresar el contenido del archivo generado en el openssl (Paso 1)
en PASSPHRASE ... deben escribir la clave que ingresaron en las lineas de openssl ... paso 1 y paso 2
No me fue necesario utilizar el archivo .tmp
Espero que les sirva
saludos
Daniel, he probado diferentes maneras y no he conseguido salir del error : error getting private key.
Ha esta altura estoy pensando que es un error en el formato con el que tengo guardado el certificado.
He realizado los siguientes pasos para generar el CERT (supuestamente archivo en formato PEM)
1- openssl genrsa -out claveLaloGZXXX 1024
2-
Warning: openssl_pkcs7_sign(): error getting private key in D:\Documents\Mis Webs\wsaa-client-php\wsaa-client.php on line 64 ERROR generating PKCS#7 signature
He probado de todo, de todos modos no entiendo bien lo PASSPHRASE
Me podrían dar una mano, muchas gracias.
...
...
...
...
...
php -i y aparecen tanto el SOAP como el openssl
Pero ejecuto php.exe -f wass-client.php y me dice:
SOAP Fault: HTTP
Could not connect to host
Perdón por lo rompe bolas
...
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here......
...
...
...
...
...
...
dale, por la tarde lo subo :)
y agrego unos TODO2011/10/13 Andrés Morales <andresfernandomorales@gmail.com>
El 13 de octubre de 2011 02:08, BARBAZUL <tere...@gmail.com> escribió:Uhhh esto me viene al pelo. Yo había hecho la implementación de esta API hace algunos años pero ni se donde quedo ese código y encima debe estar de desactualizado y JUSTO esta semana salio que alguien me lo pidió. AL Peloooo.
Nota: Sale un github de esto, no?
Debería subirse a github... y lo laburamos en conjunto...
El 12/10/2011 21:13, "xava *" <xa...@00101010.com.ar> escribió:
hacer esto, es una rompida de huevosBasicamente son dos clases,afip/wsaa.class.php
afip/wsfe.class.php
en el archivo index.php hay un ejemplo de como se usan,
el codigo esta basado en los ejemplos oficiales de la AFIP, para poder usarlo tienen que pedir unos certificados por mail a la AFIP (lo hizo mi amigo, no se donde es pero busquen que debe estar facil) una vez que tienen los certifcados los guardan dentro de la carpeta keys/cualquier duda pregunten,la clase wsfe no tiene soporte para envio en lotes de facturas (comprobantes) pero es facil de implementarlo si no necesitan
aclaro, antes que nada, que todo puede estar mucho mejor, soy conciente de eso, pero tenia que sacarlo rapido asi que ahi quedo, aunque aun le sigo trabajando detalles
espero les sirva!
adjunto algunos links de interes (si no van a safar de leer)
información técnica oficial sobre servicios web
PyAfipWs (la documentacion de como funciona es lo mismo, ahi estan los links a donde pedir el cert y demas)
http://www.sistemasagiles.com.ar/trac/wiki/PyAfip
http://www.sistemasagiles.com.ar/trac/wiki/FacturaElectronicaPython
Manual de Uso PyAfipWs: Interfase y herramientas para servicios web AFIP (Factura Electrónica y otros)
http://www.sistemasagiles.com.ar/trac/wiki/ManualPyAfipWs
- otros
PyRece: Aplicativo Autorizador y Generador de Facturas Electrónicas (usa PyAfipWs)
http://www.sistemasagiles.com.ar/trac/wiki/PyRece
2011/10/12 Dante Marcelo <dant...@gmail.com>
hola pasalas estoy en el lugar donde trabajo me pidieron algo asi...y no tengo idea para donde correr jajaja
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+unsubscribe@googlegroups.com
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+unsubscribe@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+unsubscribe@googlegroups.com
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+unsubscribe@googlegroups.com
Me podrías mandar a mi también?
Gracias!!
El jueves, 13 de octubre de 2011, 11:21:36 (UTC-3), Xava escribió:
dale, por la tarde lo subo :)
y agrego unos TODO
2011/10/12 Dante Marcelo <dant...@gmail.com>
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.
--
Has recibido este mensaje porque estás suscrito a un tema del grupo "Grupo PHP Argentina" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/php-arg/lJ_PQshAaLU/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a php-arg+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a php...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/php-arg.
Gracias!
Gracias!
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a php-arg+u...@googlegroups.com.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a php-arg+u...@googlegroups.com.
si Muchas Gracias Nachito,
ya esta resuelto, termine armando un par de clases propias para la
coneccion con WSAA y WSFE,
si alguien las llega a necesitar avise!
On Oct 8, 8:46 pm, nachi77o <nacholang...@gmail.com> wrote:
> revisaste la doc oficial de la afip? hay un ejemplito en php
>
> http://www.afip.gov.ar/ws/#WSFeDet
>
> Exitos!
>
> On 15 ago, 10:48, "* du!" <xav...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Hola a todos,
> > me estoy metiendo en esto de la factura electronica, que tengo que
> > desarrollar prontamente en php corriendo bajo linux
> > vi que hay varias libs, como afipws y otras
>
> > pero no queria arrancar si pedir un consejo por aca,
> > recomiendan alguna otra lib? cosas a tener en cuenta? experiencias?
>
> > Gracias!