Tokens USB

2 respostas
J

Tenho um token usb e gostaria de saber de alguem que conhece sobre o assunto a melhor forma de se trabalhar com esses caras em aplicações web

2 Respostas

ibispo

Obas,

Na outra empresa que trabalhei no passado eu precisei desenvolver um sistema que gerava e assinava um XML e enviava para a prefeitura SP. Essa assinatura e envio do XML se dava com um cartão e-CNPJ com um leitor USB.

Usei uma estrutura semelhante abaixo:

public static void main(String[] args) {
		
		 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
	        
	        System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true"); 
	        System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true"); 
	        
	        System.setProperty("javax.net.debug", "ssl");
		
			System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
			Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

			System.setProperty("javax.net.ssl.keyStoreProvider","SunMSCAPI");
			System.setProperty("javax.net.ssl.keyStoreType", "Windows-MY" );
			System.setProperty("javax.net.ssl.keyStore", "C:\\wwNFe\\funfa\\nfeCliente.jks");
			System.setProperty("javax.net.ssl.keyStorePassword", "senhaDoJKS");
			
			System.setProperty("javax.net.ssl.trustStoreType", "JKS");
			System.setProperty("javax.net.ssl.trustStore","C:\\wwNFe\\funfa\\jssecacerts");;
	        System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); 

			// Endereço, local onde encontra-se o Web Service
			String local = "https://nfe.fazenda.sp.gov.br/nfeweb/services/nfestatusservico.asmx";

			// Criando e configurando o serviço
			Call call;
			try {
				call = (Call) new Service().createCall();

				// Configurando o endereço.
				call.setTargetEndpointAddress(local);

				// Marcando o método a ser chamado.
				call.setOperationName("consultaServ");

				String nfeCabecMsg ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
						"<cabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.02\">" +
						"	<versaoDados>1.07</versaoDados>" +
						"</cabecMsg>";
				
				String nfeDadosMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
						"<consStatServ versao=\"1.07\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">" +
						"	<tpAmb>1</tpAmb>" +
						"	<cUF>42</cUF>" +
						"	<xServ>STATUS</xServ>" +
						"</consStatServ>";

				// Set Parâmetros de envio
				Object[] param = new Object[] { nfeCabecMsg, nfeDadosMsg };

				try {
					// Retorno
					System.out.println("Retorno webservice: " + call.invoke(param));
				} catch (RemoteException e) {
					e.printStackTrace();
					// System.out.println("Problemas ao conectar com webservice " + local
						//	+ "\n" + e.getMessage());
				} catch (Exception e) {
					// e.printStackTrace();
					System.out.println("Problemas ao conectar com webservice " + local
							+ "\n" + e.getMessage());
				}
			
			} catch (ServiceException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}		
		

	}

Talvez te ajude

J

Nesse caso você busca sempre um endereço físico na máquina do cara né??

Criado 16 de março de 2011
Ultima resposta 16 de mar. de 2011
Respostas 2
Participantes 2