Specyfikacja interfejsów w praktyce

Zgodnie z opisem w Instrukcji obsługi, do pliku ‘dokument.ini’ w sekcji [PrzekazJPKPliki] można dodać następujące pozycje:
ZapiszWysylaneDane=1
ZapiszLogKomunikacji=1

Pozycja ‘ZapiszWysylaneDane’ tworzy w folderze roboczym tekstowe pliki z odpowiedziami na kolejne zapytania: InitUploadSign, FinishUpload, oraz Status.

Pozycja ‘ZapiszLogKomunikacji’ tworzy w folderze roboczym plik tekstowy ‘LogKomunikacji.txt’, w którym rejestrowana jest cała wymiana informacji pomiędzy programem Przekaz JPK a serwerem Ministerstwa Finansów.

Obydwie opcje pozwalają razem zgromadzić komplet informacji wysyłanych i otrzymywanych w trakcie wysyłki plików zgodnie ze specyfikacją. Mogą to być przydatne opcje dla programistów chcących tworzyć własne implementacje specyfikacji. Przykładowa zawartość pliku ‘LogKomunikacji.txt’ w czasie wysyłki testowego pliku wygląda następująco:

—- Sending —-
POST /api/Storage/InitUploadSigned HTTP/1.1
Content-Type: text/xml
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip
Host: test-e-dokumenty.mf.gov.pl
Content-Length: 5848

<?xml version=”1.0″ encoding=”UTF-8″?><ds:Signature xmlns:ds=”http://www.w3.org/2000/09/xmldsig#” Id=”Signature-0″><ds:SignedInfo xmlns:ds=”http://www.w3.org/2000/09/xmldsig#” Id=”SignedInfo-0″><ds:CanonicalizationMethod Algorithm=”http://www.w3.org/TR/2001/REC-xml-c14n-20010315″></ds:CanonicalizationMethod><ds:SignatureMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#rsa-sha1″></ds:SignatureMethod><ds:Reference Id=”SignedProperties-Reference0″ Type=”http://uri.etsi.org/01903#SignedProperties” URI=”#SignedProperties-0″><ds:DigestMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1″></ds:DigestMethod><ds:DigestValue>clzSlR8IGhBa2s6szomjaWaSw1Q=</ds:DigestValue></ds:Reference><ds:Reference URI=”#Dokument-0″><ds:DigestMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1″></ds:DigestMethod><ds:DigestValue>iD6apOkhM9D8kpMvuySTWQ5Y3U8=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue Id=”SignatureValue-0″>Jo3jNbxdHKNKKZRbus00BcPeXNapbNHO/bw58zaqIFlyomZAEq+gSHyrVsv2RJ7Td+QzSDsDzWgnEYp+N1w6eT3eK+yPQp504ZtwpE2hxCneuVM23r6bKuYMj6elozurncCtk42Xyc9AWVpJ27oyT1TpmYbBYnb0m5KD0tVx2DIcD2CzNt9OVhIt6kD3ZBqWM8+Z7Pj0Blfp+XeLeZJVzsRcKepYFYw9irjYn/ZGYVCgEr9lVOtzgDOIAheewZ4HSnK7FLNoa3NT9BOQvGQc11ZcGm1Ny/+V0tsSqMpVdihYmVFXMhco0GLdUkL7X9fygF8LjUMY0/oXXI2ohIetUg==</ds:SignatureValue><ds:KeyInfo Id=”KeyInfo-0″><ds:X509Data><ds:X509Certificate>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</ds:X509Certificate> </ds:X509Data></ds:KeyInfo><ds:Object><xades:QualifyingProperties xmlns:xades=”http://uri.etsi.org/01903/v1.3.2#” Target=”#Signature-0″><xades:SignedProperties xmlns:ds=”http://www.w3.org/2000/09/xmldsig#” xmlns:xades=”http://uri.etsi.org/01903/v1.3.2#” Id=”SignedProperties-0″><xades:SignedSignatureProperties><xades:SigningCertificate><xades:Cert><xades:CertDigest><ds:DigestMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1″></ds:DigestMethod><ds:DigestValue>7vNbabP33UoX59Bu9LAwzFfZhKo=</ds:DigestValue></xades:CertDigest><xades:IssuerSerial><ds:X509IssuerName>SERIALNUMBER=Nr wpisu: 6, CN=COPE SZAFIR – Kwalifikowany, O=Krajowa Izba Rozliczeniowa S.A., C=PL</ds:X509IssuerName><ds:X509SerialNumber>-420810347</ds:X509SerialNumber></xades:IssuerSerial></xades:Cert></xades:SigningCertificate></xades:SignedSignatureProperties></xades:SignedProperties></xades:QualifyingProperties></ds:Object><ds:Object xmlns:ds=”http://www.w3.org/2000/09/xmldsig#” Id=”Dokument-0″><InitUpload xmlns=”http://e-dokumenty.mf.gov.pl”><DocumentType>JPK</DocumentType><Version>01.02.01.20160617</Version><EncryptionKey algorithm=”RSA” encoding=”Base64″ mode=”ECB” padding=”PKCS#1″>deP+8jrk2Bd6SZH1AoNRGVWV6mlcWr+xIYg2QODCCIOB1EEUMegknAvgRKTdpBOX6dTU7D0gwZk0DDPNYY8ucj4RIGYRRatgV7yZF4l3mMvy45m2k5IuYIwnDtm5nnLh3qeHoZTKVJiBbBGHmuZeNM2sxh/Rn5pqRaoilQwUh2N+T3zz/sXPm5dxcM39ykvLeIk7QEcE9NLbT169vxOiZJOqIWXrkD1TlPyzNQfaltukvKit+sltxyQ1ffILyE59+kZDIt4Gg4tabNOnGpbo6Jbz0gHW8Q2iyviM/mxGqRFFdO6U+cxaPM4aE0gwtAlp5jyyYQ3O95/W6Qmm3UD9qQ==</EncryptionKey><DocumentList><Document><FormCode schemaVersion=”1-0″ systemCode=”JPK_VAT (1)”>JPK_VAT</FormCode><FileName>JPK_VAT_2016-07-01.xml</FileName><ContentLength>5029</ContentLength><HashValue algorithm=”SHA-256″ encoding=”Base64″>T4vAC97zidMIfN4yKW98NOax336tEoGHsX1od72z2+Y=</HashValue><FileSignatureList filesNumber=”1″><Packaging><SplitZip mode=”zip” type=”split”></SplitZip></Packaging><Encryption><AES block=”16″ mode=”CBC” padding=”PKCS#7″ size=”256″><IV bytes=”16″ encoding=”Base64″>AAECAwQFBgcICQoLDA0ODw==</IV></AES></Encryption><FileSignature><OrdinalNumber>1</OrdinalNumber><FileName>JPK_VAT_2016-07-01.xml.zip</FileName><ContentLength>1264</ContentLength><HashValue algorithm=”MD5″ encoding=”Base64″>8/aNVbCh1mkF55hoOtLGrQ==</HashValue></FileSignature></FileSignatureList></Document></DocumentList></InitUpload></ds:Object></ds:Signature>
—- Received —-
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 536
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 10 Aug 2016 19:23:13 GMT

<tutaj wycięta, bo niestety mało przydatna w binarnej postaci zawartość odpowiedzi serwera JPK na zapytanie InitUploadSigned>
—- Sending —-
PUT /75e899d2002f570a000000b015eee694/9d3a7168-d4f4-4cd0-9aa9-4a5a9a5e3932?sv=2015-07-08&sr=b&si=75e899d2002f570a000000b015eee694&sig=VWyk9ViAmQWlw86Yr%2F%2FP3mGZABGpRLh6U2hzjqy4xgQ%3D HTTP/1.1
x-ms-blob-type: BlockBlob
Content-MD5: 8/aNVbCh1mkF55hoOtLGrQ==
Accept-Encoding: gzip
Host: taxdocumentstorage05tst.blob.core.windows.net
Content-Length: 1264

<tutaj wycięta, bo mało przydatna w binarnej postaci zaszyfrowana zawartość wysyłanego pliku JPK> 
—- Received —-
HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-MD5: 8/aNVbCh1mkF55hoOtLGrQ==
Last-Modified: Wed, 10 Aug 2016 19:23:14 GMT
ETag: “0x8D3C153C6235BE7”
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 1961c7b3-0001-004d-283c-f3e899000000
x-ms-version: 2015-07-08
Date: Wed, 10 Aug 2016 19:23:13 GMT

0

—- Sending —-
POST /api/Storage/FinishUpload HTTP/1.1
Content-Type: application/json
Accept: application/jsonrequest
Content-Encoding: identity
Accept-Encoding: gzip
Host: test-e-dokumenty.mf.gov.pl
Content-Length: 137

{
“ReferenceNumber”: “75e899d2002f570a000000b015eee694”,
“AzureBlobNameList”: [
“9d3a7168-d4f4-4cd0-9aa9-4a5a9a5e3932”
]
}
—- Received —-
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 123
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 10 Aug 2016 19:23:18 GMT

<tutaj wycięta, bo niestety mało przydatna w binarnej postaci zawartość odpowiedzi serwera JPK na zapytanie FinishUpload>
—- Sending —-
GET /api/Storage/Status/75e899d2002f570a000000b015eee694 HTTP/1.1
Accept-Encoding: gzip
Host: test-e-dokumenty.mf.gov.pl

—- Received —-
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 281
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 10 Aug 2016 19:23:18 GMT

<tutaj wycięta, bo niestety mało przydatna w binarnej postaci zawartość odpowiedzi serwera JPK na zapytanie Status>

Comments are closed.