CÓDIGO DE FACTURA ELECTRÓNICA PARA DELPHI 7 EN ADELANTE
Para entender lo que vamos a hacer, tenemos que saber que la AFIP tiene 4 servidores 2 de prueba y 2 de Producción:
Ambiente de prueba (Testing/Homologación):
WS Autenticación y Autorización:
https://wsaahomo.afip.gov.ar/ws/services/LoginCms?WSDL
WS Facturación Electrónica:
https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL
Ambiente real (Producción):
WS Autenticación y Autorización:
https://wsaa.afip.gov.ar/ws/services/LoginCms?WSDL
WS Facturación Electrónica:
https://servicios1.afip.gov.ar/wsfev1/service.asmx?WSDL
En el servidor de LoginCMS lo que vamos a hacer es consultarlo para obtener las Claves TOKEN y SIGN, luego con esas 2 claves vamos a poder trabajar con el servidor WSFEV1.
Para obtener los 2 archivos .crt y .key que se van a usar para solicitar las claves TOKEN y SIGN, siga la guía GENERAR CRT Y KEY.DOC
CREAR UNA CARPETA EN C:\AFIP\
Y copia dentro los archivos cert.key y cert.crt
ARRANCAMOS CON EL PROYECTO:
1 - Creamos una aplicación nueva en Delphi.
2 – Lo que vamos a hacer es relacionar nuestra aplicación con los Webservice de Afip, para eso vamos a Archivo – Nuevo – Otros – y en la Solapa de Webservice seleccionamos WSDL Importer
Donde dice Localización del WSDL Archivo o URL Copiamos y Pegamos:
https://wsaahomo.afip.gov.ar/ws/services/LoginCms?WSDL
de esta manera estamos agregando a nuestro proyecto una nueva UNIT con todos los métodos del webservice, guardarla con el nombre UHomoLoginCMS.
Y repetir el paso con las otras 3 direcciones siempre poniendo el nombre correcto a las UNITs.
UHomoWsfev1 :
https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL
ULoginCMS:
https://wsaa.afip.gov.ar/ws/services/LoginCms?WSDL
UWsfev1:
https://servicios1.afip.gov.ar/wsfev1/service.asmx?WSDL
De esta manera nos van a quedar en el proyecto nuevo 4 Units Nuevas.
Solo vamos a Agregar:
Uses UHomoWsfev1, UHomoLoginCMS (para usar los servidores de prueba)
Lo que hacemos al momento de cambiar a modo producción es cambiar esta línea por:
Uses UWsfev1, ULoginCMS (para usar los servidores de producción).
3 – Secuencia para la solicitud de las claves TOKEN Y SING.
A – Agregamos 3 Tmemos y los llamamos Memo1, MToken y MSign
B – Agregamos 1 TButton
C – Agregamos de la paleta de INTERNET un XMLDocument.
D – En las Uses del form arriba de todo agregamos DateUtils, ShellAPI;
E – Agregammos de la paleta de Webservice un componente HTTPRIO.
F- INSERTAMOS LOS PROCEDURES Y FUNCIONES.
G- IMPORTANTISIMO SINO NO ANDA NADA EN LA UNIT DEL SERVICIO WSFEV1
EN INITIALIZATION AGREGAR:
//se agrega esto
InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceSoap), ioDocument);
Si tienen alguna duda, lo tengo funcionando 100% solo con código delphi son DLL ni OCX. Espero que les sirva Saludos...