WebService: presentacionprocessor



Documentos relacionados
WebService Presentación de DDJJ

WebService Presentación de DDJJ

Manual para el desarrollador

VE-Ventanilla Electrónica Especificación Caso de Uso VE-CU-WS-Consumir-Comunicaciones

Consulta a Padrón Nivel 10

WebService. WDiaUtiDES AFIP-SDG SIT DI INAD MANUAL DEL DESARROLLADOR. Actualización y Consulta Prestador PEMA

Juegos de Azar y Apuestas

FESB Servicio de Solicitud de Token

Manual para el desarrollador Web service interoperable para crear VEPs setipagob2b_createvep Especificación Funcional

Consulta servicio de deuda sud_restricciones

WebService MANUAL DEL DESARROLLADOR Digitalizacion Depositario Fiel (wdigdepfiel)

Consulta servicio de deuda sud_contrataciones

Consulta de Operaciones Cambiarias ( C.O.C.)

Manual de Timbrado FEL

Consulta a parámetros de padrón ws_sr_padron_a100

Facturación Electrónica

SUBDIRECCION GENERAL DE SISTEMAS Y TELECOMUNICACIONES Documento Técnico Generación de Certificados Digitales para Utilización con Webservices AFIP

PyAfipWs: Interfase COM para Factura Electrónica Manual de Uso. Servicio Web de Autenticación y Autorización (WSAA)

FACTURA ELECTRÓNICA. WEB SERVICE MTXCAService. Manual para el Desarrollador

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1)

Especificación WebService para:

Consulta a Padrón Nivel 3

Consulta a parámetros de padrón ws_sr_padron_a100

INDICE. 1. Dirección URL Web Services Protocolo Usuario y contraseña de la capa de transporte... 7

Caso de Uso WS GUIAS

FACTURA ELECTRÓNICA. WEB SERVICE MTXCAService. Manual para el Desarrollador

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Consulta de F931 para el MTEySS

Especificación de API SMS ITD Chile

Web Service AFIP-SDG SIT DI INAD. wdepmovimientos MANUAL DEL DESARROLLADOR. Ingresos y Salidas para Depositarios

Manual del Protocolo XML-RPC de Mensajería Negocios

CONSULTAR DATOS DE CIUDADANIA POR CEDULA DIRECCION GENERAL DE REGISTRO CIVIL, IDENTIFICACION Y CEDULACION (DGRCIC)

AGESIC. Gerencia de Proyectos. Tutorial para Consumir un servicio sincrónico de la PGE sobre Plataforma Java

PUBLICACIÓN DE SERVICIOS WEB(SW) EN EL BUS DE SERVICIOS GUBERNAMENTALES (BSG)

Especificación Web Services API TWOWAYSMS v1.0. Fecha publicación: 01/02/2008 Intelligent Bussines Communications S.L.


WS

Manual Integración Clientes Servicios WCF. Versión 2.5

Facturación Electrónica

Modulo conexión Cliente WS DGI

Universidad ORT - Arquitectura de Software. Requisitos

Manual de Desarrollador Externo

Aportando contenido en UCM a través de Web Services

Especificación Técnica de Protocolo Para el intercambio de información entre Telecom Personal y sus proveedores de servicios

Contrato de Servicio ServiciosPortalWS

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

PyAfipWs: Interfase COM para Factura Electrónica Manual de Uso. Servicio Web de Autenticación y Autorización (WSAA)

Portal e-banking Pampa Empresas Pagos AFIP

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

Java Developer Kit (JDK) 6.0 JBoss Application Server 5.1. OpenSAML Tabla 1 Requerimientos de Software

Guía para Consumo de Web Service Pesaje de Desembarque

PROCEDIMIENTO PARA LA INSCRIPCIÓN DE PERSONAS JURÍDICAS - F. 420/J

Facturación Electrónica

AFIP. Aplicativo Formulario Multinota. v.100. Manual de Usuario v.1.0.0

Manual de Desarrollador Autenticación Automática

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

WEB SERVICE DEL REGIMEN DE PERCEPCION DE I.V.A (wsrgiva) Manual para el Desarrollador

Elementos léxicos del lenguaje de programación Java

Factura Electrónica. Web Service - Pasos a seguir. Versión 1.0

Documentación servicios Web ENVIALIANET

1. Visión general de RMI

Tutorial básico del entorno de desarrollo Eclipse.

Facturación Electrónica

Manual de usuario. Descripción del servicio de envío de mensajes

Sitio Web de U.S.I.M.R.A. Requisitos mínimos de la máquina

Desarrollo de Sistemas Software Basados en Servicios y Componentes

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Tutorial Servicios Web

Catálogo de Servicios Biométricos del RENIEC

ATLAS MANUAL DE INTEGRACIÓN

1. Creación del repositorio

Consulta a Padrón Nivel 10

DNA. Cliente WSAA Especificaciones Técnicas. Versión <1.4>

" "registrarse aquí para obtener la Clave de Transporte"

Pagos. Si desea acceder directamente a un capítulo, posicionese sobre el número de página y haga clic.

BOLETIN INFORMATIVO TECNICO Nº 49

GUIA DE LABORATORIO N 8 A(Netbeans-java,Glassfish)

Especificaciones Técnicas. Índice. 1. Resumen. 2. Alcance. 3. Consideraciones Generales. 4. Propósito. AFIP Página 1

SIVEGAM Sistema de verificación del gasto mensual Protocolo SIVEGAM. Superintendencia de Seguridad Social. Versión 1.0

ALTAS MANUAL DE USUARIO DEL SERVICIO DE CERTIFICADOS

I0NSTRUCTIVO DE ADHESIÓN A CERTIFICACIONES VÍA WEB Y GENERACÍON DE LA CERTIFICACIÓN WEB DDJJ CM05 CONVENIO MULTILATERAL

Referencia API SOAP Captura Diferida. Transbank S.A. Transbank S.A.

Guía de referencia para tramitar el formulario 4550 Resolución General 3579 de la Administración Federal de Ingresos Públicos (AFIP)

INSTRUCTIVO. Anexo 94

AGESIC. Gerencia de Proyectos

Programación de Aplicaciones Visuales II Ejercicio Paso a Paso: Aplicación para HelpDesk

WEB SERVICES. Manual técnico para desarrollador

PROCEDIMIENTO DE GESTIÓN DE INCIDENCIAS

Desarrollo de Servicios Web con JBuilder

Manual del Desarrollador. wconscuit. Consulta de las Transferencias realizadas al CBU del Exportador

Clave Fiscal. Manual del Sistema. - Administración de Relaciones -

Modulo 1 El lenguaje Java

CARTILLA PARA EL USO DEL SISTEMA DE GENERACIÓN DE CERTIFICADOS DE HOMOLOGACIÓN PARA LA VENTA DE EQUIPOS TERMINALES MÓVILES. Versión 1.

Transcripción:

AFIP SDG SIT DI INTR WebService: presentacionprocessor Presentación de DDJJ desde Organismos Externos Manual para el desarrollador Revisión correspondiente al 18/07/2013 Página 1 de 13

Revisión Histórica Versión Fecha Descripción 0.1.0 11/8/10 Creación del documento. 0.1.1 19/8/10 Actualización de URLs de documentación adicional. 0.1.2 19/4/13 Se ajusta el documento para cumplir estándares de los WS de AFIP. 0.1.3 24/04/13 Se agrega descripción de un caso de uso típico donde se usará este WebService 0.1.4 29/04/13 Se ajusta según observaciones de tecnología: - Actualización URL de Producción - Actualización operacion dummy - Actualización nombres de campos y descripciones del upload request 0.1.5 18/07/13 Se agrega aclaración del parámetro representadocuit en punto 2.3 Lista de Operaciones Página 2 de 13

Contenido WebService: presentacionprocessor 1 1. INTRODUCCIÓN...4 1.1. Objetivo 4 1.2. Alcance 4 1.3. Precondiciones 4 1.4. Caso de Uso 4 2. ESPECIFICACIÓN DEL WEB SERVICE...5 2.1. URLs del WSDL 5 2.2 Servicio: presentacionprocessor 5 2.3 Lista de Operaciones Posibles 5 Ejemplo para SOAPUI 7 3. TRATAMIENTO DE ERRORES EN EL WS...9 3.1. Ejemplos de errores: 9 4. EJEMPLOS DE CLIENTES...10 4.1. Cliente java 10 4.2. Cliente Visual Basic.NET 12 Página 3 de 13

1. Introducción 1.1. Objetivo Este documento esta dirigido a los Organismos Externos que deban desarrollar una aplicación cliente, para que puedan realizar la presentación de declaraciones juradas de manera automática en el Sistema de Presentación de Declaraciones Juradas y Pagos de la AFIP. 1.2. Alcance Este documento brinda las especificaciones técnicas para desarrollar el cliente del Web Service que se comunicará con el sistema SETI, para la presentación autómata de una DDJJ. 1.3. Precondiciones Lo detallado en este documento deberá complementarse con los relativos a Servicio de Autenticación, Autorización y Establecimiento del canal de comunicación. El cliente deberá estar autenticado por el WSAA para poder invocar el servicio de web service detallado en este documento. 1.4. Caso de Uso Breve descripción de un caso de uso típico donde se usará este WebService: - El contribuyente ingresa al sitio web de un Organismo Recaudador (ej AGIP) - El contribuyente selecciona la opción [Crear una nueva DJ] - El contribuyente completa una DJ y da clic en la opción [Presentar la DJ] - La aplicación envía la DJ a la AFIP mediante este WebService Página 4 de 13

2. Especificación del Web Service 2.1. URLs del WSDL Entorno Testing Dirección https://awshomo.afip.gov.ar/setiws/webservices/uploadpresentacionservice?wsdl Producción https://aws.afip.gov.ar/setiws/webservices/uploadpresentacionservice?wsdl 2.2 Servicio: presentacionprocessor El nombre de servicio ante WSAA es presentacionprocessor El servicio es delegable: El Organismo Recaudador usuario del servicio (ej AGIP) podría, si lo cree conveniente, terciarizar la operación del cliente del ws con otra empresa (ej: InterBanking) 2.3 Lista de Operaciones Posibles <!-- Request: <soapenv:envelope dummy() xmlns:dom="http://domain.presentacion.seti.osiris.afip.gov/"> Operación <soapenv:header/> dummy: xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" --> para verificar disponibilidad de servicio sin autenticación (no espera recibir token/sign) </soapenv:envelope> <soapenv:body> </soapenv:body> <dom:dummy/> <!-- <soap:envelope <soap:body> <ns2:dummyresponse dummy: xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> --> xmlns:ns2="http://domain.presentacion.seti.osiris.afip.gov/"> Response: responde status de appserver, dbserver y authserver <return> <appserver>ok</appserver> Página 5 de 13

</ns2:dummyresponse> </return> <authserver>ok</authserver> <dbserver>ok</dbserver> </soap:envelope> </soap:body> Request: upload( String token, String sign, Long representadocuit, String presentaciondatahandler, String filename ) Operación que permite realizar la presentación de la DJ en el sistema SETI. - token: obtenido desde el WSAA - sign: obtenido desde el WSAA - representadocuit: cuit del organismo representado (usuario del servicio) La CUIT debe coincidir con la CUIT que usa el certificado para firmar el ticket de acceso al WSAA. - presentaciondatahandler: o referencia al archivo adjunto optimizado con MTOM o xsd:base64binary xmlmime:expectedcontenttype="application/octetstream" - filename: nombre del archivo, debe tener formato valido para SETI, ejemplos: o F5220.20246634360.txt Para el Formulario 5220 donde la CUIT debe ser la del registro 1 de la DJ o 951616F0159.dat Para el Formulario 159 donde los primeros 6 dígitos es el numero verificador de la DJ o 215983F0713.0cbf6f2f45d83adf11cd9d72b3992bdb.b64 Para el Formulario 713 donde los primeros 6 dígitos es el numero verificador de la DJ Página 6 de 13

Ejemplo para SOAPUI Setear en true las siguientes Request Properties - Enable MTOM = true - Force MTOM = true <soapenv:envelope - Expand MTOM Attachments = true xmlns:dom="http://domain.presentacion.seti.osiris.afip.gov/"> Adjuntar <soapenv:header/> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" archivo, este caso: 215983F0713.0cbf6f2f45d83adf11cd9d72b3992bdb.b64 <token>pd94bwwgdmvyc2lvbj0ims4wiiblbmnvzgluzz0ivvrgltgiihn0yw5kywxvbmu9i nllcyi/pgo8c3nvihzlcnnpb249ijiumci+ciagica8awqgdw5pcxvlx2lkpsizmjq1mdqxodkziibzc <soapenv:body> mm9iknopxdzywfob21vlcbppufgsvasiem9qvisifnfuklbte5vtujfuj1dvuluidmznjkznduwmjm5i <dom:upload> ibnzw5fdgltzt0imtm2njiyntqwncigzxhwx3rpbwu9ijeznjyynjg2njqilz4kicagidxvcgvyyxrpb 24gdmFsdWU9ImdyYW50ZWQiIHR5cGU9ImxvZ2luIj4KICAgICAgICA8bG9naW4gdWlkPSJDPWFyLCBPP WFmaXAsIFNFUklBTE5VTUJFUj1DVUlUIDIwMjY3MzM1NTY4LCBDTj1wcmVzZW50YWNpb25wcm9jZXNzb 3IiIHNlcnZpY2U9InByZXNlbnRhY2lvbnByb2Nlc3NvciIgcmVnbWV0aG9kPSIyMiIgZW50aXR5PSIzM zy5mzq1mdizosigyxv0ag1ldghvzd0iy21zij4kicagicagicagicagphjlbgf0aw9ucz4kicagicagi CAgICAgICAgIDxyZWxhdGlvbiByZWx0eXBlPSI0IiBrZXk9IjIwMjY3MzM1NTY4Ii8+CiAgICAgICAgI CAgIDwvcmVsYXRpb25zPgogICAgICAgIDwvbG9naW4+CiAgICA8L29wZXJhdGlvbj4KPC9zc28+Cgo= </token> <sign>fw08jyaxzezakppjk58+ymarjipdh29igklnv6pqndv9fecw2r30c6tdpdqetjnhtv BoIPKJNQgCdN2EHMGlepzDCG6blB7bJtHhVGYCbE2Uejq0d8FiH+NFXk1cHhcFTVo0sODlMLthSLf0Vn 3+/g5RsDEvVbVqTd1UDzfNwNg=</sign> <presentaciondatahandler>cid:215983f0713.0cbf6f2f45d83adf11cd9d72b3992bdb.b64</presentaciondata <representadocuit>20267335568</representadocuit> <presentacion> </dom:upload> </presentacion> <filename>215983f0713.0cbf6f2f45d83adf11cd9d72b3992bdb.b64</filename> Página 7 de 13

</soapenv:envelope> </soapenv:body> AFIP SDG SIT DI INTR <soap:envelope <soap:body> <ns2:uploadresponse <return>62372464</return> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> xmlns:ns2="http://domain.presentacion.seti.osiris.afip.gov/"> Response: número único asignado a la presentación de la DJ por parte de AFIP. </soap:envelope> </soap:body> </ns2:uploadresponse> Página 8 de 13

3. Tratamiento de errores en el WS La operación upload del webservice devuelve un SOAP Fault en caso de error. (Ver http://www.w3.org/tr/2000/note-soap-20000508/#_toc478383507) Clasificación de errores: # FaultCode FaultString 1 Client.contentError - CUIT contribuyente inválida etc 2 User.businessError - Request mal formado - Archivo adjunto inválido - El período fiscal no corresponde <soap:envelope etc <soap:body> 3 Server.processError - Error accediendo a base de datos <soap:fault> etc <faultcode>soap:client.contenterror</faultcode> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 3.1. <faultstring>la Ejemplos cuit [20111111112] errores: sesion</faultstring> <detail> <server>1</server> no corresponde con ninguna de las cuits habilitadas para la </soap:envelope> </soap:body> </soap:fault> </detail> <soap:envelope <soap:body> <soap:fault> <faultcode>soap:user.businesserror</faultcode> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <faultstring>el <detail> </detail> <server>1</server> nombre del archivo [F05680.txt] no corresponde con ningún formato válido</faultstring> </soap:body></soap:envelope> </soap:fault> Página 9 de 13

4. Ejemplos de Clientes 4.1. Cliente java package gov.afip.osiris.seti.presentacion.domain; import gov.afip.osiris.seti.presentacion.domain.service.implementation.ws.upload; import java.io.file; import java.net.uri; import java.net.url; import javax.activation.datahandler; import javax.activation.filedatasource; import javax.xml.namespace.qname; import javax.xml.ws.bindingprovider; import javax.xml.ws.soap.soapbinding; public final class PresentacionProcessorMTOMService_PresentacionProcessorMTOMImplPort_Client { private static final QName SERVICE_NAME = new QName("http://ws.implementation.service.domain.presentacion.seti.osiris.afip.gov/", "upload"); private PresentacionProcessorMTOMService_PresentacionProcessorMTOMImplPort_Client() {} public static void main(string args[]) throws java.lang.exception { URL wsdlurl = PresentacionProcessorMTOMService_PresentacionProcessorMTOMImplPort_Client.class.getResource( "uploadpresentacionservice.wsdl" ); PresentacionProcessorMTOMService port = (new Upload(wsdlURL, SERVICE_NAME)).getPresentacionProcessorMTOMImplPort(); ((SOAPBinding)((BindingProvider)port).getBinding()).setMTOMEnabled(true); File afile = new File(new URI((PresentacionProcessorMTOMService_PresentacionProcessorMTOMImplPort_Client.class.getResource( "951616F0159.dat" )).tostring())); System.out.println("Invoking upload..."); String _upload_token = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9I nllcyi/pgo8c3nvihzlcnnpb249ijiumci+ciagica8awqgdw5pcxvlx2lkpsizmjq1mdqxodkziibzc mm9iknopxdzywfob21vlcbppufgsvasiem9qvisifnfuklbte5vtujfuj1dvuluidmznjkznduwmjm5i ibnzw5fdgltzt0imtm2njiyntqwncigzxhwx3rpbwu9ijeznjyynjg2njqilz4kicagidxvcgvyyxrpb 24gdmFsdWU9ImdyYW50ZWQiIHR5cGU9ImxvZ2luIj4KICAgICAgICA8bG9naW4gdWlkPSJDPWFyLCBPP WFmaXAsIFNFUklBTE5VTUJFUj1DVUlUIDIwMjY3MzM1NTY4LCBDTj1wcmVzZW50YWNpb25wcm9jZXNzb 3IiIHNlcnZpY2U9InByZXNlbnRhY2lvbnByb2Nlc3NvciIgcmVnbWV0aG9kPSIyMiIgZW50aXR5PSIzM zy5mzq1mdizosigyxv0ag1ldghvzd0iy21zij4kicagicagicagicagphjlbgf0aw9ucz4kicagicagi CAgICAgICAgIDxyZWxhdGlvbiByZWx0eXBlPSI0IiBrZXk9IjIwMjY3MzM1NTY4Ii8+CiAgICAgICAgI CAgIDwvcmVsYXRpb25zPgogICAgICAgIDwvbG9naW4+CiAgICA8L29wZXJhdGlvbj4KPC9zc28+Cgo="; String _upload_sign = "fw08jyaxzezakppjk58+ymarjipdh29igklnv6pqndv9fecw2r30c6tdpdqetjnhtv BoIPKJNQgCdN2EHMGlepzDCG6blB7bJtHhVGYCbE2Uejq0d8FiH+NFXk1cHhcFTVo0sODlMLthSLf0Vn 3+/g5RsDEvVbVqTd1UDzfNwNg="; String _upload_representadocuit = "20267335568"; PresentacionFileB2B _upload_presentacion = new PresentacionFileB2B(); _upload_presentacion.setpresentaciondatahandler( new DataHandler( new FileDataSource(aFile) ) ); _upload_presentacion.setfilename("951616f0159.dat"); try { long _upload return = port.upload(_upload_token, _upload_sign, _upload_representadocuit, _upload_presentacion); System.out.println("upload.result[" + _upload return + "]"); Página 10 de 13

} catch (Exception_Exception e) { System.out.println("Expected exception: Exception has occurred."); System.out.println(e.toString()); } System.out.println("Invoking dummy..."); try { gov.afip.osiris.seti.presentacion.domain.dummyreturn _dummy return = port.dummy(); System.out.println("dummy.result[appserver=" + _dummy return.getappserver() + ", authserver=" + _dummy return.getauthserver() + ", dbserver=" + _dummy return.getdbserver() ); } catch (Exception_Exception e) { System.out.println("Expected exception: Exception has occurred."); System.out.println(e.toString()); } } System.exit(0); } Página 11 de 13

4.2. Cliente Visual Basic.NET Module Module1 Sub Main() Dim ws As New ConsoleApplication1.presentacionService.PresentacionProcessorMTOMServiceClient Dim dummyreturn As New ConsoleApplication1.presentacionService.dummyReturn Dim presentacion As New ConsoleApplication1.presentacionService.presentacionFileB2B Dim nrotx As New Long Dim token As String Dim sign As String dummyreturn = ws.dummy() Console.WriteLine("dummy response[" + dummyreturn.appserver.tostring + "]") Console.ReadKey() token = " PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9I nllcyi/pgo8c3nvihzlcnnpb249ijiumci+ciagica8awqgdw5pcxvlx2lkpsizmjq1mdqxodkziibzc mm9iknopxdzywfob21vlcbppufgsvasiem9qvisifnfuklbte5vtujfuj1dvuluidmznjkznduwmjm5i ibnzw5fdgltzt0imtm2njiyntqwncigzxhwx3rpbwu9ijeznjyynjg2njqilz4kicagidxvcgvyyxrpb 24gdmFsdWU9ImdyYW50ZWQiIHR5cGU9ImxvZ2luIj4KICAgICAgICA8bG9naW4gdWlkPSJDPWFyLCBPP WFmaXAsIFNFUklBTE5VTUJFUj1DVUlUIDIwMjY3MzM1NTY4LCBDTj1wcmVzZW50YWNpb25wcm9jZXNzb 3IiIHNlcnZpY2U9InByZXNlbnRhY2lvbnByb2Nlc3NvciIgcmVnbWV0aG9kPSIyMiIgZW50aXR5PSIzM zy5mzq1mdizosigyxv0ag1ldghvzd0iy21zij4kicagicagicagicagphjlbgf0aw9ucz4kicagicagi CAgICAgICAgIDxyZWxhdGlvbiByZWx0eXBlPSI0IiBrZXk9IjIwMjY3MzM1NTY4Ii8+CiAgICAgICAgI CAgIDwvcmVsYXRpb25zPgogICAgICAgIDwvbG9naW4+CiAgICA8L29wZXJhdGlvbj4KPC9zc28+Cgo=" sign = " fw08jyaxzezakppjk58+ymarjipdh29igklnv6pqndv9fecw2r30c6tdpdqetjnhtv BoIPKJNQgCdN2EHMGlepzDCG6blB7bJtHhVGYCbE2Uejq0d8FiH+NFXk1cHhcFTVo0sODlMLthSLf0Vn 3+/g5RsDEvVbVqTd1UDzfNwNg=" presentacion.filename = "215983F0713.0cbf6f2f45d83adf11cd9d72b3992bdb.b64" presentacion.presentaciondatahandler = FileToByteArray("c:\Temp\cxf\215983F0713.0cbf6f2f45d83adf11cd9d72b3992bdb.b64") nrotx = ws.upload(token, sign, "20267335568", presentacion) Console.WriteLine("nroTx[" + nrotx.tostring + "]") Console.ReadKey() End Sub Public Function FileToByteArray(ByVal _FileName As String) As Byte() Dim _Buffer() As Byte = Nothing Try ' Open file for reading Dim _FileStream As New System.IO.FileStream(_FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read) ' attach filestream to binary reader Dim _BinaryReader As New System.IO.BinaryReader(_FileStream) ' get total byte length of the file Dim _TotalBytes As Long = New System.IO.FileInfo(_FileName).Length ' read entire file into buffer _Buffer = _BinaryReader.ReadBytes(CInt(Fix(_TotalBytes))) ' close file reader _FileStream.Close() _FileStream.Dispose() _BinaryReader.Close() Página 12 de 13

Catch _Exception As Exception ' Error Console.WriteLine("Exception caught in process: {0}", _Exception.ToString()) End Try Return _Buffer End Function End Module Página 13 de 13