Integração com Api Onvio (PHP / CURL)

05/05/2021

0

Olá amigos,

Estou fazendo a integração do ERP com a Api da Onvio, mas estou com dificuldade de enviar o xml para a Api. Precisa ser enviado dois parâmetros no Body que é o "file[]" como "application/xml" e a "query" como "application/json" e não sei como informar eles em conjunto. Hoje da forma que eu envio da retorno de erro "HTTP 400 Bad Request".

$url = "https://api.onvio.com.br/dominio/invoice/v2/batches";

$header = [
      "Content-Type: multipart/form-data",
      "Authorization: Bearer ".$access_token
];

$data = [
       "file[]" => new CURLFILE("./xml_api_onvio.xml"), // envia arquivo (precisa ser "application/xml")
       "query" => "{boxe/File: true}" // Query (precisa ser "application/json")
];

$tokens = conexao_onvio($url, $header, $data, "post");


function conexao_onvio($url, $header, $data = null, $modo = null){

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);

        if($modo == 'post'){
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        }

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

        $response = json_decode(curl_exec($ch), true);

        curl_close($ch);

        return $response;
}
Eduardo Silva

Eduardo Silva

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar