API de assinatura
A assinatura de um documento por meio do script pode ser feita por arquivo ou por lote. Apenas documentos nos formatos xml, pdf, txt e p7s podem ser assinados. Todo processo de assinatura envolve a criação de dois scripts, um para chamada da api de assinatura e outro de call-back, que é executado após a assinatura e pode receber o arquivo assinado e o arquivo original como parâmetro.
Assinando documentos
A seguir, veja como um exemplo de script de assinatura de um documento no formato pdf.
assinar(arquivo, opcoes)
arquivo = parametros.arquivo.valor;
opcoes = [
nome: 'pdfassinado', // nome do arquivo enviado por parâmetro para o script de callback
tipo: 'pdf',
lote: false, // indica se é lote ou não
retorno: [
script: 'callback_assinatura', // identificador do script de callback que deve ser executado após assinar o documento/lote
parametro: 'assinado', // nome do parâmetro do tipo arquivo no script de callback que recebe o arquivo assinado
notificacao: true
],
parametros: [
original: arquivo
]
];
Assinador.assinar(arquivo, opções) ;
A seguir, veja como um exemplo de script de assinatura de um documento no formato xml.
arquivo = parametros.arquivo.valor;
opcoes = [
nome: 'xmlassinado', // nome do arquivo enviado por parâmetro para o script de callback
tipo: 'xml',
lote: false, // indica se é lote ou não
tagAssinatura: 'TEXTO', // nome da tag do xml que deve ser assinada
retorno: [
script: 'callback_assinatura', // identificador do script de callback que deve ser executado após assinar o documento/lote
parametro: 'assinado', // nome do parâmetro do tipo arquivo no script de callback que recebe o arquivo assinado
notificacao: true
],
parametros: [
original: arquivo
]
];
Assinador.assinar(arquivo, opcoes);
Assinando lote de documentos
Exemplo de script de assinatura de um lote de documentos de formato xml.
assinar(arquivo, opcoes)
arquivo = parametros.arquivo.valor;
zip = Arquivo.novo('arquivos.zip', 'zip');
zip.adicionar(arquivo, 'a.xml');
zip.adicionar(arquivo, 'b.xml');
opcoes = [
nome: 'xmlassinado', // nome do arquivo enviado por parâmetro para o script de callback
tipo: 'xml',
lote: true, // indica se é lote ou não
tagAssinatura: 'TEXTO', // nome da tag do xml que deve ser assinada
retorno: [
script: 'callback_assinatura', // identificador do script de callback que deve ser executado após assinar o documento/lote
parametro: 'assinado', // nome do parâmetro do tipo arquivo no script de callback que recebe o arquivo assinado
notificacao: true
],
parametros: [
original: zip
]
];
Assinador.assinar(zip, opcoes);
Múltiplos assinantes
Exemplo de script de assinatura de um documento PDF com múltiplos assinantes:
- Observação: Apenas documentos do tipo PDF podem utilizar o recurso de múltiplos assinantes.
assinar(arquivo, opcoes)
arquivo = parametros.arquivo.valor;
opcoes = [
nome: 'pdfassinado',
tipo: 'pdf',
lote: false,
assinantes: [
incluirUsuarioCorrente: true, //indica se o usuário que solicitou a execução do script deve assinar o documento
usuarios: [ // lista de assinantes
'joao',
'maria.silva'
]
],
retorno: [
script: 'callback_assinatura',
parametro: 'assinado',
notificacao: true
],
parametros: [
original: arquivo
]
];
Assinador.assinar(arquivo, opcoes);
Script de callback
O script de callback é o script executado automaticamente após a execução do script que chama a api de assinatura com Assinador.assinar(arquivo, opcoes).
Com base no script de assinatura do exemplo anterior, o script de callback deve ter dois parâmetros do tipo arquivo, que são:
- assinado: o que foi definido no script de assinatura no item retorno.parametro do objeto de opções.
- original: o que também foi definido no script de assinatura no item parametros do objeto de opções.
E por último o identificador que também foi definido no script de assinatura no item script do objeto de opções.