meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| lenguaje_java [2021/06/15 01:59] – jsojo | lenguaje_java [2022/08/29 19:34] (actual) – lmartinez | ||
|---|---|---|---|
| Línea 26: | Línea 26: | ||
| | | ||
| } | } | ||
| + | </ | ||
| + | |||
| + | <code -> | ||
| + | package tf_pa_ejemplo_directo_java; | ||
| + | |||
| + | //import java.awt.Desktop; | ||
| + | import java.net.MalformedURLException; | ||
| + | import java.net.URISyntaxException; | ||
| + | import java.net.URL; | ||
| + | import java.text.SimpleDateFormat; | ||
| + | import java.util.Date; | ||
| + | |||
| + | import javax.xml.ws.BindingProvider; | ||
| + | import org.datacontract.schemas._2004._07.services.EnviarResponse; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.ObjectFactory; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.DocumentoElectronico; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.Cliente; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.DatosTransaccion; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.DocFiscalReferenciado; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.ListaDocsFiscalReferenciados; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.ListaItems; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.Item; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.TotalesSubTotales; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.ListaFormaPago; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.FormaPago; | ||
| + | import org.datacontract.schemas._2004._07.services_objcomprobante.Retencion; | ||
| + | </ | ||
| + | |||
| + | ===== PASO 1: Configurar la ruta de nuestro servicio web y tokens de prueba ===== | ||
| + | |||
| + | Cuenta demo para hacer pruebas | ||
| + | |||
| + | LINK: [[https:// | ||
| + | |||
| + | Usuario: %%“SOLICITAR”; | ||
| + | |||
| + | Password: %%“SOLICITAR”; | ||
| + | |||
| + | <code -> | ||
| + | public class EnviarDocumentoElectronico { | ||
| + | |||
| + | |||
| + | // Se instancia los objetos utilizados | ||
| + | |||
| + | String wsdl = " | ||
| + | |||
| + | String tokenEmpresa = " | ||
| + | |||
| + | String tokenPassword = " | ||
| + | |||
| + | |||
| + | org.tempuri.Service service = new org.tempuri.Service(); | ||
| + | |||
| + | org.tempuri.IService port = service.getBasicHttpBindingIService(); | ||
| + | |||
| + | BindingProvider bindingProvider = (BindingProvider) port; | ||
| + | |||
| + | |||
| + | |||
| + | DocumentoElectronico documentoElectronico = new DocumentoElectronico(); | ||
| + | |||
| + | DatosTransaccion datosTransaccion = new DatosTransaccion(); | ||
| + | |||
| + | Item item = new Item(); | ||
| + | |||
| + | ObjectFactory factory = new ObjectFactory(); | ||
| + | |||
| + | Date fechaHoy = new Date(); | ||
| + | |||
| + | SimpleDateFormat fechaHoyFormat = new SimpleDateFormat(" | ||
| + | |||
| + | String fechaE = fechaHoyFormat.format(fechaHoy); | ||
| + | </ | ||
| + | |||
| + | Este método construye el Objeto Documento Electrónico | ||
| + | |||
| + | ===== PASO 2: Construir el objeto documento electrónico ===== | ||
| + | |||
| + | El objeto documento electrónico contiene datos del cliente, transacción, | ||
| + | |||
| + | <code -> | ||
| + | private void buildDocumentoElectronico(){ | ||
| + | |||
| + | try { | ||
| + | |||
| + | //Datos Cliente en datosTransaccion | ||
| + | |||
| + | Cliente cliente = new Cliente(); | ||
| + | |||
| + | cliente.setTipoClienteFE(factory.createClienteTipoClienteFE(" | ||
| + | |||
| + | cliente.setTipoContribuyente(factory.createClienteTipoContribuyente(" | ||
| + | |||
| + | cliente.setNumeroRUC(factory.createClienteNumeroRUC(" | ||
| + | |||
| + | cliente.setDigitoVerificadorRUC(factory.createClienteDigitoVerificadorRUC(" | ||
| + | |||
| + | cliente.setRazonSocial(factory.createClienteRazonSocial(" | ||
| + | |||
| + | cliente.setCodigoUbicacion(factory.createClienteCodigoUbicacion(" | ||
| + | |||
| + | cliente.setDireccion(factory.createClienteDireccion(" | ||
| + | |||
| + | cliente.setCorregimiento(factory.createClienteCorregimiento(" | ||
| + | |||
| + | cliente.setDistrito(factory.createClienteDistrito(" | ||
| + | |||
| + | cliente.setProvincia(factory.createClienteProvincia(" | ||
| + | |||
| + | cliente.setTelefono1(factory.createClienteTelefono1(" | ||
| + | |||
| + | cliente.setCorreoElectronico1(factory.createClienteCorreoElectronico1(" | ||
| + | |||
| + | cliente.setPais(factory.createClientePais(" | ||
| + | |||
| + | cliente.setNroIdentificacionExtranjero(factory.createClienteNroIdentificacionExtranjero("" | ||
| + | |||
| + | cliente.setPaisExtranjero(factory.createClientePaisExtranjero("" | ||
| + | |||
| + | datosTransaccion.setCliente(factory.createCliente(cliente)); | ||
| + | |||
| + | |||
| + | //Datos DatosTransaccion en documentoElectronico | ||
| + | |||
| + | datosTransaccion.setNumeroDocumentoFiscal(factory.createDatosTransaccionNumeroDocumentoFiscal(" | ||
| + | |||
| + | datosTransaccion.setTipoEmision(factory.createDatosTransaccionTipoEmision(" | ||
| + | |||
| + | datosTransaccion.setFechaInicioContingencia(factory.createDatosTransaccionFechaInicioContingencia("" | ||
| + | |||
| + | datosTransaccion.setMotivoContingencia(factory.createDatosTransaccionMotivoContingencia("" | ||
| + | |||
| + | datosTransaccion.setTipoDocumento(factory.createDatosTransaccionTipoDocumento(" | ||
| + | |||
| + | datosTransaccion.setPuntoFacturacionFiscal(factory.createDatosTransaccionPuntoFacturacionFiscal(" | ||
| + | |||
| + | datosTransaccion.setFechaEmision(factory.createDatosTransaccionFechaEmision(this.fechaE)); | ||
| + | |||
| + | datosTransaccion.setFechaSalida(factory.createDatosTransaccionFechaSalida("" | ||
| + | |||
| + | datosTransaccion.setNaturalezaOperacion(factory.createDatosTransaccionNaturalezaOperacion(" | ||
| + | |||
| + | datosTransaccion.setTipoOperacion(factory.createDatosTransaccionTipoOperacion(" | ||
| + | |||
| + | datosTransaccion.setDestinoOperacion(factory.createDatosTransaccionDestinoOperacion(" | ||
| + | |||
| + | datosTransaccion.setFormatoCAFE(factory.createDatosTransaccionFormatoCAFE(" | ||
| + | |||
| + | datosTransaccion.setEntregaCAFE(factory.createDatosTransaccionEntregaCAFE(" | ||
| + | |||
| + | datosTransaccion.setEnvioContenedor(factory.createDatosTransaccionEnvioContenedor(" | ||
| + | |||
| + | datosTransaccion.setProcesoGeneracion(factory.createDatosTransaccionProcesoGeneracion(" | ||
| + | |||
| + | datosTransaccion.setTipoVenta(factory.createDatosTransaccionTipoVenta(" | ||
| + | |||
| + | datosTransaccion.setInformacionInteres(factory.createDatosTransaccionInformacionInteres(" | ||
| + | |||
| + | | ||
| + | |||
| + | //Datos DocFiscalReferenciado en datosTransaccion | ||
| + | |||
| + | ListaDocsFiscalReferenciados listaDocsFiscalReferenciados = new ListaDocsFiscalReferenciados(); | ||
| + | |||
| + | DocFiscalReferenciado docFiscalReferenciado = new DocFiscalReferenciado(); | ||
| + | |||
| + | docFiscalReferenciado.setCufeFEReferenciada(factory.createDocFiscalReferenciadoCufeFEReferenciada("" | ||
| + | |||
| + | docFiscalReferenciado.setFechaEmisionDocFiscalReferenciado(factory.createDocFiscalReferenciadoFechaEmisionDocFiscalReferenciado("" | ||
| + | |||
| + | listaDocsFiscalReferenciados.getDocFiscalReferenciado().add(null); | ||
| + | |||
| + | datosTransaccion.setListaDocsFiscalReferenciados(factory.createListaDocsFiscalReferenciados(null)); | ||
| + | |||
| + | documentoElectronico.setCodigoSucursalEmisor(factory.createDocumentoElectronicoCodigoSucursalEmisor(" | ||
| + | |||
| + | documentoElectronico.setTipoSucursal(factory.createDocumentoElectronicoTipoSucursal("" | ||
| + | |||
| + | documentoElectronico.setDatosTransaccion(factory.createDatosTransaccion(datosTransaccion)); | ||
| + | |||
| + | | ||
| + | |||
| + | //Datos Item en documentoElectronico | ||
| + | |||
| + | ListaItems items = new ListaItems(); | ||
| + | |||
| + | item.setDescripcion(factory.createItemDescripcion(" | ||
| + | |||
| + | item.setCodigo(factory.createItemCodigo(" | ||
| + | |||
| + | item.setUnidadMedida(factory.createItemUnidadMedida(" | ||
| + | |||
| + | item.setCantidad(factory.createItemCantidad(" | ||
| + | |||
| + | item.setFechaFabricacion(factory.createItemFechaFabricacion("" | ||
| + | |||
| + | item.setFechaCaducidad(factory.createItemFechaCaducidad("" | ||
| + | |||
| + | item.setInfoItem(factory.createItemInfoItem(" | ||
| + | |||
| + | item.setPrecioUnitario(factory.createItemPrecioUnitario(" | ||
| + | |||
| + | item.setPrecioUnitarioDescuento(factory.createItemPrecioUnitarioDescuento(" | ||
| + | |||
| + | item.setPrecioItem(factory.createItemPrecioItem(" | ||
| + | |||
| + | item.setPrecioAcarreo(factory.createItemPrecioAcarreo(" | ||
| + | |||
| + | item.setPrecioSeguro(factory.createItemPrecioSeguro(" | ||
| + | |||
| + | item.setValorTotal(factory.createItemValorTotal(" | ||
| + | |||
| + | item.setCodigoGTIN(factory.createItemCodigoGTIN("" | ||
| + | |||
| + | item.setCantGTINCom(factory.createItemCantGTINCom("" | ||
| + | |||
| + | item.setCodigoGTINInv(factory.createItemCodigoGTINInv("" | ||
| + | |||
| + | item.setCantGTINComInv(factory.createItemCantGTINComInv("" | ||
| + | |||
| + | item.setTasaITBMS(factory.createItemTasaITBMS(" | ||
| + | |||
| + | item.setValorITBMS(factory.createItemValorITBMS(" | ||
| + | |||
| + | item.setTasaISC(factory.createItemTasaISC("" | ||
| + | |||
| + | item.setValorISC(factory.createItemValorISC("" | ||
| + | |||
| + | item.setCodigoCPBS(factory.createItemCodigoCPBS(" | ||
| + | |||
| + | item.setUnidadMedidaCPBS(factory.createItemUnidadMedidaCPBS(" | ||
| + | |||
| + | items.getItem().add(0, | ||
| + | |||
| + | documentoElectronico.setListaItems(factory.createListaItems(items)); | ||
| + | |||
| + | | ||
| + | |||
| + | //Datos TotalesSubTotales en documentoElectronico | ||
| + | |||
| + | TotalesSubTotales totalesSubTotales = new TotalesSubTotales(); | ||
| + | |||
| + | totalesSubTotales.setNroItems( factory.createTotalesSubTotalesNroItems(" | ||
| + | |||
| + | totalesSubTotales.setTiempoPago(factory.createTotalesSubTotalesTiempoPago(" | ||
| + | |||
| + | totalesSubTotales.setTotalAcarreoCobrado(factory.createTotalesSubTotalesTotalAcarreoCobrado("" | ||
| + | |||
| + | totalesSubTotales.setTotalDescuento(factory.createTotalesSubTotalesTotalDescuento(" | ||
| + | |||
| + | totalesSubTotales.setTotalFactura(factory.createTotalesSubTotalesTotalFactura(" | ||
| + | |||
| + | totalesSubTotales.setTotalISC(factory.createTotalesSubTotalesTotalISC("" | ||
| + | |||
| + | totalesSubTotales.setTotalITBMS(factory.createTotalesSubTotalesTotalITBMS(" | ||
| + | |||
| + | totalesSubTotales.setTotalMontoGravado(factory.createTotalesSubTotalesTotalMontoGravado(" | ||
| + | |||
| + | totalesSubTotales.setTotalPrecioNeto(factory.createTotalesSubTotalesTotalPrecioNeto(" | ||
| + | |||
| + | totalesSubTotales.setTotalValorRecibido(factory.createTotalesSubTotalesTotalValorRecibido(" | ||
| + | |||
| + | totalesSubTotales.setVuelto(factory.createTotalesSubTotalesVuelto(" | ||
| + | |||
| + | totalesSubTotales.setValorSeguroCobrado(factory.createTotalesSubTotalesValorSeguroCobrado("" | ||
| + | |||
| + | totalesSubTotales.setTotalTodosItems(factory.createTotalesSubTotalesTotalTodosItems(" | ||
| + | |||
| + | |||
| + | //Datos Entrada formaPago en totalesSubTotales | ||
| + | |||
| + | FormaPago formaPago = new FormaPago(); | ||
| + | |||
| + | ListaFormaPago listaFormaPago = new ListaFormaPago(); | ||
| + | |||
| + | formaPago.setFormaPagoFact(factory.createFormaPagoFormaPagoFact(" | ||
| + | |||
| + | formaPago.setValorCuotaPagada(factory.createFormaPagoValorCuotaPagada(" | ||
| + | |||
| + | formaPago.setDescFormaPago(factory.createFormaPagoDescFormaPago("" | ||
| + | |||
| + | listaFormaPago.getFormaPago().add(0, | ||
| + | |||
| + | totalesSubTotales.setListaFormaPago(factory.createListaFormaPago(listaFormaPago)); | ||
| + | |||
| + | |||
| + | //Datos Entrada retencion en totalesSubTotales | ||
| + | |||
| + | Retencion retencion = new Retencion(); | ||
| + | |||
| + | retencion.setCodigoRetencion(factory.createRetencionCodigoRetencion(" | ||
| + | |||
| + | retencion.setMontoRetencion(factory.createRetencionMontoRetencion(" | ||
| + | |||
| + | totalesSubTotales.setRetencion(factory.createRetencion(retencion)); | ||
| + | |||
| + | documentoElectronico.setTotalesSubTotales(factory.createTotalesSubTotales(totalesSubTotales)); | ||
| + | |||
| + | |||
| + | |||
| + | } | ||
| + | |||
| + | catch (Exception e) { | ||
| + | |||
| + | System.out.println(" | ||
| + | |||
| + | } | ||
| + | |||
| + | | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== PASO 3: Enviar el objeto documento electronico ===== | ||
| + | |||
| + | Este Método permite enviar al servicio web el objeto documentoElectronico mediante el método enviar() parámetros : | ||
| + | |||
| + | <code -> | ||
| + | public | ||
| + | |||
| + | EnviarResponse enviarResponse; | ||
| + | |||
| + | try { | ||
| + | |||
| + | bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, | ||
| + | |||
| + | //Se Construye el objeto DocumentoElectronico | ||
| + | |||
| + | buildDocumentoElectronico(); | ||
| + | |||
| + | //Se envía DocumentoElectronico | ||
| + | |||
| + | System.out.println(" | ||
| + | |||
| + | //return port.enviar(tokenEmpresa, | ||
| + | |||
| + | enviarResponse = port.enviar(tokenEmpresa, | ||
| + | </ | ||
| + | |||
| + | ===== PASO 4: Obtener la respuesta de nuestro servicio web ===== | ||
| + | |||
| + | Recibirás una respuesta de nuestro servicio web, Se mostrara el código recibido con el mensaje y el código qr. | ||
| + | |||
| + | <code -> | ||
| + | // Respuesta | ||
| + | System.out.println(" | ||
| + | System.out.println(" | ||
| + | |||
| + | // link | ||
| + | URL url = new URL(enviarResponse.getQr().getValue()); | ||
| + | System.out.println(url.toURI()); | ||
| + | // | ||
| + | | ||
| + | } | ||
| + | catch (MalformedURLException | URISyntaxException e) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | } | ||
| + | | ||
| </ | </ | ||