Jump to content

Utilizar Webservices da AT


cjulio
Go to solution Solved by thoga31,

Recommended Posts

Boa tarde a todos,

Tenho a aplicação a funcionar correctamente em ambiente de teste usando os certificados de teste (TestesWebServices.pfx para estabelecer a conecção SSL e ChavePublicaAT.cer para encriptar a chave nounce). Contudo quando mudo para o certificado de PRD que a AT enviou não funciona. Se utilizo o certificado de PRD em vez do TestesWebServices.pfx o servidor recusa a ligação.

Alguém está a usar as credenciais de PRD em am ambiente de teste? Foi necessario fazer algum procedimento especial com o o dito certificado antes de ser usado? E para encriptar o campo nounce com a chave continuaram a usar o ChavePublicaAT?

Obrigado

Link to comment
Share on other sites

Tanto quanto sei a ChavePublicaAT mantém-se ... o meu problema é que ainda não consegui pedir o certificado ... Sempre que tento submeter o csr obtenho um erro " "O CSR não é válido e não foi possível validar os campos do pedido: class configured for Signature(provider: BC)cannot be found.."

Para criar o csr utilizei o seguinte comando openssl:

openssl req -new -newkey rsa:2048 -nodes -out 500xxxxx9.csr -keyout 500xxxxx9.key -subj "/C=PT/ST=Braga/L=Guimaraes/O=Nome Da Empresa SA/OU=Contabilidade/CN=500xxxxx9/emailAddress=xxxxx@xxx.pt"

Falar com a AT é impossivel e já perdi a conta das chamadas para lá, sem conseguir falar com o suporte informático ... já seguiu um mail mas até hoje estou à espera de resposta a mails de dezembro que entretanto resolvi com ajudas aqui do pessoal.

Alguém conseguir submeter recentemente um pedido ? o que utilizaram para criar o csr ?

Cumps.

Link to comment
Share on other sites

oi eu criei assim e está a funcionar:openssl req -new -newkey rsa:2048 -nodes -out 50xxx.csr -keyout suakey.key -subj "/C=PT/ST=localidade/L=localidadel/O=nome empresa./OU=Desenvolvimento/CN=contribuinte"

depois que me enviaram o cer fiz isso

openssl pkcs12 -export -inkey c:\chave\natural.key -in c:\chave\seu_cer.cer -out c:\chave\nome_para_eu_pfx.pfx

lembrando que a senha tem que ser assinada com oChavePublicaAT.cer que te enviaram e para enviar para o web services tem que ser o cer definitivo...

Link to comment
Share on other sites

oi eu criei assim e está a funcionar:openssl req -new -newkey rsa:2048 -nodes -out 50xxx.csr -keyout suakey.key -subj "/C=PT/ST=localidade/L=localidadel/O=nome empresa./OU=Desenvolvimento/CN=contribuinte"

depois que me enviaram o cer fiz isso

openssl pkcs12 -export -inkey c:\chave\natural.key -in c:\chave\seu_cer.cer -out c:\chave\nome_para_eu_pfx.pfx

lembrando que a senha tem que ser assinada com oChavePublicaAT.cer que te enviaram e para enviar para o web services tem que ser o cer definitivo...

O comando que utilizei foi o mesmo e ao colar o texto do csr no site dizia que faltava o mail no csr, adicionei e obtenho o erro ...

Só uma questão: como pediram o certificado?

enviaram o pedido por mail com o csr anexado (para onde?) ou foram ao site e-fatura -> aderir ao serviço -> colar o texto do csr na caixa de texto, aceitar os termos e condições e submeter .... é que a mim dá-me o erro "O CSR não é válido e não foi possível validar os campos do pedido: class configured for Signature(provider: BC)cannot be found.."

Cumps

Link to comment
Share on other sites

Já está resolvido. estava a usar o certificado que vinha com o programa de teste para encriptar o campo nounce. mudei para o ChavePublicaAT.cer e funcionou bem. Já registei uma factura.

Muito obrigado pela ajuda

Um abraço

Bom dia jlmSilva podes me explicar que certificados colocas dentro do ficheiro trustStore?

é que ando de candeias as avessas com isso.

Obrigado.

Link to comment
Share on other sites

Boas,

Já escrevi antes no forum sobre esse erro 11 ... é preciso ter cuidado com a data do sistema. Se houver uma diferença grande (tipo meio minuto) dá esse erro (no campo H4 - Created)

O meu primeiro problema foi esse e andei horas e horas até reparar que o meu pc tinha o relógio atrasado 2 minutos ....

Na documentação faz referencia a isso na página 11 e deves ter a hora sincronizada com o Observatório Astronómico de Lisboa ...

Confirma e deixa feedback

Boas,

Acabei de inserir 2 faturas no ambiente de testes sem problema, utilizando o mesmo código que tinha em 31/12/2012 e com o certificado de testes novo (validade de junho/2013)

Ainda tens problemas ?

Também tive o mesmo problema ontem consegui comunicar 913 facturas, foram todas as emitidas desde 1 Jan até ontem, hoje o sistema dava erro 11, sem que tivesse efectuado qualquer alteração, no entanto o meu PDC estava a sincronizar pela time.windows.com e tinha 40 segundos de diferença em relação à hora legal Portuguesa, configurei o PDC para sincronizar com o Observatório Astronómico de Lisboa tendo ficado o relógio apenas com uma décima de segundo de diferênça e passou a funcionar novamente.

Link to comment
Share on other sites

Boa dia a todos!

Sou novo nestas andanças e estou muito atrasado em relação a vocês, uma vez que só agora estou a trabalhar na produção do ficheiro saft_pt.xml.

Contudo e se me permitem gostaria de pedir ajuda com o seguinte problema:

Dentro do nó <Header> temos o nó <CompanyAddress> e isso eu consigo sem stress com base no SetParentRow().

O problema é que o nó <CompanyAddress> fica sempre no fim do nó <Header> quando devia ficar entre os elementos <BusinessName> e <FiscalYear> :-(

Alguém teve este problema? Como conseguiu colocar o elemento na posição certa?

Agradeço qualquer comentário.

Cumprimentos.

Link to comment
Share on other sites

Boa noite,

Tenho uma pequena dúvida existencial...no documento que a AT lançou no dia 5 de fevereiro, referem que a comunicação via webservice deve ser feita em tempo real e se o nosso cliente quiser enviar massivamente os documentos (digamos, no fim do mês), deve ser enviado via SAFT. Sabem alguma coisa relativamente a isto? Podemos enviar via webservice e via SAFT (imaginando que algo corre mal no envio on-line). Ou posso chegar ao fim do mês e colocar os documentos todos a enviar via webservice de rajada?

Até dia 5, não havia nenhuma indicação - pelo menos que me tenha apercebido - de que o webservice era para ser usado somente em tempo real...

Link to comment
Share on other sites

Tens de escolher um dos métodos de envio e usa-lo durante todo o ano fiscal, não podes usar os dois.

Quanto ao envio em massa, és obrigado a enviar os documentos até ao dia 25 do mes seguinte mas nada te proibe de os enviares no final do mês, apenas alertaram que se guardarem tudo para um determinado dia poderá existir problemas de lentidão no processamento.

Link to comment
Share on other sites

Bom dia. A minha dificuldade era a criação do parâmetro NONCE em PHP. Estava a utlizar a biblioteca "phpseclib" mas não me consegui safar.

Graças à ajuda do Jokimen, consegui finalmente criar o parâmetro. Ao usar as funções openssl do php:

$key = openssl_pkey_get_public('chavePublicaAT.cer');
openssl_public_encrypt('chave simetrica de 128 bits', $encrypted_nonce, $key);
$nonce = base64_encode($encrypted_nonce);

Neste momento, ainda estou a trabalhar com o endereço de testes https://servicos.portaldasfinancas.gov.pt:700/fews/faturas na qual me está a devolver o erro "unable to use client certificate (no key found or wrong pass phrase?)".

Estou a utilizar o certificado digital de testes ("Teste Web services.pfx"), mas já li aqui que é necessário pedir outro. Isso é verdade? Para testes este já não funciona?

Muito Obrigado.

Link to comment
Share on other sites

Boas António

Ajudo na boa da mesma maneira que o rmartyn me ajudou a mim nas minhas dificuldades.

Cheguei a ter esse problema e tinha a ver com a maneira como chamavas o certificado, o caminho que lhe davas.

Em relação ao certificado para testes o que estás a usar para testes serve, depois para passar para produção é que vais precisar

de outro.

Não te esqueças que PHP não aceita .pfx tens de converter para .pem

Link to comment
Share on other sites

Alguém sabe quanto tempo eles demoram a fazer reset ao número de tentativas de ligação?

É no servidor de testes...

...<faultcode>99</faultcode> <faultstring>Rejected: | Codigo: 99 | Erro: Atingido o número maximo de tentativas de login.\nPara sua segurança o seu acesso foi temporariamente bloqueado. | Tentativas Restantes: 0</faultstring> ...

Alguém já começou a fazer Testes com o envio de documento de Transporte?

É que existem algumas incongruencias... por exemplo,

no manual eles dizem "https://servicos.portaldasfinancas.gov.pt:400/sgdtws/documentosTransporte/"

e no wsdl tem "https://servicos.portaldasfinancas.gov.pt:400/sgdtws/documentoTransporte/"

Edited by radikal
Link to comment
Share on other sites

Alguém sabe quanto tempo eles demoram a fazer reset ao número de tentativas de ligação?

pelo menos hoje (após 12horas) já consigo voltar a comunicar...

Alguém já começou a fazer Testes com o envio de documento de Transporte?

É que existem algumas incongruencias... por exemplo,

no manual eles dizem "https://servicos.portaldasfinancas.gov.pt:400/sgdtws/documentosTransporte/"

e no wsdl tem "https://servicos.portaldasfinancas.gov.pt:400/sgdtws/documentoTransporte/"

Continuo a tentar comunicar, e recebo sempre o mesmo erro:

<?xml version='1.0' ?>
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Body>
<env:Fault>
 <faultcode>env:Client</faultcode>
 <faultstring>Internal Error</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

se utilizar os mesmos certificados para comunicar com o endereço das faturas, funciona tudo bem!!

Já alguém reparou que no portal das finanças, se quiser criar um utilizador com permissões WDT (comunicação de dados dos documentos de transporte) não tem essa opção?

Edited by radikal
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.