Nesse post eu ensinei assinar o RPS da prefeitura de São Paulo, na época eu utilizei a API Sun Base64Encoder para codificar a assinatura em Base64, mas como ela é uma API proprietária da Sun pode ser que não esteja disponível em futuras versões do Java, então você pode substituí-la pelo Apache Base64, basta fazer o seguinte:
Primeiro baixe o Apache Commons Codec.
Coloque o jar do commons codec no classpath da sua aplicação, ou se você utiliza o Netbeans, crie uma nova biblioteca e inclua no seu projeto.
Importe o Apache Commons Codec:
Altere o método signASCII:
A biblioteca Apache Commons Codec implementa outros encoders e decoders, vale a pena utilizá-la para outras situações.
Boa Tarde Eduardo, ve se voce consegue mw ajudar, estou tentando implementar o codigo e estou tendo retorno de assinatura do rps invalida, o retorno do metodo: return new String(Base64.encodeBase64(dsa.sign(), true));
ResponderExcluirjá é o valor que tenho que colocar dentro do xml na tag filha assinatura dentro da tag RPS? e por fim assinar o xml inteiro?
Abraços
Ola Roberto,
ExcluirProvavelmente você já resolveu seu problema, sinto muito eu estive ocupado nós últimos meses e sem muito tempo para o Blog.
Esse valor é para ser colocado dentro da TAG assinatura, essa ortina não serve para assinatura do XML inteiro, eu vou publicar outro post com a assinatura do XML inteiro, é uma rotina um pouco mais complexa.
Valeu!!