rVenda_ConsultarPorChave¶
Realiza uma consulta de NFC-e no servidor do NFePack por uma chave de NFC-e
Método¶
int CALL rVenda_ConsultarPorChave(emissor_nfce* e, const char* chave, char* situacaoOperacao, char* status, char* protocolo, char* digval, char* urlConsulta, char* codigoErro, char* descricaoErro, char* podeReutilizarNumero, const char* reservado1, const char* reservado2, const char* reservado3, const char* reservado4, const char* reservado5);
Parâmetros¶
Nome | Descrição |
---|---|
e
|
Handle para o emissor_nfce
|
chave
|
Chave da NFC-e a ser consultada.
|
situacaoOperacao
|
O Buffer que receberá a Situação da Operação da NF-e
1 - Sucesso
2 - Erro
3 - Denegada
4 - Sem Valor - Cancelada ou Inutilizda
5 - Não Localizada
6 - Em Processamento
7 - Necessita Dados Contingencia
(2 Caracteres máx.).
|
status
|
O Buffer que receberá o status da NFC-e contido no servidor do NFePack (2 Caracteres máx.)
|
protocolo
|
O Buffer que receberá o protocolo da NFC-e (15 Caracteres máx.)
|
digval
|
O Buffer que receberá o DigVal da NFC-e (28 Caracteres máx.)
|
urlConsulta
|
O Buffer que receberá a url de consulta da NFC-e (640 Caracteres máx.)
|
codigoErro
|
O Buffer que contém a código do erro. (5 Caracteres máx.)
|
descricaoErro
|
O Buffer que contém a descrição da rejeição, quando a NF-e está rejeitada. (510 Caracteres máx.)
|
podeReutilizarNumero
|
O Buffer que contém a indicação se é possível reutilizar o número, quando não controlado pelo NFCePack (0: Não pode, 1; Pode)
|
reservado1
|
Reservado para uso futuro
|
reservado2
|
Reservado para uso futuro
|
reservado3
|
Reservado para uso futuro
|
reservado4
|
Reservado para uso futuro
|
reservado5
|
Reservado para uso futuro
|
Retornos¶
Codigo | Descrição |
---|---|
1 | OK |
10311 | Erro inesperado ao consultar a nota. |
10315 | Problema na comunicação com o servidor. (Uma reconsulta pode resolver o problema) |
10205 | Erro ao processar resposta do web service de integracação. (versões do agente e retaguarda incompatíveis pode ocasionar este problema) |
10318 | Falha na rotina da retaguarda (parâmetros de erro serão preenchidos com o erro da retaguarda) |
Exemplos¶
//-------------Exemplo Simples------------
char[] situacaoOperacao = new char[2+1];
char[] status = new char[2+1];
char[] protocolo = new char[15+1];
char[] digVal = new char[28+1];
char[] codigoErro = new char[5+1];
char[] descricaoErro = new char[512+1];
char[] podeReutilizarNumero = new char[1+1];
char[] urlConsulta = new char[640+1];
int retorno = rVenda_ConsultarPorChave( handleEmissor,
"41141275587915019325650010000000011123347210",
situacaoOperacao,
status, protocolo,
digVal,
urlConsulta,
codigoErro,
descricaoErro,
podeReutilizarNumero,
"", "", "","", "");
//situacaoOperacao terá o valor "1"
//status terá o valor "6"
//protocolo terá o valor "113140003271818"
//digVal terá o valor "TS0tq6wlCpixyYknPEPqG4Cutas="
//codigoErro terá o valor ""
//descricaoErro terá o valor ""
//podeReutilizarNumero terá o valor "0"
//urlConsulta terá o valor "http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp\?chNFe=13141275587915020765650030000000221431581874&nVersao=100&tpAmb=2&cDest=99999999000191&dhEmi=323031342d31322d30395431313a33363a31382d30323a3030&vNF=1548.00&vICMS=0.00&digVal=394d5a677479476d52576e5975593563446d357751656f427847303d&cIdToken=000001&cHashQRCode=4194233056880a9a2650c3e0d6e5738f658f92ba"
//-------------Exemplo com tratamentos-------------
int numeroDeTentativas = 3;
int retorno = 0;
for(int i = 0; i < numeroDeTentativas; i++) {
retorno = rVenda_ConsultarPorChave( handleEmissor,
"41141275587915019325650010000000011123347210",
situacaoOperacao,
status,
protocolo,
digVal,
urlConsulta,
codigoErro,
descricaoErro,
podeReutilizarNumero,
"", "", "","", "");
if(retorno == 1) break;
sleep(2);
}
if(retorno == 1) {
tratar_resposta();
//se não encontrar a chave da nota para o identificador o retorno é '1' e a situacaoOperacao é '5'
}
else {
tratar_quando_nao_consegue_consultar();
}