Módulo satcfe.resposta.padrao

class satcfe.resposta.padrao.RespostaSAT(**kwargs)

Base para representação de respostas das funções da biblioteca SAT. A maior parte das funções SAT resultam em respostas que contém um conjunto padrão de atributos (veja o atributo CAMPOS), descritos na ER SAT:

numeroSessao (int)
EEEEE (unicode)
mensagem (unicode)
cod (unicode)
mensagemSEFAZ (unicode)

Além dos atributos padrão, a resposta deverá conter uma referência para o nome da função SAT a que a resposta se refere e ao conteúdo original da resposta, através dos atributos:

resposta.atributos.funcao
resposta.atributos.verbatim

Esta classe fornece uma série de métodos construtores (factory methods) para respostas que são comuns. Para as respostas que não são comuns, existem especializações desta classe.

CAMPOS = (('numeroSessao', <type 'int'>), ('EEEEE', <type 'unicode'>), ('mensagem', <type 'unicode'>), ('cod', <type 'unicode'>), ('mensagemSEFAZ', <type 'unicode'>))

Campos padrão esperados em uma resposta e a sua função de conversão para o tipo Python, a partir da resposta original (unicode).

static associar_assinatura(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função associar_assinatura().

static atualizar_software_sat(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função atualizar_software_sat().

static bloquear_sat(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função bloquear_sat().

static comunicar_certificado_icpbrasil(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função comunicar_certificado_icpbrasil().

static configurar_interface_de_rede(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função configurar_interface_de_rede().

static consultar_sat(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função consultar_sat().

static desbloquear_sat(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função desbloquear_sat().

static trocar_codigo_de_ativacao(retorno)

Constrói uma RespostaSAT para o retorno (unicode) da função trocar_codigo_de_ativacao().

satcfe.resposta.padrao.analisar_retorno(retorno, classe_resposta=<class 'satcfe.resposta.padrao.RespostaSAT'>, campos=(('numeroSessao', <type 'int'>), ('EEEEE', <type 'unicode'>), ('mensagem', <type 'unicode'>), ('cod', <type 'unicode'>), ('mensagemSEFAZ', <type 'unicode'>)), campos_alternativos=[], funcao=None, manter_verbatim=True)

Analisa o retorno (supostamente um retorno de uma função do SAT) conforme o padrão e campos esperados. O retorno deverá possuir dados separados entre si através de pipes e o número de campos deverá coincidir com os campos especificados.

O campos devem ser especificados como uma tupla onde cada elemento da tupla deverá ser uma tupla contendo dois elementos: o nome do campo e uma função de conversão a partir de uma string unicode. Por exemplo:

>>> retorno = '123456|08000|SAT em operacao||'
>>> resposta = analisar_retorno(retorno, funcao='ConsultarSAT')
>>> resposta.numeroSessao
123456
>>> resposta.EEEEE
u'08000'
>>> resposta.mensagem
u'SAT em operacao'
>>> resposta.cod
u''
>>> resposta.mensagemSEFAZ
u''
>>> resposta.atributos.funcao
'ConsultarSAT'
>>> resposta.atributos.verbatim
'123456|08000|SAT em operacao||'
Parâmetros:
  • retorno (unicode) – O conteúdo unicode da resposta retornada pela função da DLL SAT.
  • classe_resposta (type) – O tipo RespostaSAT ou especialização que irá representar o retorno, após sua decomposição em campos.
  • campos (tuple) – Especificação dos campos (nomes) e seus conversores a a partir do tipo unicode.
  • campos_alternativos (list) – Especifica conjuntos de campos alternativos que serão considerados caso o número de campos encontrados na resposta não coincida com o número de campos especificados em campos. Para que a relação alternativa de campos funcione, é importante que cada relação de campos alternativos tenha um número diferente de campos.
  • funcao (str) – Nome da função da DLL SAT que gerou o retorno, que estará disponível nos atributos adicionais à resposta.
  • manter_verbatim (bool) – Se uma cópia verbatim da resposta deverá ser mantida nos atributos adicionais à resposta.
Levanta ErroRespostaSATInvalida:
 

Se o retorno não estiver em conformidade com o padrão esperado ou se não possuir os campos especificados.

Retorna:

Uma instância de RespostaSAT ou especialização.

Tipo de retorno:
 

satcfe.resposta.padrao.RespostaSAT