Autor Zpráva
Musilda
Profil
Nejprve chci předeslat, že vůbec netuším, zda jsem to dal do správné kategorie.

Toto je kód z API Fakturoidu

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://app.fakturoid.cz/api/v2/accounts/{slug}/invoices/{id}/fire.json?event=pay");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_POST, TRUE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json",
  "User-Agent: YourApp (yourname@example.com)"
));

$response = curl_exec($ch);
curl_close($ch);

Bez problémů funguje, ale na nginx serveru to vyhazuje 400 Bad request. Tak nějak jsem vyčetl, že je problém v tom, že pokud je curl_setopt($ch, CURLOPT_POST, TRUE), tak by v url neměl být ?event=pay.

Ale na Apachi to normálně funguje.

Nebo se prostě pletu a problém je jinde. Každá rada bude vítána.


Může prosím někdo z moderátorů tuto mou hloupu otázku smazat? Děkuji :-)
M4n
Profil *
Možná by se slušelo dodat, že použití modulu cURL pro HTTP(s) komunikaci je až na velmi řídké výjimky zbytečné až kontraproduktivní. V prakticky 100 procentech případů postačí obyčejný file_get_contents() spolu se stream_context_create().
Keeehi
Profil
Musilda:
Proč znovu vymýšlet kolo? Přímo od fakturoidu existuje knihovna na komunikaci s jejich API. Od posílání http požadavků tě to úplně odstíní, takže to nemusíš řešit.
github.com/fakturoid/fakturoid-php
Musilda
Profil
Keeehi:
Tu já používám, ale u jednoho klienta mi nefunguje a snžím se najít řešení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: