Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2192 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá pessoal, dia 05/11 o DataSus informou uma mudança no seu endereço de webservice para as autorizações da Farmácia Popular. o wsdl novo é https://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl (Homologação)

Minha pergunta é para quem trabalha com isso está conseguindo consumir o ws com este novo endereço? Eu não consigo, simplesmente dá um excetion com ""Line: 2
<p>Hi there, this is an AXIS service!</p"
.

Com o endereço antigo funciona OK.

Obrigado por qualquer ajuda.

  • Membros Pro
Postado (editado)
Boa tarde.
 
Mesmo erro aqui comigo.
 
Para atender a alteração de webservice:
 
 
2. Baixei o novo pacote do GBAS e substitui o antigo;
 
3. Gerei nova identificação do terminal e exclui / recadastrei no site da farmácia;
 
Se testo pelo webservice antigo passa normalmente, mas pelo novo me retorna o mesmo erro Line: 2<p>Hi there, this is an AXIS service!</p".
 
Também mandei e-mail para o suporte do Farmacia Popular e no caso de novidades posto aqui.
Editado por marcellocainelli
Postado

Olá Pessoal, a solução é a seguinte:

-> O WSDL está errado no final, onde tem a URL.

Então é necessário alterar o .pas gerado e na "function GetServicoSolicitacaoWS", na URL e colocar "HTTPS", pois o Delphi vai gerar sempre com "HTTP" (pelo fato de estar errado lá..).

Abraços.

Postado

Bom dia a todos..

Fiz todos os procedimentos que o marcellocainelli e Rafael Sartori relataram, mas quando realizo uma solicitação no novo DNS retorna o seguinte erro:

 ESOAPHTTPException - O identificador não está no estado correto para a operação solicitada - URL:http://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS - SOAPAction:""

Alguns de vocês está passando por este problema?

Postado

Não consegui resolver no meu

poderiam me dar o exemplo do .pas e da inicialização que vocês usaram

já tentei de tudo e não consegui

 

Em 09/11/2018 at 13:45, Kizzy Kissi disse:

Também consegui mudando o .pas, mas precisei mudar a inicialização do WS.

 

Em 09/11/2018 at 08:23, Emersson A Pereira disse:

Consegui resolver...

Como o Rafael Sartori disse tem que baixar o WSDL e editar, pois se passar como parametro do WSDLLocation está "errado" lá.

Obrigado...

 

Postado
7 minutos atrás, Márcio Mello disse:

Não consegui resolver no meu

poderiam me dar o exemplo do .pas e da inicialização que vocês usaram

já tentei de tudo e não consegui

 

 

 

function GetServicoSolicitacaoWS(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ServicoSolicitacaoWS;
const
  defWSDL = 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl';
  defURL  = 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS';
  defSvc  = 'ServicoSolicitacaoWSService';
  defPrt  = 'ServicoSolicitacaoWS';

Ai está como deve ficar, na constante "defURL" tem que colocar o "https"...

 

Postado
1 hora atrás, Márcio Mello disse:

Não consegui resolver no meu

poderiam me dar o exemplo do .pas e da inicialização que vocês usaram

já tentei de tudo e não consegui

 

 

 

Ex: 

procedure TNgFciaPopular.setAmbiente;
var
  sUrl: string;
    WS_FciaPopular: ServicoSolicitacaoWS;
begin
    sUrl := 'https://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl';
    WS_FciaPopular:= GetServicoSolicitacaoWS(false,sUrl,nil);
end;

Tive que mudar para UseWSDL para false;

 

 

Postado
1 hora atrás, Kizzy Kissi disse:

Ex: 

procedure TNgFciaPopular.setAmbiente;
var
  sUrl: string;
    WS_FciaPopular: ServicoSolicitacaoWS;
begin
    sUrl := 'https://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl';
    WS_FciaPopular:= GetServicoSolicitacaoWS(false,sUrl,nil);
end;

Tive que mudar para UseWSDL para false;

 

 

 

3 horas atrás, Rafael Sartori disse:

function GetServicoSolicitacaoWS(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ServicoSolicitacaoWS;
const
  defWSDL = 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl';
  defURL  = 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS';
  defSvc  = 'ServicoSolicitacaoWSService';
  defPrt  = 'ServicoSolicitacaoWS';

Ai está como deve ficar, na constante "defURL" tem que colocar o "https"...

 

tinha que colocar realmente o hhtps

mas se nao passar o useWSDL para false não funciona

problema resolvido

obrigado pessoal

 

 

  • Curtir 1
Postado
1 hora atrás, carlos vilanova disse:

Bom dia, eu fiz as alterações que vcs postaram aqui, mais no meu caso continua dando erro, segue abaixo imagem do erro se alguém puder me ajudar.

erro pre-venda farmacia popular.jpg

Se vc não corrigir o .pas e colocar o "HTTPS" irá dar exatamente este erro.

Postado

Boa tarde, eu já fiz essa alteração de colocar o S no HTTP.

Segue abaixo o .pas que estou usando.

Aqui os parâmetros que estou usando:

    HTTPRIO1.URL                     := 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS';
    HTTPRIO1.WSDLLocation  := 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl';
    HTTPRIO1.Service               := 'ServicoSolicitacaoWSService';
    HTTPRIO1.Port                    := 'ServicoSolicitacaoWS';
    wDaTaSUS                            := HTTPRIO1 AS ServicoSolicitacaoWS;

 

ServicoSolicitacaoWS1.pas

Postado
1 hora atrás, carlos vilanova disse:

Boa tarde, eu já fiz essa alteração de colocar o S no HTTP.

Segue abaixo o .pas que estou usando.

Aqui os parâmetros que estou usando:

    HTTPRIO1.URL                     := 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS';
    HTTPRIO1.WSDLLocation  := 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl';
    HTTPRIO1.Service               := 'ServicoSolicitacaoWSService';
    HTTPRIO1.Port                    := 'ServicoSolicitacaoWS';
    wDaTaSUS                            := HTTPRIO1 AS ServicoSolicitacaoWS;

 

ServicoSolicitacaoWS1.pas

Boa tarde, 

também estou com o mesmo problema, meus parâmetros e minha ServicoSolicitacaoWS1.pas estão exatamente iguais a sua.

Mesmo colocando o S no HTTP, não vai, continua a mensagem:
O identificador não está no estado correto para a operação solicitada - URL:http://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS - SOAPAction:"" 

No initialization da ServicoSolicitacaoWS1.pas tem essa função abaixo:
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ServicoSolicitacaoWS), '');

Onde realmente o parâmetro está vazio, porém tentei colocar o endereço do WebService (http://service.datasus.org/) e nada.

Caso tenha ou alguém ai possa nos ajudar com a solução, agradeço.

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Postado
23 minutos atrás, FocusRJ disse:

Boa tarde, 

também estou com o mesmo problema, meus parâmetros e minha ServicoSolicitacaoWS1.pas estão exatamente iguais a sua.

Mesmo colocando o S no HTTP, não vai, continua a mensagem:
O identificador não está no estado correto para a operação solicitada - URL:http://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS - SOAPAction:"" 

No initialization da ServicoSolicitacaoWS1.pas tem essa função abaixo:
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ServicoSolicitacaoWS), '');

Onde realmente o parâmetro está vazio, porém tentei colocar o endereço do WebService (http://service.datasus.org/) e nada.

Caso tenha ou alguém ai possa nos ajudar com a solução, agradeço.

Vc viu a sua mensagem de erro? 

-> O identificador não está no estado correto para a operação solicitada - URL:http://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS - SOAPAction:"" 

Alí está  "http..." tem alguma coisa errada no seu fonte que ele está chamando http ao invés de https

Abraços

 

Postado (editado)
12 minutos atrás, Rafael Sartori disse:

Vc viu a sua mensagem de erro? 

-> O identificador não está no estado correto para a operação solicitada - URL:http://farmaciapopular-autorizador-homologacao.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS - SOAPAction:"" 

Alí está  "http..." tem alguma coisa errada no seu fonte que ele está chamando http ao invés de https

Abraços

 

 

2 horas atrás, carlos vilanova disse:

Boa tarde, eu já fiz essa alteração de colocar o S no HTTP.

Segue abaixo o .pas que estou usando.

Aqui os parâmetros que estou usando:

    HTTPRIO1.URL                     := 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS';
    HTTPRIO1.WSDLLocation  := 'https://farmaciapopular-autorizador.saude.gov.br/farmaciapopular-autorizador/services/ServicoSolicitacaoWS?wsdl';
    HTTPRIO1.Service               := 'ServicoSolicitacaoWSService';
    HTTPRIO1.Port                    := 'ServicoSolicitacaoWS';
    wDaTaSUS                            := HTTPRIO1 AS ServicoSolicitacaoWS;

 

ServicoSolicitacaoWS1.pas

@Rafael Sartori tinha percebido sim, porém não sabia o pq.
Parece que consegui resolver aqui da seguinte forma: Na linha wDaTaSUS := HTTPRIO1 AS ServicoSolicitacaoWS, mudei para wDaTaSUS := GetServicoSolicitacaoWS(False,'', HTTPRIO1);
Assim este erro parou, isso pode até ajudar o nosso amigo ai @carlos vilanova

Porém agora estou com problemas de erro:  50S - Solicitação não autorizada. Computador não autorizado a realizar transações por esta farmácia. Necessário acessar o portal da farmácia para cadastrar este computador.

Mesmo eu usando o GBAS que baixei no site, usando o aplicativo deles que já gera o texto pra cadastrar ou até mesmo o meu, não está indo.

Vc tem alguma sugestão pra mim?

To fazendo tentativas aqui, caso consiga informo aqui pra todos.

Obrigado, Abraços

Editado por FocusRJ

"Não me envergonho de mudar de opinião, porque não me envergonho de pensar" (Blaise Pascal)

Postado
5 minutos atrás, FocusRJ disse:

 

@Rafael Sartori tinha percebido sim, porém não sabia o pq.
Parece que consegui resolver aqui da seguinte forma: Na linha wDaTaSUS := HTTPRIO1 AS ServicoSolicitacaoWS, mudei para wDaTaSUS := GetServicoSolicitacaoWS(False,'', HTTPRIO1);
Assim este erro parou, isso pode até ajudar o nosso amigo ai @carlos vilanova

Porém agora estou com problemas de erro:  50S - Solicitação não autorizada. Computador não autorizado a realizar transações por esta farmácia. Necessário acessar o portal da farmácia para cadastrar este computador.

Mesmo eu usando o GBAS que baixei no site, usando o aplicativo deles que já gera o texto pra cadastrar ou até mesmo o meu, não está indo.

Vc tem alguma sugestão pra mim?

To fazendo tentativas aqui, caso consiga informo aqui pra todos.

Obrigado, Abraços

@FocusRJ Veja se vc não está trocando os ambientes, porque estes endereços aí são para produção. O cadastro do computador é distinto para cada ambiente.

Abraços

  • 2 semanas depois ...
  • Membros Pro
Postado

Estou conseguindo fazer a pré autorização sem problemas. Todavia em muitos clientes no final quando vai confirmar a venda da o erro de "XML de nível inferior". Outros clientes vai sem problemas inclusive nos computadores do escritório onde fazemos o teste. Nos clientes onde da o erro no final basta desativar o novo DNS e colocar o atual que a venda ocorre normalmente. Vcs estão com problemas assim também?

  • Membros Pro
Postado

Obrigado a todos pelo feedback. Realmente neste momento parece que não existe nenhum padrão. Ora funciona, ora não funciona. Vocês conseguiram gerar o DNA do computador seja para cadastrar com o programa IDENTIFICATERMINAL.EXE ou para fazer venda com o GBASMSB.EXE em computadores com windows XP ?

  • Este tópico foi criado há 2192 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.