O Componente NFC-e da Tecnospeed é um aplicativo Android projetado para simplificar a emissão da Nota Fiscal de Consumidor Eletrônica (NFC-e). Este componente oferece uma biblioteca de comunicação altamente eficiente, que torna a integração da NFC-e uma tarefa descomplicada para os clientes.
Para começar a usar este componente em seu aplicativo, basta instanciá-lo em seu projeto e implementar os métodos necessários de acordo com suas necessidades específicas. Este artigo fornece todas as informações necessárias para baixar o componente e orienta você na implementação de métodos para emitir e imprimir notas fiscais eletrônicas de forma incrivelmente simples.
Siga os passos fornecidos aqui para facilitar o processo de emissão de NFC-e em seu aplicativo Android.
1. Instalação - Componente NFC-e Android
2. Instanciar - Componente NFC-e Android
3. Propriedades - Componente NFC-e Android
4. Métodos - Componente NFC-e Android
Configurações
Fluxo de Emissão
Utilitários
Impressão
1. Criação de conta TecnoAccount - Instalação. - Componente NFC-e Android!
a) Conta TecnoAccount
O primeiro passo, é realizar a criação da sua Conta TecnoSpeed. Ela permite gerenciar as configurações e ferramentas para acessar os nossos produtos e serviços em um único lugar, de forma simples e fácil.
Após se cadastrar, você poderá visualizar o seu Token. Juntamente com o seu CNPJ ou CPF, este Token será utilizado para se autenticar na maioria de nossos serviços.
O Token juntamente com o CNPJ ou CPF será utilizado no método configurarSoftwareHouse, onde você deve passar ambos como parâmetro, eles também servem para autenticar a requisição caso utilize nossa API para o envio das informações.
Acesse a sua Conta TecnoSpeed >
b) Download da versão
Após aprovação do pedido de adesão, em até 24 horas úteis, nossa equipe financeira irá realizar o faturamento e disponibilizar o Componente NFC-e Android para download na Central do Cliente. Você pode acessar a Central do Cliente com os dados de acesso que você preencheu no formulário de registro.
Com o componente já disponível, na aba lateral Download, clique no botão Baixar. Caso o download não inicie, desabilite o bloqueador de pop-ups do seu navegador.
c) Instalação da biblioteca de integração (AAR)
Após realizado o download da versão, vamos realizar a instalação da biblioteca em seu projeto. Adicionando-a como uma dependência.
- Para manter uma padronização vamos adicionar o arquivo (.aar) baixado em uma pasta especifica do projeto android a pasta "libs". Caminho da pasta (app/libs).
-
Agora no arquivo build.gradle (Module) vamos adicionar a implementação do arquivo copiado.
Após abrir este arquivo adicione o seguinte código no bloco "dependencies":dependencies { ... //Importação da biblioteca implementation files('libs/lib_nfce_tecnoaccount_1.0.0.0.aar'); *Atenção Sempre valide a importação da biblioteca, verifique se a versão da importação é a mesma versão que está na pasta libs do componente. Exemplo: Pasta libs está com a versão: lib_nfce_tecnoaccount_1.0.0.2.aar, no arquivo gradle, tem que estar com a mesma versão. //Pacotes necessários para o funcionamento da biblioteca implementation 'com.fasterxml.jackson.core:jackson-core:2.12.5' implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.5' implementation 'com.fasterxml.jackson.core:jackson-annotations:2.12.5' }
d) Instalação da aplicação do Componente (APK v1.0 obsoleto. Optar pelo SDK v2.0 que elimina a necessidade do .apk)
Após a configuração de biblioteca no projeto, vamos realizar a instalação do componente (APK) no aparelho. Para seguir este passo será necessário um gerenciador de arquivos no aparelho.
Com o (APK) baixado da central do cliente vai ser necessário enviar este APK para o aparelho. Obs: Salve em uma pasta de fácil localização.
Nesse exemplo vamos utilizar o APK salvo na pasta Downloads do aparelho.
Execute a instalação padrão da APK.
2. Instanciar - Componente NFC-e Android
Finalizado a instalação do componente no aparelho, agora é necessário realizar a instanciação da classe utilizando nossa biblioteca de integração.
Java - Android Studio
Comece importando nosso pacote no seu projeto, assim você terá acesso à classe.
import com.tecnospeed.nfce.core.TspdNFCe;Com o import realizado, você pode criar uma instância da classe como mostrado abaixo:
// Cria uma instância do objeto TspdNFCe.
TspdNFCe nfce = new TspdNFCe(this);Para o correto funcionamento dessa classe, precisamos realizar algumas configurações para receber corretamente o retorno das chamadas dos métodos.
// Declaração de um objeto para iniciar atividades com resultados.
ActivityResultLauncher<Intent> launcher;
// Registra um contrato para iniciar uma atividade para resultados de alguma operação (neste caso, NFCe).
launcher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
nfce::onResult);
// Define o "launcher" para processar os resultados da atividade.
nfce.setLauncher(launcher);
// Define o nome do pacote da aplicação que esta implementando a biblioteca de integração.
// Utilize o nome do pacote de sua aplicação
nfce.setAppPackageName("com.seu.pacote");** Atenção: Substitua "com.seu.pacote" pelo nome do seu pacote.
É necessário realizar o import dos seguintes packages:
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;Após esses passos vamos realizar uma configuração do provider para funcionar o metódo que faz a configuração do certificado digital no AndroidManifest.xml do projeto.
Insira o código abaixo na tag "application".
<application
...>
...
<provider
android:name="com.tecnospeed.nfce.core.TspdCertificateContentProvider"
android:authorities="com.seu.pacote.provider"
android:exported="true" />
</application>** Atenção: Substitua "com.seu.pacote" pelo nome do seu pacote.
3. Propriedades - Componente NFC-e Android
Para preparar o componente, podemos ajustá-lo usando as configurações listadas na tabela abaixo.
| Nome na classe | Descrição | Valor |
| VersaoManual | Versão de Manual da Nota Técnica | VersaoManual.vm60 |
| Ambiente | Determina ao Componente o servidor com o qual deverá interagir (Homologação ou Produção). | Ambiente.HOMOLOGACAO, Ambiente.PRODUCAO |
| CNPJ | Propriedade que recebe o CNPJ do Emitente do NFC-e. | 88895624000165 |
| IdTokenCSC | IdTokenCSC - Cada token possui associado um código sequencial de identificação (IdToken) de 6 dígitos para facilitar a identificação do respectivo token e validação do QR Code pelo Fisco quando da realização da consulta pelo consumidor. | 000001 |
| TokenCSC | TokenCSC - O token corresponde a um código de segurança alfanumérico de conhecimento apenas da Secretaria da Fazenda do Estado do emitente e do próprio contribuinte. Desta forma é possível garantir a autoria do DANFCE NFC-e e do respectivo QR Code, pois somente o Fisco e o contribuinte emissor conhecem o valor válido do token para aquela empresa no Estado. | |
| SenhaCertificado | Propriedade que recebe a senha do certificado digital | |
| ModeloImpressora | Propriedade que recebe o modelo da impressora | LEOPARDO_A7 QUIOSQUE_K2 EPSON_TM_P80 CIELO_LIO REDE_L400 |
| PortaComunicacao |
Propriedade que recebe a porta de comunicação da impressora* *Atualmente recebe o valor da porta bluetooth da impressora |
11:22:6C:D4:3F:44 |
| CaminhoCertificado | Propriedade que recebe o caminho onde está o arquivo pfx. Com isso, não seria necessário a instalação do certificado, mas para isso acontecer, a propriedade HttpLibs precisa estar exatamente assim: HttpLibs=sbb |
/storage/emulated/0/Download/certificado-componente.pfx |
| DiretorioLog | Propriedade que recebe o diretorio onde serão salvos os arquivos de log de comunicação com sefaz | /storage/emulated/0/Download/log |
| DiretorioXmlDestinatario | Diretório completo onde estão contidos os XMLs de destinatário autorizados/cancelados usados para impressão de NFC-e, e também XMLs destinatários de inutilização. | /storage/emulated/0/Download/xml |
4. Métodos - Componente NFC-e Android
A biblioteca de integração possui os seguintes métodos que faz a mensageria de comunicação com a SEFAZ, segue abaixo os métodos:
Configurações
Fluxo de Emissão
Utilitários
Impressão
Arquivo de Integração
Nossa forma de integração é através de um arquivo de texto conhecido como TX2, que é um padrão de comunicação criado pela TecnoSpeed. Esta será a forma de integração para gerar o xml da NFC-e e realizar o envio.
Para mais informações sobre como gerar esse arquivo de integração acesse aqui.
Retorno dos métodos
Por se tratar de uma comunicação de forma assíncrona entre a biblioteca de integração e o nosso componente, precisamos trabalhar com o retorno do tipo CompletableFuture, ou seja, ele faz com que ao ser chamado um método a resposta dele só ocorre após o final do processamento.
Para receber a resposta, precisamos utilizar o ".thenAccept" e tratar o retorno de sucesso. Já quando ocorrer uma situação de erro no método este retorno deve ser tratado com o ".exceptionally". Nos métodos abaixo será possível ver a chamada e esse tratamento de forma mais especifica.
Exemplo
nfce.converterLoteParaXml(tx2, "pl_009g")
.thenAccept(result -> {
Log.d("nfce", "Resultado converter lote para xml: " + result);
})
.exceptionally(error -> {
Log.d("nfce", "Error: " + error.getCause().getMessage());
});
* O método configurarSoftwareHouse ele é utilizado na configuração do componente, por isso o retorno dele é diferente dos outros métodos.
Comentários
0 comentário
Por favor, entre para comentar.