-
Total de ítens
86 -
Registro em
-
Última visita
Últimos Visitantes
Artur Alencar's Achievements
-
Tá na mão. ACBrBoletoRet_Credisis.pas
-
Olá pessoal. Eu postei uma dúida sobre como recuperar o xml de rettorno da API de boleto da Credisis lá no Discord, porque o pessoal do banco disse que eles enviam o boleto completo com qrcode no xml de retorno em base64. Mas olhando o xml de retorno, eu percebi que nele também vem uma tag chamada "pixCopiaCola" que vem com o mesmo link do qrcode do boleto que vem no xml. Ou seja, no xml de retorno está vindo o boleto em base64 com o qrcode e o link deste mesmo qrcode em uma tag separada. Então ao invés de usar o boleto que vem do Credisis, eu resolvi mudar a estratégia e apenas recuperar o link do pix para salvar no meu banco de dados. Vasculhei os códigos do componente para achar onde ele grava as tags de retorno e cheguei no arquivo ACBrBoletoRet_Credisis.pas. Então eu incluí neste arquivo está linha aqui: ARetornoWS.DadosRet.IDBoleto.URL := Leitor.rCampo(tcStr, 'pixCopiaCola'); O trecho de código ficou dessa forma aqui: function TRetornoEnvio_Credisis.LerRetorno(const ARetornoWS: TACBrBoletoRetornoWS): Boolean; var lXML: String; TipoOperacao : TOperacao; begin TipoOperacao := ACBrBoleto.Configuracoes.WebService.Operacao; ARetornoWS.HTTPResultCode := HTTPResultCode; ARetornoWS.JSONEnvio := EnvWs; ARetornoWS.Header.Operacao := TipoOperacao; Result := True; lXML := StringReplace(Leitor.Arquivo, 'ns1:', '', [ rfReplaceAll ]); lXML := StringReplace(lXML, C_URL_Retorno, '', [ rfReplaceAll ]); Leitor.Arquivo := lXML; Leitor.Grupo := Leitor.Arquivo; try if Leitor.rExtrai(1, 'gerarBoletosResponse') <> '' then begin ARetornoWS.DadosRet.ControleNegocial.OriRetorno := Leitor.rCampo(tcStr, 'idWeb'); ARetornoWS.DadosRet.ControleNegocial.NSU := Leitor.rCampo(tcStr, 'numeroSequencial'); ARetornoWS.DadosRet.IDBoleto.NossoNum := Leitor.rCampo(tcStr, 'nossonumero'); ARetornoWS.DadosRet.IDBoleto.LinhaDig := Leitor.rCampo(tcStr, 'linhaDigitavel'); ARetornoWS.DadosRet.IDBoleto.CodBarras := Leitor.rCampo(tcStr, 'codigoBarras'); ARetornoWS.DadosRet.IDBoleto.URL := Leitor.rCampo(tcStr, 'pixCopiaCola'); ARetornoWS.DadosRet.TituloRet.DataLimitePagto := Leitor.rCampo(tcDat, 'dataLimitePagamento'); ARetornoWS.CodRetorno := Leitor.rCampo(tcStr, 'code'); ARetornoWS.DadosRet.Excecao := Leitor.rCampo(tcStr, 'message'); end else begin if Leitor.rExtrai(1, 'buscarBoletosResponse') <> '' then begin If Leitor.rExtrai(2, 'item') <> '' then begin ARetornoWS.DadosRet.ControleNegocial.OriRetorno := Leitor.rCampo(tcStr, 'idWeb'); ARetornoWS.DadosRet.TituloRet.Sacado.CNPJCPF := Leitor.rCampo(tcStr, 'cpfCnpj'); ARetornoWS.DadosRet.IDBoleto.NossoNum := Leitor.rCampo(tcStr, 'nossonumero'); ARetornoWS.DadosRet.TituloRet.NumeroDocumento := Leitor.rCampo(tcStr, 'documento'); ARetornoWS.DadosRet.TituloRet.Parcela := Leitor.rCampo(tcInt, 'parcela'); end; end; end; except Result := False; end; end; Gostaria de saber se alguém pode validar isso pra mim, se está correto. Eu não tenho como testar aqui porque estou sem dados de alguma conta pra fazer um boleto.
-
Configurações para o Provedor da cidade de Espigão do Oeste em Rondônia [1100098] Nome=Espigao D Oeste UF=RO Provedor=Fiorilli Versao=2.00 ProRecepcionar=https://nfse.espigaodooeste.ro.gov.br/IssWeb-ejb/IssWebWS/IssWebWS?wsdl ProLinkURL=http://nfse.espigaodooeste.ro.gov.br/issweb/formGerarNF.jsf?nroNota=%NumeroNFSe%&codVerificacao=%CodVerif%&cnpj=%Cnpj%&hash=%ChaveAcesso%
-
Consumir API ScannTech - Clube de Promoções
Artur Alencar replied to marcoshmartins's tópico in Object Pascal - Delphi & Lazarus
No meu caso, eles entraram em contato com um cliente meu para perguntar se ele queria a integração. Ai o cliente passou o meu contato para este vendedor e ele começou a conversar comigo pelo telegram. Ai depois ele pediu o meu whats para passar no grupo deles que auxiliam na integração. Lá eles me mandaram os links com as documentações e ambiente de testes. Mas hoje fui tentar acessar alguns desses links e parece que não estão funcionando mais. Eles devem ter mudado a plataforma. Hoje estou na fase onde eles observam por uma ou duas semanas a integração pra ver se os dados estão chegando corretamente. Se tiver qualquer erro, eles pedem pra corrigir e atualizar e depois observam por mais duas semanas. Se ficar por duas semanas sem dar nenhum problema, ai ja vamos pra proxima fazer que é testar as promoções. Ai se der tudo certo, eles liberam pra gente poder oferecer pra qualquer cliente. Então por enquanto estou com esse sistema de integração rodando em apenas 5 clientes de teste. -
Consumir API ScannTech - Clube de Promoções
Artur Alencar replied to marcoshmartins's tópico in Object Pascal - Delphi & Lazarus
Contato direto eu não tenho, eles me colocaram em um grupo no whatsapp. Só por lá que trocamos informações. -
Consumir API ScannTech - Clube de Promoções
Artur Alencar replied to marcoshmartins's tópico in Object Pascal - Delphi & Lazarus
Acabei esquecendo de colocar como que ficou a minha estrutura do arquivo de venda Ta em aneno nesta mensagem. vendaScanNtech_267664.json -
Artur Alencar changed their profile photo
-
Consumir API ScannTech - Clube de Promoções
Artur Alencar replied to marcoshmartins's tópico in Object Pascal - Delphi & Lazarus
O link que você está usando parece estar correto. No meu caso eu não usei IdHTTP para comunicar com a API deles, eu usei mesmo o TRestRequest. Não sei qual a versão do seu delphi, mas se tiver esse componente, recomendo que use ele, é bem mais fácil de lidar do que com o IdHTTP, na minha opinião. Vou postar aqui o código que eu utilizei para enviar a venda: procedure TdmVendaScanNtech.EnviarVendaNOTA(nota: string; out erro: string); var VJSONObject: TJSONObject; vendaScanNtech :TRootDTO; begin erro := ''; rstRequest.Method := TRESTRequestMethod.rmPOST; rstRequest.Resource := '/movimientos'; MontarHeaderRequest; vendaScanNtech := MontarJSONVendaNOTA(nota); try VJSONObject := TJson.ObjectToJsonObject(vendaScanNtech); SalvarArquivo(pathLog+'\vendaScanNtech_'+nota+'.json',VJSONObject.ToString); with rstRequest.Params.AddItem do begin ContentType := TRESTContentType.ctAPPLICATION_JSON; name := 'param'; // param name Value := vJSONObject.ToString; // seu json Kind := pkREQUESTBODY; end; rstRequest.Execute; if (RESTResponse1.StatusCode = 200) or (RESTResponse1.StatusCode = 208) then //deu certo begin //por enquanto não precisa fazer nada. end else if (RESTResponse1.StatusCode >= 500) and (RESTResponse1.StatusCode <= 599) then begin erro := 'erro de comunicação com o servidor da ScanNTech:'+slinebreak+ RESTResponse1.StatusCode.ToString+'-'+RESTResponse1.Content; Log(erro); end else begin erro := 'Erro na estrutura do envio do arquivo da ScanNTech. '+slinebreak+ RESTResponse1.StatusCode.ToString+'-'+RESTResponse1.Content; Log(erro); end; finally vendaScanNtech.Free; end; Uma coisa que observei também é que o json da venda tem que ser passado como body da requisição e não como parâmetro GET / POST. Eu não sei se o idhttp identifica os parametros do método post como body ou como POST. Mas pode ser este o problema também. Espero que isso ajude quem está tentando fazer essa integração e está tendo problemas com a comunicação. -
Consumir API ScannTech - Clube de Promoções
Artur Alencar replied to marcoshmartins's tópico in Object Pascal - Delphi & Lazarus
Boa tarde colegas, Só para dar minha contribuição aqui. Eu estou homologando com a scanntech também, já tem uns dois anos que estou tentando concluir essa integração. kkkkkk. No meu caso foi por falta de tempo em me dedicar. A integração com eles exige tempo para não deixar passar nenhum detalhe. E como eles tem vários tipos de promoções diferentes, se torna bem exaustivo implementar todas no software, principalemnte se ele não foi desenvolvido inicalmente para aceitar esses tipos de promoções. Passei por algumas situações de erro 400 estes últimos meses. Então vou dar uma olhada nos arquivos que você anexou para ver se consigo ajudar. Mesmo sabendo que não vai mais continuar com a integração, mas pode ser que ajude o nosso outro camarada, ou outra pessoa que esteja pensando em integrar com eles também. Se eu descobrir o motivo do seu erro 400 ou mesmo se eue não descobrir, vou postar aqui. -
Acabou de acontecer isso com um cliente meu de SP agora. O Parâmetro do método enviar está como síncrono e mesmo assim retorna como lote recebido com sucesso. E só este cliente está com este problema. Será algo na sefaz de SP?
-
Distribuição DFe (Manifestação do Destinatário)
Artur Alencar replied to SHDW's tópico in Dúvidas Gerais sobre o ACBr
ok, obrigado por informar. -
Distribuição DFe (Manifestação do Destinatário)
Artur Alencar replied to SHDW's tópico in Dúvidas Gerais sobre o ACBr
Bom dia, eu tenho vários cliente reclamando que não conseguem mais consultar a nota e nem manifestar. Quando não da o erro 2216 - Falha ao consultar DF-e fica dando o timeout. Alguém sabe me dizer se tem algum problema na SEFAZ? Porque os cliente estão perguntando os contadores deles, e eles estão dizendo que está tudo normal (com isso passando a bola para o sistema). -
Onde Colocar local da prestação de serviço no RPS ?
Artur Alencar replied to Artur Alencar's tópico in ACBrNFSe
Então, eu tinha até colocado lá, mas quando eu ia imprimir a nota no site da prefeitura, a informação não ia, continuava com o município do emissor. -
Onde Colocar local da prestação de serviço no RPS ?
Artur Alencar replied to Artur Alencar's tópico in ACBrNFSe
Ah sim! Desculpe, falha minha. A cidade é Ouro Preto do Oeste em Rondônia e o provedor é Fiorilli. -
Onde Colocar local da prestação de serviço no RPS ?
um tópico no fórum postou Artur Alencar ACBrNFSe
Bom dia pessoal, eu estou com uma dúvida aqui, tentei pesquisar no fórum mas não achei outro tópico que me respondesse isso. Eu tenho um cliente que quer que na impressão da NFSe (e acredito que vai ter que constar no xml também), o local de prestação do serviço seja no município do cliente para quem ele está prestando o serviço. Eu já coloquei para que o codigo ibge dos dados do tomador seja o do município do cliente, mas mesmo assim, sempre aparece o municipio da propria empresa que está prestando o serviço. Sabem me dizer onde no xml eu tenho que colocar esta informação para que apareça na impressão do site da prefeitura corretamente? -
Deu certo! Era isso mesmo, fui no ini e coloquei todas as assinaturas para zero, ai enviou. Agora deu esta mensagem aqui: Lote j? processado. Atribua um novo n?mero ao lote de RPS, caso os RPS nele contidos ainda n?o tenham sidos processados. Regime Especial de Tributa??o n?o informado para optante do simples nacional. Quando a empresa prestadora do servi?o for optante pelo simples nacional informe "05" MEI ou "06" ME/EPP. Quando a empresa prestadora do servi?o for optante pelo simples nacional informe "05" MEI ou "06" ME/EPP. O que eu achei estranho na mensagem é que no manual da Fiorilli diz que não é preciso preencher o Regime Especial quando for enviado em ambiente de homologação. Mas deu a mensagem pedindo a informação kkkkkk. Vou preencher aqui e ver no que que dá. Obrigado pela ajuda @BigWings
