[ Dexxxl @ 02.12.2022. 20:11 ] @
Da li je neko vec radio ovo ili ima iskustva?

Problem je sto ne znam kako odraditi metodu send


Probao sam na vise nacina i nista od ovoga ne prolazi


Code:

Dim slanje As New MSXML2.XMLHTTP60

Dim addressa As String
addressa = "https://efaktura.mfin.gov.rs/a...-invoice/ubl/upload?requestId=" & BrojMojeFakture & Chr(38) & "sendToCir=Auto"

With slanje
            .Open "POST", addressa, "False"

            .setRequestHeader "accept", "text/plain"
            .setRequestHeader "APIKey", "mojAPIkey"
            .setRequestHeader "Content-Type", "multipart/form-data" 'ako se salje xml fajl sa compa
            '.setRequestHeader "Content-Type", "application/xml" 'ako se xml slaze iz coda


            .send "ublFile=@" & E:\MojaPutanja\MojFajl.xml

End With



Kao ni

Code:

Dim slanje As New MSXML2.XMLHTTP60

Dim addressa As String
addressa = "https://efaktura.mfin.gov.rs/a...-invoice/ubl/upload?requestId=" & BrojMojeFakture & Chr(38) & "sendToCir=Auto"


Dim oXML As Object
Set oXML = CreateObject("MSXML2.DOMDocument")
oXML.async = False
oXML.Load (Putanja & NazivFajla & ".xml")


With slanje
            .Open "POST", addressa, "False"

            .setRequestHeader "accept", "text/plain"
            .setRequestHeader "APIKey", "mojAPIkey"
            '.setRequestHeader "Content-Type", "multipart/form-data" 'ako se salje xml fajl sa compa
            .setRequestHeader "Content-Type", "application/xml" 'ako se xml slaze iz coda

            .send (oXML.XML)
            End With

If slanje.Status = 200 Then
 ...itd
end if



kao response dobijam

"Message":"Incorrect Content-Type: application/xml","FieldName":"","ErrorCode":"XmlInvalid"}"

isto se desava i kad xml fajl ucitam u string i stavim ga u SEND.
xml fajlovi su validni, prolaze kad ih rucno posaljem na sajt.

u prilogu dajem deo iz uputstva sa parametrima za slanje, ali ja sa ovim nemam puno iskustva, i ne znam da li sam ih pravilno rastumacio.

Unapred hvala za svaku pomoc


[Ovu poruku je menjao Dexxxl dana 02.12.2022. u 21:36 GMT+1]
[ Dexxxl @ 13.12.2022. 21:53 ] @
Kakva glupa sitnica!!!

Pri ucitavanju XML fajla u string redove jednostavno treba razdvojiti razmakom.

Ne prolazi Chr(13), Chr(10) ni Vbcrlf, kao ni ako ne stavite nista.

Kod koji glatko prolazi

Code:

Dim slanje As New MSXML2.XMLHTTP60

Dim addressa As String
addressa = "https://efakturatest.mfin.gov.rs/api/publicApi/" & _
"sales-invoice/ubl?requestId=" & VasReqID & Chr(38) & "sendToCir=Auto"

dim SendString as string
SendString = XmlStr("E:\" & VasaPutanja & "\" & NazivVasegXMLFajla & ".xml")

With slanje
            .Open "POST", addressa, "False"
            .setRequestHeader "accept", "text/plain"
            .setRequestHeader "APIKey", "mojAPIkey"
            .setRequestHeader "Content-Type", "application/xml"
            .send SendString
End With

If slanje.Status = 200 Then ' Slanje fakture uspelo
            MsgBox "Faktura uspesno poslata"
            
            itd..
End If 



Pri cemu je Funkcija XmlStr

Code:

Public Function XmlStr(PunaPutanjaDoXMLFajla as String) as String

Dim Temp as String

Open PunaPutanjaDoXMLFajla For Input As #1

While Not EOF(1) 
 Line Input #1, Temp
 XmlStr = XmlStr & Temp
Wend

Close #1

XmlStr = Replace(XmlStr, "><", "> <")

End Function


requestId je neki string koji u principu moze bilti bilo sta, ali mora biti jedinstven, pa ja stoga stavljam broj fakture.



[ stanos @ 19.12.2022. 17:34 ] @
Probao sam ovaj kod ali ne prolazi.

Stalno dobijam kao response

"Message":"Incorrect Content-Type: application/xml","FieldName":"","ErrorCode":"XmlInvalid"}"

Da li nekome ovo radi?

[Ovu poruku je menjao stanos dana 19.12.2022. u 18:49 GMT+1]
[ fiola @ 19.12.2022. 17:51 ] @
Proveri XML fajl.
Mislim da mora da bude UTF-8, ne može UTF-8 with bom.
[ stanos @ 19.12.2022. 18:06 ] @
XMl fajl prolazi bez problema kada ga direktno ucitam u efakturama.
[ fiola @ 19.12.2022. 18:21 ] @
>
[ fiola @ 19.12.2022. 18:35 ] @
Da i meni prolazi direktno, ali preko API imao sam problem dok nisam kovertovao u UTF-8. Otvoriš fajl u notepadu i u donjem desnom uglu vidiš da li je čist UTF-8
[ Dexxxl @ 20.12.2022. 16:53 ] @
Ako se xml slaze iz Accessa on bude čist UTF-8

Opet su nesto menjali. Vise ne prolazi

sendToCir=Auto

vec moras da postavis da li je Yes ili No
[ stanos @ 20.12.2022. 18:33 ] @
Proba i "sendToCir=No" ali ne prolazi.

Molim te ako ti nije problem posalji mi jedan tvoj XML koji ti prolazi da uporedim sa mojim.
Nikako da prodje. XML je UTF-8 ali stalno dobijam istu gresku :

{"Message":"Incorrect Content-Type: application/xml","FieldName":"","ErrorCode":"XmlInvalid"}
[ Dexxxl @ 20.12.2022. 18:56 ] @
Za budzetske firme sendToCir=Yes
Za budzetske firme koje vrse komercijalnu delatnost sendToCir=No
Za privatne firme sendToCir=No

Primer je bez PDF-a
[ mustur @ 27.12.2022. 11:01 ] @
Dobar dan, da li bi neko mogao da mi pomogne.
Ubacio sam oba CODA. Prvi COD sam prilagodio:
-------------------------------------------------------------------------------------------

Dim slanje As New MSXML2.XMLHTTP60

Dim addressa As String
addressa = "https://efakturatest.mfin.gov.rs/api/publicApi/" & _
"sales-invoice/ubl?requestId=" & "13027" & Chr(3 & "sendToCir=Auto" - 13027-broj fakture

Dim SendString As String
'SendString = XmlStr("E:\" & VasaPutanja & "\" & NazivVasegXMLFajla & ".xml")
SendString = XmlStr("C:\E-Fakture\To\271222\13027.xml") -moja putanja za fajl koji je ispravan

With slanje
.Open "POST", addressa, "False"
.setRequestHeader "accept", "text/plain"
.setRequestHeader "APIKey", "584e7c77-17da-43d9-9a8e-4a8a8559d5cc" -moj API kljuc
.setRequestHeader "Content-Type", "application/xml"
.send SendString
End With

If slanje.Status = 200 Then ' Slanje fakture uspelo
MsgBox "Faktura uspesno poslata"

End If
---------------------------------------------------------------------------------------------------------
Drugi COD je isti.
---------------------------------------------------------------------------------------------------------
Public Function XmlStr(PunaPutanjaDoXMLFajla As String) As String

Dim Temp As String

Open PunaPutanjaDoXMLFajla For Input As #1

While Not EOF(1)
Line Input #1, Temp
XmlStr = XmlStr & Temp
Wend

Close #1

XmlStr = Replace(XmlStr, "><", "> <")

End Function

---------------------------------------------------------------------------------------------------------
Koristim MS Access 2002 i pri Compile ne prijavljuje problem
Prvi COD sam ubacio u OnClick
Prilikom izvrsavanja nista se ne desava niti ista reaguje, na sajtu se ne pojavljuje faktura...
Da li mozete da mi pomognete gde grešim ?

HVALA
[ fiola @ 27.12.2022. 15:07 ] @
--addressa = "https://efakturatest.mfin.gov.rs/api/publicApi/" & _
--"sales-invoice/ubl?requestId=" & "13027" & Chr(38) & "sendToCir=Auto"

Mislim da adresa ne valja. Treba https://demoefaktura.mfin.gov.rs (za vežbu) ili https://efaktura.mfin.gov.rs, plus SendToCir mora biti Yes ili No
[ mustur @ 28.12.2022. 10:24 ] @
--addressa = "https://efakturatest.mfin.gov.rs/api/publicApi/" & _
--"sales-invoice/ubl?requestId=" & "13027" & Chr(3 & "sendToCir=Auto"

Mislim da adresa ne valja. Treba https://demoefaktura.mfin.gov.rs (za vežbu) ili https://efaktura.mfin.gov.rs, plus SendToCir mora biti Yes ili No
_____________________________________________________________________________________________________________________
-Promenio adresu na "https://demoefaktura.mfin.gov.rs"
-Postavio SendToCir Yes

Promenio adresu na "https://demoefaktura.mfin.gov.rs" i napravio da mi javi broj greske i javio greska 400
Kada sam vratio na adresu "https://efakturatest.mfin.gov.rs" javlja gresku 401


Sta je greska 400 i 401 ?

Hvala unapred na trudu i pomoci

[Ovu poruku je menjao mustur dana 28.12.2022. u 11:36 GMT+1]

[Ovu poruku je menjao mustur dana 28.12.2022. u 11:43 GMT+1]
[ mustur @ 28.12.2022. 13:49 ] @
Promenio "multipart/form-data" i sada izlazi greska 415 ?

Unapred Hvala
[ fiola @ 28.12.2022. 13:51 ] @
--Promenio adresu na "https://demoefaktura.mfin.gov.rs"
--Postavio SendToCir Yes

--Promenio adresu na "https://demoefaktura.mfin.gov.rs" i napravio da mi javi broj greske i javio greska 400
--Kada sam vratio na adresu "https://efakturatest.mfin.gov.rs" javlja gresku 401

Ja sam imao na par računara sa win7 sličan problem, na drugim računarima sa win7 je radilo ok.
Na svim računarima koristim access runtime 2013.

2002 je previše mator, proveri da li imaš čekirano Microsoft XML v6.0, mada bi kukao odmah, ne bi došlo do slanja fakture.

Ubaci else, pa ako nije status 200 trebao bi da dobiješ više informacija.


Code:
If slanje.Status = 200 Then ' Slanje fakture uspelo
MsgBox "Faktura uspesno poslata"
else

MsgBox slanje.responseText
MsgBox slanje.Status & " " & slanje.statusText
End If 
[ mustur @ 29.12.2022. 13:40 ] @
Izbacuje mi gresku 401 Unauthorized
Da li treba neki username da se negde upise ili samo Api kljuc ?
[ stanos @ 29.12.2022. 17:01 ] @
Da li je neko probao da posalje XML fajl kao attachment?
Slanje XML-a kao string mi nikako ne prolazi. Stalno dobijam istu gresku. "{"Message":"Incorrect Content-Type: application/xml","FieldName":"","ErrorCode":"XmlInvalid"}"

Probao sam da posaljem i fajl sto mi je Dexxxl poslao. Ista greska.
Koristim Access 2016.
[ fiola @ 29.12.2022. 18:42 ] @
Citat:
mustur: Izbacuje mi gresku 401 Unauthorized
Da li treba neki username da se negde upise ili samo Api kljuc ?


Ne treba ništa osim Api ključa.
Normalno raziličit je za demo i za produkciju.

Znači mora da se menja api ključ u zavisnosti da li se šalje na demoefaktura ili efaktura.

Koliko mogu da zaključim po grešci tebi send prolazi i od servera dobiješ odgovor kao da nisi ovlašćen .


[ mustur @ 30.12.2022. 10:45 ] @
Koristim fajlove koji su ispravni jer ih ručno ubacujem i prolaze bez greške.
Kada ih ručno ubacim u Demo isto prolaze bez greške.
To su već napravljeni fajlovi na kompu koje saljem

Da li imate neku ideju ?

Hvala
[ mustur @ 04.01.2023. 13:45 ] @
Prijatelji
Uspešno sam ostavrio komunikaciju i poslao.xml file na server.
Hvala svima na pomoći
[ goranparcomp @ 04.01.2023. 19:40 ] @
Citat:
mustur: Prijatelji :)
Uspešno sam ostavrio komunikaciju i poslao.xml file na server.
Hvala svima na pomoći


Šta se na kraju ispostavilo kao problem?
[ mustur @ 04.01.2023. 20:56 ] @
--
Srdačan pozdrav i Zdravlja
Gojko Mustur
063/43-44-58
[email protected]
[ stanos @ 25.07.2023. 18:48 ] @
Da li neko ima reseno kako da se posalje dodatni prilog uz efakturu (npr. skeniranu otpremnicu). Znam da mora biti u PDF formatu.
Kod slanja fakture za sada saljem samo fakturu u PDF formatu.


Deo koda za kreiranje XML-a u kojem saljem fakturu u PDF :

---------------------------------------------------------------
strText = " <cac:Attachment>" & vbCrLf
fs.WriteText Data:=strText
strText = " <cbc:EmbeddedDocumentBinaryObject mimeCode=" & Chr(34) & "application/pdf" & Chr(34) & " encodingCode=" & Chr(34) & "base64" & Chr(34) & " filename=" & Chr(34) & "BROJFAKTURE.pdf" & Chr(34) & ">" & strEncode & "</cbc:EmbeddedDocumentBinaryObject>" & vbCrLf
fs.WriteText Data:=strText
strText = " </cac:Attachment>" & vbCrLf
fs.WriteText Data:=strText

----------------------------------------------------------------

strEncode -> konvertovna faktura u Base64

[ djux66 @ 26.07.2023. 09:31 ] @
Pa ako već imaš kod koji radi, i koji ti već generiše xml za pdf fakturu u prilogu, treba samo da ga pozoveš ponovo i da generišeš xml koji otprilike izgleda ovako:

Code:
      
      <cac:AdditionalDocumentReference>
        <cbc:ID>prilog1</cbc:ID>
        <cac:Attachment>
          <cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf">base64string....</cbc:EmbeddedDocumentBinaryObject>
        </cac:Attachment>
      </cac:AdditionalDocumentReference>
      <cac:AdditionalDocumentReference>
        <cbc:ID>prilog2</cbc:ID>
        <cac:Attachment>
          <cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf">base64string...</cbc:EmbeddedDocumentBinaryObject>
        </cac:Attachment>
      </cac:AdditionalDocumentReference>


Najbolje refaktor taj deo koda u posebnu funkciju pa ga pozivaš za svaki pdf prilog.
[ stanos @ 26.07.2023. 10:20 ] @
Skontao. Radi. Hvala.