- 4. Gerar o XML da DC-e
4.11. QRCode - 4.10. Declaração do usuário emitente
« Anterior - 4.12. Consolida DC-e
Próximo »
4.11. QRCode
Funcionalidade para gerar QR code de consulta da DC-e
Assinatura
string infDCeSupl(string urlQRCode, string urlConsulta, string chaveDCe, int tpAmb, string CNPJ,string CPF,string idOutros,string nomeCertificado, out string qrCode, out int resultado, out string msgResultado)
Descrição:
Funcionalidade para gerar o grupo de informações da URL de consulta da DC-e. O indicador tpEmis da chave de acesso informada é utilizada para gerar o QRCode normal ou de contingência (tpEmis=9).
Parâmetros:
nome | tipo | tam. | obrig. | descrição |
---|---|---|---|---|
urlQRCode | string | - | sim | informar a URL de consulta da DC-e da UF para gerar o QR-Code, consulte: https://dfe-portal.svrs.rs.gov.br/dce/Servicos |
urlConsulta | string | - | sim | informar a URL de consulta da DC-e pela chave de acesso da UF, consulte: https://dfe-portal.svrs.rs.gov.br/dce/Servicos |
chaveDCe | string | 44 | sim | informar a chave de acesso da DC-e |
tpAmb | int | - | sim | informar o tipo Ambiente: 1 - produção / 2 - homologação |
CNPJ | string | 14 | sim | informar o CNPJ quando o usuário emissor for pessoa jurídica com CNPJ. |
CPF | string | 11 | sim | informar o CPF quando o usuário emissor for pessoa física com CPF. |
idOutros | string | 2-60 | sim | informar uma identificação quando o usuário emissor não for obrigado a inscrição do CPF ou CNPJ. |
nomeCertificado | string | - | sim | informar nome do titular do certificado a ser utilizado na conexão SSL com o WS: É permitido o uso do certificado digital que tenha o mesmo CNPJ base (oito primeiros dígitos do CNPJ) do emissor do MDF-e. 1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS". 2. informar: NUMEROSERIE|[número de série] quando não seja possível localizar o certificado digital pelo assunto; 3. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: "ARQUIVO|c:\certificado.pfx|senha". 4. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:"CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha". |
qrCode | string | - | saída | retorna a string do qrCode que deve ser gerado no DADCe |
resultado | int | - | saída | retorna o código do resultado da geração do qrCode = 6200 |
msgResultado | string | - | saída | retorna a literal do resultado da geração do qrCode = 6200 - qrCode gerado com sucesso |
Diagrama:
Retorno:
Um string com o grupo XML do Grupo informações suplementares da DC-e
código | Mensagem |
---|---|
6200 | qrCode gerado com sucesso |
6201 | Erro: O parâmetro versao não foi informado |
6202 | Erro: O conteúdo do parâmetro versao informado é inválido: [valor informado], a DLL espera: [valor esperado] |
6203 | Erro: O parâmetro chaveDCe não informado |
6204 | Erro: O tamanho [tamanho] do parâmetro chaveDCe informado não tem 44 caracteres |
6205 | Erro: As posições correspondentes (1,2) ao código da UF [valor informado] do parâmetro chaveDCe não é um código de UF válido |
6206 | Erro: O nome do titular do certificado deve ser informado |
6207 | Erro: O parâmetro tipoAmbiente deve ser informado |
6208 | Erro: O parâmetro tipoAmbiente [valor informado] deve ser 1 ou 2 |
6209 | Erro: O parâmetro siglaWS deve ser informado |
6210 | Erro: O parâmetro CPF ou CNPJ ou idOutros deve ser informado quando tpEmis= 9-Contigência OFF-LINE da DCe |
6211 | Erro: O parâmetro urlConsulta deve ser informado |
6212 | Erro: O parâmetro urlQRCode deve ser informado |
XML:
Exemplo de XML - DC-e emissão normal
<infDCeSupl> <qrCodDCe><![CDATA[https://www.fazenda.pr.gov.br/dce/qrcode?chDCe=35250410142785000190990010000000071086438399&tpAmb=2]]></qrCodDCe> <urlChave>https://www.fazenda.pr.gov.br/dce/qrcode</urlChave> </infDCeSupl>
Exemplo de XML - DC-e emissão contingência
<infDCeSupl> <qrCodDCe><![CDATA[https://www.fazenda.pr.gov.br/dce/qrcode?chDCe=35250410142785000190990010000000079086438399&tpAmb=2&CNPJ=00000000000191&sign=RkQIxd+IVFxCZeFfMUq2bwkfjTGT9SuVZwWa6bgjFUT/RQeYc/j8mOG632vieuzcSW2SNBFBzTZMbv5hGi3eRnaFBHv0Gmck0Lu3OGyHk4Pap805b+ymc1wNRTlofumwaDJo/XT1xAFLPSSfMflHgF7zigk6E9r0jaxWVStQk4B015p8qpi2HdZKlDf1UdkSDALqb3juyCC2tELFyqFizSVJVJe0LfdWFA2VG5EsqibsBdHici1ttsSyDqlfaBdN4+WqqYkHLcUl/qkyYUM/gd23zK3240ENbsHn5Um2LCdSrIq02NuvCXS2S5HZ6YOC2aaAoGeh4zw6mu4oDULAow==]]></qrCodDCe> <urlChave>https://www.fazenda.pr.gov.br/dce/qrcode</urlChave> </infDCeSupl>>
Importante
O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.
Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.
Exemplos de uso:
Visual Basic 6.0
' declara e instancia DLL Dim objDCeUtil As Object Set objDCeUtil = CreateObject("DCe_Util.Util") ' declarar parâmetros Dim infDCeSupl As String Dim infDCeSupl_urlQRCode As String Dim infDCeSupl_urlConsulta As String Dim infDCeSupl_chaveDCe As String Dim infDCeSupl_tpAmb As Long Dim infDCeSupl_CNPJ As String Dim infDCeSupl_CPF As String Dim infDCeSupl_idOutros As String Dim infDCeSupl_nomeCertificado As String Dim infDCeSupl_QRCode As String Dim resultado As Long Dim msgResultado As String ' inicializa parâmetros infDCeSupl_urlQRCode = "https://www.fazenda.pr.gov.br/dce/qrcode" infDCeSupl_urlConsulta = "https://www.fazenda.pr.gov.br/dce/qrcode" infDCeSupl_chaveDCe = "35250410142785000190990010000000071086438399" infDCeSupl_tpAmb = 2 infDCeSupl_CNPJ = "00000000000191" infDCeSupl_CPF = "" infDCeSupl_idOutros = "" infDCeSupl_nomeCertificado = "CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=20085105000106, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR" infDCeSupl_QRCode = "" resultado = 0 msgResultado = "" ' infDCeSupl = objDCeUtil.infDCeSupl(infDCeSupl_urlQRCode, _ infDCeSupl_urlConsulta, _ infDCeSupl_chaveDCe, _ infDCeSupl_tpAmb, _ infDCeSupl_CNPJ, _ infDCeSupl_CPF, _ infDCeSupl_idOutros, _ infDCeSupl_nomeCertificado, _ infDCeSupl_QRCode, _ resultado, _ msgResultado) MsgBox "grupo infDCeSupl " + infDCeSupl, vbInformation, "Resultado"
- 4.11. QRCode
4. Gerar o XML da DC-e - « Anterior
4.10. Declaração do usuário emitente - Próximo »
4.12. Consolida DC-e