Witam.
Mam pytanko, czy ktoś bawił się, lub może była juz jakaś dyskusja albo gotowe rozwiązania odnośnie wysyłanie przez skrypty php podpisanych plików dosystemu e-deklaracje?

Jak ktoś coś wie, to proszę uprzejmie o link do tematu, chętnie poczytam, nawet nie wiem czy jest taka komunikacja mozliwa spod php.

Stefan


Pogrzebałem troche w necie, poczytałem dokumentację, trochę prób na bramce testowej i doszedłem do pewnego rozwiązania. Może komuś się przyda:
  1. <?php
  2.  
  3. $bramka = 'https://bramka.e-deklaracje.mf.gov.pl/uslugi/dokumenty';
  4. $plik = 'podpisany_plik.xml.xades' /* plik podpisany aplikacją zewnętrzną podpisem tzw. wewnętrznym */
  5.  
  6. $wskplik = fopen($plik, 'rb');
  7.  
  8. $tresc = fread($wskplik, filesize($plik));
  9. fclose($wskplik);
  10. $tresc = base64_encode($tresc);
  11.  
  12. $soap = new SoapClient(null, array('location' => $bramka, 'uri' => ' ' ));
  13.  
  14. /* wysyłanie podpisanego dokumentu */
  15. $wynik = $soap->sendDocument($tresc);
  16.  
  17. /* sprawdzenie statusu przy wysyłaniu dokumentu */
  18. print '<br> Nr referencyjny dokumentu: '.$wynik[refId];
  19. print '<br> Nr Statusu: '.$wynik[status];
  20. print '<br> Opis statusu: '.$wynik[statusOpis];
  21.  
  22.  
  23. /* sprawdzenie statusu "po czasie" dokumentu o wcześniejszym nr referencyjnym */
  24. $wynikUPO = $soap->requestUPO($wynik[refId]);
  25.  
  26. print '<br> Nr Statusu: '.$wynikUPO[status];
  27. print '<br> Opis statusu: '.$wynikUPO[statusOpis];
  28. print '<br> UPO: '.$wynikUPO[upo];
  29.  
  30. ?>


Bramka w kodzie jest bramką produkcyjną, dla testów należy używać bramki testowej:
https://test-bramka.edeklaracje.gov.pl/uslugi/dokumenty

Zakładam, że wygenerowany plik xml jest poprawny zgodnie z wytycznymi podanymi na stronie e-deklaracje.

Pozdrawiam
Stefan