Próbował już ktoś tworzyć aplikacje do wysyłania JPK zgodnie ze specyfikacją MF? Przebrnąć przez te wszystkie kompresje, kodowanie, generowanie xml, podpis elektroniczny i podłączenie się do bramki?
jak wywołać metodę InitUploadSigned na serwerze produkcyjnym e-dokumenty.mf.gov.pl ? Wysyłając kodem z poprzedniego postu poprawnie przechodzi na test-e-dokumenty.mf.gov.pl a niepoprawnie (kod 400 bad request) na serwer produkcyjnym. Zgodnie z info ze strony mf do uwierzytelnienia http używam certyfikatu testowego crt
@Gibonowski: dzięki za podpowiedź, lecz szukam dalej na Twoim kodzie dla serwera testowego i produkcyjnego otrzymuje kod 120 (podpis nie został prawidłowo zweryfikowany) na moim wcześniejszym kodzie z WebRequestHandler dla serwera testowego otrzymuje prawidłową odpowiedź 200 a na produkcyjnym odpowiedź 400. szukam dalej, być może jeszcze trzeba coś ustawić w kliencie RestClient
@krzyhu7: ok jutro się temu przyjrzę bliżej. Coś faktycznie musi być ponieważ przykładowy request na testową bramkę poszedł mi ok a na produkcyjną błąd tym razem 135 (nieważny certyfikat...). Dzięki wszystkim za podpowiedzi w końcu w kupie siła :) pozdrawiam
aby było przejrzyściej dodałem 3 metodę i wyniki dla serwera testowego dla testów oczywiście wystarczą tylko odpowiedzi z serwera testowego, ale chyba po to jest wystawiony serwer pre-produkcyjny aby spać spokojnie i móc wydać aplikację...
@krzyhu7: ok, jeśli znajdziesz rozwiązanie do którejkolwiek z 3 wyżej wymienionych metod (1 i 2 Twojej i 3 mojej) to proszę o info. Chyba nie tylko my jesteśmy zainteresowani rozwiązaniem wskazanych problemów na bramce produkcyjnej a wszyscy czytelnicy tego wątku. Pozdrawiam i dziękuje Tobie jak i użytkownikowi @Gibonowski za przedstawienie dotychczasowych rozwiązań. Jeszcze raz zwracam się z prośbą do użytkowników tego forum o publikację działającego rozwiązania o ile takie
@Svenson8: piszesz o bramce testowej czy produkcyjnej? U mnie na testowej najpierw 120 później nic nowego, non stop to samo (zgodnie zresztą z informacją na stronie mf, że wyłączyli weryfikację dokumentów na bramce). Raz udało mi się dotrzeć do statusu 200 ale to było ok. 2 tyg. temu, teraz coś pozmieniali :(
po użyciu prawidłowego certyfikatu kwalifikowanego udało mi się wysłać na bramkę pre-produkcyjną Za pierwszym razem otrzymałem
{"Code":410,"Description":"Przesłane pliki nie są prawidłowym archiwum ZIP.","Details":"ERROR_DECOMPRESS","Upo":"","Timestamp":"2016-07-28T08:32:23+00:00"} a teraz za każdym razem (także mając dokładnie to samo co za pierwszym razem)
@mmm234: sam sobie odpowiem po prostu pomiędzy próbami trzeba odczekać trochę, ponieważ ostatnia sesja nie została automatycznie zamknięta. po jakimś czasie mam znowu na starcie 120, a do kolejnej próby 100
@durek89: nie lecz to kwestnia odpowiedniego przekierowania karty w sesji (przekieruj karty inteligentne) + odpowiednia karta (w miarę nowa np. CryptoTech, Certum itp.)
bo jeśli terminal to standardowy komputer np. z Windowsem to raczej powinno działać, natomiast jeśli to jakiś linux to raczej bym szukał sterowników czytnika u producenta karty
@yarpi87: ad. 1 wg. mnie to do dzisiaj można testować na e-dokumenty.mf.gov.pl a na test-e-dokumenty.mf.gov.pl będzie uruchomiana taka opcja wkrótce ("Po zakończeniu prac Ministerstwo Finansów opublikuje informację o jego dostępności w pełnym zakresie przetwarzania.")
ad. 2 zestaw kwalifikowany certum działa poprawnie na e-dokumenty.mf.gov.pl a na test-e-dokumenty.mf.gov.pl wystarczy inny klucz kwalifikowany np. ten do
@yarpi87: jak będziesz miał zestaw kwalifikowany to certyfikat sam się doda (certum) jeśli nie można to zrobić z oprogramowania karty. U mnie bramka pre-produkcyjna działa wyłącznie na zestawie kwalifikowanego podpisu... tylko się śpiesz bo wg. info na stronie MF ma działać ta bramka tylko do dziś. Czy będzie też wymagana na testowej tego nie wiem, pytaj mf
@yarpi87: też używam Ionic.Zip ale niestety nie mogę potwierdzić, że w 100% działa. Teraz odrzuca mi na bramce pre-produkcyjnej {"Code":410,"Description":"Przesłane pliki nie są prawidłowym archiwum ZIP.","Details":"ERROR_DECOMPRESS","Upo":"","Timestamp":"2016-07-29T08:18:46+00:00"}
@Przemek78: nadal błąd {"Code":410,"Description":"Przesłane pliki nie są prawidłowym archiwum ZIP.","Details":"ERROR_DECOMPRESS","Upo":"","Timestamp":"2016-07-29T10:50:19+00:00"} szukam dalej przyczyny błędu... metodę pakowania użyłem Twojej więc to coś z kodowaniem lub kluczem
miał ktoś taki status? {"Code":302,"Description":"Dokument wstępnie przetworzony, sprawdź wynik następnej weryfikacji dokumentu","Details":"POST_VALIDATE","Upo":"","Timestamp":"2016-07-29T12:02:08+00:00"}
o dziwo po 15-20 min. od wysłania, pozostałe albo 120 (czekam dłużej) lub 410
@Svenson8: miałem błąd w szyfrowaniu pliku generalnie można powiedzieć, że metody szyfrowania, wskazane przez użytkownika @Gibonowski okazały się trafne, za co mu dziękuję
@Svenson8: tutaj masz treść prawidłowej metody na której się wzorowałem, http://www.wykop.pl/wpis/18297547/#comment-66877683 (post z wczoraj) ja miałem po prostu nieprawidłowo ustawiany myRijndael.IV = aes.IV; (moje przeoczenie, gdyż każdy jak wiadomo ma trochę inny kod)
@Svenson8: na kolejne testy bez zmian w kodzie, otrzymałem status 410 :( więc powtarzalny status 302 nie mogę potwierdzić. Miejmy tylko nadzieję, że w testowej bramce będzie też dostępna funkcjonalność produkcyjnej i szybsze odpowiedzi na testy...
@Spokey: U mnie w firmie używają płatnej biblioteki Eldos XmlBlackBox https://www.eldos.com/sbb/index.php#product. Jest ona dostępna w wersjach VCL (np. dla Delphi) lub .NET. Nie jest niestety tania. Polecam wypróbować jeśli nie znajdziesz innej alternatywy.
MF udostępnia możliwość testowania na środowisku produkcyjnym do momentu pełnego uruchomienia środowiska testowego.W przesyłanym JPK wartości elementów dla identyfikatora NIP musi składać się z samych jedynek.
Prosimy nie wysyłać dużych ilości testowych przesyłek i dużych ilości danych testowych.
testował już ktoś powyższe info i wysyłkę na środowisko produkcyjne? Ja nie mam obecnie dostępu do zestawu podpisu kwalifikowanego certum, więc nie mogę przetestować. Mój obecny certyfikat dostaje odpowiedź
{"Message":"Dokument z nieważnym podpisem kwalifikowanym","Code":135,"RequestId":"4wPV9ttv87U="} (na środowisku testowym nie było takiego błędu)
nie jest to regułą lecz zdarza się obecnie b.często. Lubi też się zawieszać na InitUploadSigned i Finish ...czasem pomaga odczekanie ok. 5 sek. przed każdym z wywołań w/w metod (oczywiście mowa o serwerze testowym)
@Spokey: ( ͡°ʖ̯͡°) podziękowania należą się @Liferov gdybyś przeczytał uważniej Jego wcześniejsze podpowiedzi to też byś odszukał. Kod który zamieścił podpisuje poprawnie na bramce testowej na produkcyjnej nie testowałem a parę różnic do wzoru MF jest np. brak
not(ancestor-or-self::ds:Signature) i `` ktoś kto przetestował na bramce produkcyjnej niech da znać :)
@Spokey: wstępnie wygląda ok, zapewne przyda się innym (ja korzystam z innej biblioteki do podpisu). Sprawdź koniecznie za jakiś czas, czy status przeszedł na 200, wówczas będziesz miał 100% pewność, że wszystko jest już OK
@emafaf: u mnie treść JPK sprawdzą dopiero za tydzień (po urlopie). Ogólnie dobrze wiedzieć, że chociaż klienta nam jakby coś przygotują (awaryjna apka do wysyłania)
@Liferov: ok więc jeśli przebrniesz przez 410 daj znać. Mnie tydzień temu na pre-produkcyjnej raz doszło do 302 ale tylko raz (inne powtórzenia negatywne tj. 410 itp.). Na więcej testów zabrakło mi czasu a teraz nie mam pod ręką certyfikatu kwalifikowanego dlatego pytam.
@Liferov: niby nie ale lepiej się zabezpieczyć :) gdyby pisać od nowa to już nie warto, ale jeśli tylko dopieścić np. po to aby cały proces zautomatyzować w przyszłości :) ...chyba, że ta aplikacja będzie do uruchomienia z wiersza polecenia. a zapomniałem, że i tak nie podpiszemy z karty z automatu (PIN), więc może masz rację
@durek89: teoretycznie linia ServicePointManager... nie powinna być wymagana na środowisku produkcyjnym w odróżnieniu do testowego (certyfikat e-dokumenty jest prawidłowy) Nie mam teraz teraz dostępu do certyfikatu kwalifikowanego aby zapewnić w 100%, więc spróbuj powinno przejść w produkcji.
@AndjeyYaskulsky: and one more important piece of information in a production environment such as sent eg. JPK_VAT it's required NIP as the same ones eg. "1111111111"
@Gibonowski: jestem prawie w 100% pewny, że drukowaną formą upo otrzymamy po wklepaniu nr. referycyjnego w tym pdf http://www.finanse.mf.gov.pl/systemy-informatyczne/e-deklaracje/formularze/upo (tak jest z innymi obecnymi upo). Na testowym NIP z samymi jedynkami takie upo nie jest generowane. Dlatego potwierdzenie (drukowany pdf z treścią upo) będzie przy pierwszym prawdziwym jpk jakie wyślesz
@ErrorInLine1: pytałem o JPK wysłanie na e-dokumenty... nie jako test (NIP zmieniony na 111..) a jako prawdziwy dokument. Nie wiem czy już kto produkcyjnie wysyła (wszak od 1.08.2015 działa produkcyjna bramka)
coś trudno mi uwierzyć aby wszystkie inne UPO było obsługiwane we wskazanym PDF a ten z JPK nie (ale potwierdzenia 100% jeszcze nie mam niestety)
@ErrorInLine1: ok, myślę, że jeśli są same 1 w NIP to do tego nie wystawiają UPO (przynajmniej nie za pomocą wskazanego PDF) a traktują te wystawione jako UPO - testowe
@ErrorInLine1: czy możesz udostepnić zrzut takiego upo wyświetlonego w swoim programie (tabelce?). Bo oryginalnie to jest tylko json z polem "description" który jest treścią upo.
@ErrorInLine1: ok, dzięki. Jutro porównam to z innymi UPO np. z e-deklaracji tak myślę, że warto napisać na support jpk czy w przyszłości będzie też do wydrukowania z pdf JPK tak jak e-dekracje
odpowiedź z supportu jpk, ad. pobierania UPO z PDF jak do e-deklaracji i pit-ów
Z informacji jakie otrzymaliśmy od Ministerstwa Finansów, na chwilę obecną nie ma aktywnej usługi wyświetlenia UPO w pdf i nie ma takiej możliwości na stronie e-Deklaracji.
Można to zrobić np. w przeglądarce.
zatem @ErrorInLine1 wygląda na to, że miałeś rację z własnym generowaniem szablonu UPO wg. otrzymanych danych ze zwrotki Jsona
@Gibonowski: używam opcji domyślnych z wybranym w ustawienia/podpis/xades. Nie używałem wcześniej tej aplikacji więc proszę o podpowiedź co ustawić aby podpisywał w xades-bes
Czy testowaliście bibliotekę Microsoft.Xades na certyfikacie z aktywnym jedynie profilem bezpiecznym? Ja testowałem na karcie Certum z tylko takim aktywnym profilem i podczas podpisu w linii
@sosulek: wg. mnie wskazujesz niepoprawny plik xml do podpisu np. JPKVAT.xml a nie JPKVAT.upload.xml (plik po 1 kroku programu do wysyłania z Ministerstwa)
@cmario74: pytaj producenta, mnie wczoraj serwis Certum odpowiedział, co prawda po 6h ale zawsze (jak ustawić opcje podpisu Xades-BES w ich programie... aby podpisywać pliki JPK_VAT.initupload.xml w programie MF)...
#programowanie #sap #erp #jpk
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
/*var serializer = new XmlSerializer(typeof(InitUploadType));
serializer.Serialize(data);*/
XmlDocument doc =
proszę o pomoc
jak wywołać metodę InitUploadSigned na serwerze produkcyjnym e-dokumenty.mf.gov.pl ?
Wysyłając kodem z poprzedniego postu poprawnie przechodzi na test-e-dokumenty.mf.gov.pl a niepoprawnie (kod 400 bad request) na serwer produkcyjnym.
Zgodnie z info ze strony mf do uwierzytelnienia http używam certyfikatu testowego crt
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
WebRequestHandler handler = new WebRequestHandler();
X509Certificate2 certificate =
na Twoim kodzie dla serwera testowego i produkcyjnego otrzymuje kod 120 (podpis nie został prawidłowo zweryfikowany)
na moim wcześniejszym kodzie z WebRequestHandler dla serwera testowego otrzymuje prawidłową odpowiedź 200 a na produkcyjnym odpowiedź 400.
szukam dalej, być może jeszcze trzeba coś ustawić w kliencie RestClient
mimo wszystko jeszcze raz dzięki za jakiś trop
static void Main(string[] args)
{
string url = "[https://e-dokumenty.mf.gov.pl/api/Storage/InitUploadSigned";](https://e-dokumenty.mf.gov.pl/api/Storage/InitUploadSigned";)
var client =
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
WebRequestHandler handler = new WebRequestHandler();
X509Certificate2 certificate = new X509Certificate2("test-e-dokumenty.mf.gov.pl_ssl.crt");
static string PostXMLData1(string destinationUrl, string requestXmlFile)
{
XmlDocument requestXml = new
dla testów oczywiście wystarczą tylko odpowiedzi z serwera testowego, ale chyba po to jest wystawiony serwer pre-produkcyjny aby spać spokojnie i móc wydać aplikację...
static string PostXMLData1(string destinationUrl, string requestXmlFile)
{
XmlDocument requestXml = new XmlDocument();
Jeszcze raz zwracam się z prośbą do użytkowników tego forum o publikację działającego rozwiązania o ile takie
utworzyłem 4 metodę
static string PostXMLData4(string destinationUrl, string requestXmlFile)
{
var client =
using (var zip = new ZipFile())
{
zip.ParallelDeflateThreshold = -1;
zip.UseZip64WhenSaving
U mnie na testowej najpierw 120 później nic nowego, non stop to samo (zgodnie zresztą z informacją na stronie mf, że wyłączyli weryfikację dokumentów na bramce). Raz udało mi się dotrzeć do statusu 200 ale to było ok. 2 tyg. temu, teraz coś pozmieniali :(
Za pierwszym razem otrzymałem
{"Code":410,"Description":"Przesłane pliki nie są prawidłowym archiwum ZIP.","Details":"ERROR_DECOMPRESS","Upo":"","Timestamp":"2016-07-28T08:32:23+00:00"}
a teraz za każdym razem (także mając dokładnie to samo co za pierwszym razem)
{"Code":100,"Description":"Rozpoczęto
po prostu pomiędzy próbami trzeba odczekać trochę, ponieważ ostatnia sesja nie została automatycznie zamknięta.
po jakimś czasie mam znowu na starcie 120, a do kolejnej próby 100
X509Certificate2 cert = new X509Certificate2();
cert.Import(filePath);
public static string ZaszyfrujKluczRSA(byte[] key, string keyPath)
{
string inputString = Encoding.UTF8.GetString(key);
System.Security.Cryptography.X509Certificates.X509Certificate2 cert = PobierzPublicznyCertyfikatMinisterstwa(keyPath);
RSACryptoServiceProvider rsaservice
Jak tam status wysyłki nadal 410?
... a póki co nadal mam błąd 100 i jak tu testować :(
private static byte[] PobierzLosowySalt()
{
var random = new
ad. 1
wg. mnie to do dzisiaj można testować na e-dokumenty.mf.gov.pl a na test-e-dokumenty.mf.gov.pl będzie uruchomiana taka opcja wkrótce ("Po zakończeniu prac Ministerstwo Finansów opublikuje informację o jego dostępności w pełnym zakresie przetwarzania.")
ad. 2
zestaw kwalifikowany certum działa poprawnie na e-dokumenty.mf.gov.pl a na test-e-dokumenty.mf.gov.pl wystarczy inny klucz kwalifikowany np. ten do
ktoś dzisiaj dostał inny status niż 120? na bramce pre-produkcyjnej
wczoraj taki status wisiał ok. 15-30min. a dzisiaj non-stop
do podpisu ja używam komercyjnej biblioteki (dosyć drogiej kilka kPLN) więc niestety się nie podzielę
przyjąłem taką strategię:
1. generuję
U mnie bramka pre-produkcyjna działa wyłącznie na zestawie kwalifikowanego podpisu... tylko się śpiesz bo wg. info na stronie MF ma działać ta bramka tylko do dziś. Czy będzie też wymagana na testowej tego nie wiem, pytaj mf
...poszło teraz tylko czekać
są pewnie też inne strony... tylko, trzeba mieć "prawidłowy" certyfikat niestety
{"Code":410,"Description":"Przesłane pliki nie są prawidłowym archiwum ZIP.","Details":"ERROR_DECOMPRESS","Upo":"","Timestamp":"2016-07-29T10:50:19+00:00"}
szukam dalej przyczyny błędu... metodę pakowania użyłem Twojej więc to coś z kodowaniem lub kluczem
{"Code":302,"Description":"Dokument wstępnie przetworzony, sprawdź wynik następnej weryfikacji dokumentu","Details":"POST_VALIDATE","Upo":"","Timestamp":"2016-07-29T12:02:08+00:00"}
o dziwo po 15-20 min. od wysłania, pozostałe albo 120 (czekam dłużej) lub 410
generalnie można powiedzieć, że metody szyfrowania, wskazane przez użytkownika @Gibonowski okazały się trafne, za co mu dziękuję
myRijndael.IV = aes.IV;
(moje przeoczenie, gdyż każdy jak wiadomo ma trochę inny kod){"Message":"Dokument z nieważnym podpisem kwalifikowanym","Code":135,"RequestId":"4wPV9ttv87U="}
(na środowisku testowym nie było takiego błędu)
...czasem pomaga odczekanie ok. 5 sek. przed każdym z wywołań w/w metod
(oczywiście mowa o serwerze testowym)
not(ancestor-or-self::ds:Signature)
i
``
ktoś kto przetestował na bramce produkcyjnej niech da znać :)
...chyba, że ta aplikacja będzie do uruchomienia z wiersza polecenia.
a zapomniałem, że i tak nie podpiszemy z karty z automatu (PIN), więc może masz rację
Nie mam teraz teraz dostępu do certyfikatu kwalifikowanego aby zapewnić w 100%, więc spróbuj powinno przejść w produkcji.
http://www.mf.gov.pl/documents/764034/5134536/publiczne+e-dokumenty.mf.gov.pl.zip
3af5843ae11db6d94edf0ea502b5cd1a.crt for https connection
and
3af5843ae11db6d94edf0ea502b5cd1a.pem for encrypt you key used to
in a production environment such as sent eg. JPK_VAT it's required NIP as the same ones eg. "1111111111"
Dlatego potwierdzenie (drukowany pdf z treścią upo) będzie przy pierwszym prawdziwym jpk jakie wyślesz
coś trudno mi uwierzyć aby wszystkie inne UPO było obsługiwane we wskazanym PDF a ten z JPK nie (ale potwierdzenia 100% jeszcze nie mam niestety)
tak myślę, że warto napisać na support jpk czy w przyszłości będzie też do wydrukowania z pdf JPK tak jak e-dekracje
jak dostanę odpowiedź podzielę się nią
zatem @ErrorInLine1 wygląda na to, że miałeś rację z własnym generowaniem szablonu UPO wg. otrzymanych danych ze zwrotki Jsona
Właśnie testuje oprogramowanie SmartSign i format Xades.
Używając aplikacji Ministerstwa
http://www.mf.gov.pl/kontrola-skarbowa/dzialalnosc/jednolity-plik-kontrolny/-/asset_publisher/2NoO/content/aplikacja-kliencka-do-wysylania-plikow-jpk?redirect=http%3A%2F%2Fwww.mf.gov.pl%2Fkontrola-skarbowa%2Fdzialalnosc%2Fjednolity-plik-kontrolny%3Fp_p_id%3D101_INSTANCE_2NoO%26p_p_lifecycle%3D0%26p_p_state%3Dnormal%26p_p_mode%3Dview%26p_p_col_id%3Dcolumn-2%26p_p_col_count%3D1#p_p_id_101_INSTANCE_2NoO_
do wysyłania JPKVAT, należy wskazać już podpisany plik xml. Gdy wskazuje ten podpisany przez SmartSign wyświetla mi się błąd
"111. Podpis w innym formacie niż Xades-BES"
Ja testowałem na karcie Certum z tylko takim aktywnym profilem i podczas podpisu w linii
jest błąd
''Zestaw kluczy nie jest zdefiniowany"