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
@yarpi87: Haha tak. Widzisz. Regularna wartość tutaj to 40 znakowy ciąg heksametryczny, który wrzucasz do Xadesa pod \X509SerialNumber. XSD XADESA-BES wymaga tam integera, a biblioteka XadesNet nie konwertuje tego ciągu (można to zrobić łatwo w .Net 4.0). U Ciebie wchodzi 01 co pewnie jest pobierane jako int i dlatego masz cacy, a ludzie którzy używają dobrych certyfikatów są w dupie i powinni zedytować bibliotekę:

var serial = BigInteger.Parse(serialHexString, NumberStyles.HexNumber);

Niestety
  • Odpowiedz
@durek89
Mogę trochę nakierować: Trzeba zmienić w bibliotece typ referencji dotyczącej SignedProperties na taki jak w przykładowym pliku z MF oraz wyłączyć sprawdzanie sekcji: .
Pozostałe rzeczy w programie. Wzorowałem się na transformacjach, które są w pliku z MF.
  • Odpowiedz
@durek89: Czyli w initUpload. masz ....plik1.xml.......plik2.xml.... i jak to podpisujesz to nie wali błędem przy wysyłaniu do MF, że niezgodne ze schemą xsd?
  • Odpowiedz
@yarpi87: Przykro mi Panie kolego, ale ten plik jest daleki od poprawnego. masz źle zbudowane, obie sumy kontrolne Digest są niepoprawne, a co za tym idzie i sygnatura. W kanonikalizacji nie podmieniłeś vbCrLf'ów. Kryptograficznie dwója na szynach. : )
  • Odpowiedz
@Spokey - bede walczył dalej. Dziwne zatem że bramka mnie puszcza. Skoro aż tak jest to inne to powinien mi dawać info ze to nie jest podpis w formacie Xades lub że jest niezweryfikowany, a tak mialem wczesniej i przestało gdy przeszedłem na to. Stąd olałem temat - działa to działa - po co drążyć :)
  • Odpowiedz
@Spokey - podpiąłem się z jednym z naszych klientów - księgowym i zrobiłem realny test na realnym podpisie. Sprawdziłem nawet ten serial number - jest hexanumeryczny (jakieś krzaki typu 1a 4e 50 6e .....). I o dziwo podpisało, wysłało na bramkę testową i mam status 120 https://test-e-dokumenty.mf.gov.pl/api/Storage/Status/54e1616400e250cd000000b009fdacf4 ). Czyli dalej wyglada jakby działało? A ty wysyłasz na testową z parametrem: ?enableValidateQualifiedSignature=true ?? Bo ja bez niego - bo nie mam kwalifikowanego
  • Odpowiedz
Ja rano miałem 120 na kwalifikowanym podpisie. Przed chwilą puściłem na niekwalifikowanym i też mam 120. 100 to wyglada jakbyś wywołał samo initUploadSigned bez wysyłki blobów.
  • Odpowiedz