Wpis z mikrobloga

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?

#programowanie #sap #erp #jpk
  • 665
  • Odpowiedz
@keytax: To by oznaczało że plik jest modyfikowany po podpisie. Na pewno masz w procentrum wszystko dobrze ustawione na Xades Bes itp?
Ewentualnie sposób wczytywania podpisanego pliku, miałem podobnie jak zmieniłem sposób wczytywania to poszło.
  • Odpowiedz
@mrczeg1991: Format podpisu: XADES, typ podpisu: Podpis wewnętrzny, Wariant podpisu: Nie dołączaj dodatkowych informacji BES, Zaawansowane opcje podpisu: tutaj próbowałem wszystkich opcji. Potem całość otwieram notepad++, ctrl+a i wklejam do Rest debuggera (podobnie robiłem dla plików testowych mf i poszło). Wersja programu 8.1.4 java 1.7.0_40.
A z jakimi ustawieniami u ciebie to działa. Próbowałem jeszcze podpisu z programu testowego dla biblioteki microsoft.xades dla c# ale tutaj mam 111,Podpis jest w innym
  • Odpowiedz
@keytax: Mam tę samą wersję.
Format podpisu: XAdES
Typ podpisu: podpis wewnętrzny
Wariant podpisu: Nie dołączaj dodatkowych informacji (BES)
Zaawansowane opcje podpisu XAdES: Twórz podpis dołączony (Enveloped), gdy podpisywany jest dokument XML podpisem wewnętrznym XAdES
Powinno przejść a jak nie, to musisz źle wczytywać plik.
  • Odpowiedz
Witam,
ja mam natomiast problem z metodą PutBlob dokładniej mówiąc mam zwracany komunikat "The MAC signature found in the HTTP request 'Ji9wG7cj9vjdX641OQN2asY8bZTT9BSJrhqPMmKxt8g=' is not the same as any computed signature"
Sam tworzę authorization header i przy kodowaniu signature string na HMAC-SHA256 nie wiem którego klucza użyć ?
Proszę o sugestie
  • Odpowiedz
@Gibonowski mam wysłać na zwrócony adres url te 2 headery i wtedy dostane authorization header do metody put ? Nigdzie w dokumentacji nie jest tak napisane. Po za tym robiąc tak dostaje komunikat "This request is not authorized to perform this operation using this permission"
  • Odpowiedz
Nieee. Nie potrzebujesz authorization header'a. Po init upload odbierasz adres URL który ma w adresie parametry które zastępują authorization header. Na ten adres wysyłasz skompresowany zaszyfrowany plik z dwoma headerami które otrzymujesz też z init upload i to tyle
  • Odpowiedz
@Gibonowski Dzięki również. Zadziałało w ten sposób. (Odnośnie wcześniejszych wersji dokumentacji mf byłem przekonany, że muszę dołączyć ten authorization header, który był zwracany wcześniej, a teraz nie i myślałem, że muszę go wygenerować heh)
  • Odpowiedz
ja miałem to samo, ale później maila pisałem i gdzieś wynalazłem że zmienili model na SAS i gdzieś o tym poczytałem i jakoś do tego doszedłem ;)
  • Odpowiedz
Witam, po wysłaniu pliku jak sprawdzam metodą STATUS to otrzymuję najpierw komunikat 120 (Sesja została poprawnie zakończona...) ale następnym komunikatem jest 410 (Przesłane pliki nie są prawidłowym archiwum ZIP. ERROR_DECOMPRESS). Czy ktoś z Was może spotkał się z tym błędem? Zastanawiam się czy przyczyną może być np. błędne zaszyfrowanie pliku zip czy raczej wtedy dostał bym błąd 412?. Wysyłam tylko jeden plik zip (nie dzielę go bo ma tylko ~ 200KB).
  • Odpowiedz
@Gibonowski @Przemek78 : Też miałem takie problemy, ale w końcu użyłem biblioteki DotNetZip i w końcu zadziałało.

public void CompressFile(string inputFile, string outputFile)
{
using (var fileStreamIn = new FileStream(inputFile, FileMode.Open, FileAccess.Read))
{
using (var fileStreamOut = new FileStream(outputFile, FileMode.Create, FileAccess.Write))
{
using (var zipOutStream = new ZipOutputStream(fileStreamOut))
{
zipOutStream.CompressionMethod = CompressionMethod.Deflate;
zipOutStream.EnableZip64 = Zip64Option.AsNecessary;
zipOutStream.PutNextEntry(Path.GetFileName(inputFile));
fileStreamIn.CopyTo(zipOutStream);
}
}
}
}
  • Odpowiedz
Na stronie www.przekaz-jpk.pl udostępniłem aplikację do przekazu plików JPK. Jedno z ustawień w pliku kontrolnym dokument.ini umożliwia pełne logowanie sesji z serwerem JPK. Wszystko jest opisane w instrukcji. W logu jest zapis wszystkich danych wysyłanych i zwracanych przez serwer JPK. To może się przydać programistom do debugowania własnych rozwiązań. Pozdrawiam serdecznie
  • Odpowiedz