Recebendo dados via application/json
Olá pessoal,
Já acionei o suporte da empresa que estou realizando a integração API mas nenhuma das respostas deles me ajudaram.
O API que possuo é HTTP REST e eu realizo o envio das informações em json via cURL como mostro no codigo abaixo
<?php
//API DO GATEWAY
$post['messages']['from'] = $dados['remetente'];
$post['messages']['destinations']['to'] = $dados['pais'].$destinatario;
$post['messages']['text'] = $dados['texto'];
$post['messages']['flash'] = $dados['flash'];
$post['messages']['notifyContentType'] = "application/json";
$post['messages']['notifyUrl'] = "http://www.meusite.com.br/infobip_dlr";
$url_dest = "https://api.infobip.com/sms/1/text/advanced";
$headers = array('Content-Type: application/json', 'Authorization: Basic '.$gatewayKey);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url_dest);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$result = curl_exec($ch);
?>
Através do notifyUrl eu especifico onde quero receber o callback do resultado final e no notifyContentType eu informo como quero recebe-lo, que no caso é via json.
Como disse, já entrei em contato com o suporte e também já li e reli de ponta a ponta o manual API deles, mas em nenhum momento eles informam através de qual tipo de requisição eles mandam para a minha url as informações via application/json.
URL do manual online sobre o recebimento do callback - https://dev.infobip.com/docs/notify-url
Na minha pasta /infobip_dlr eu tenho um arquivo index que salva as informações recebidas em meu banco de dados.
Eu já tentei salvar a matriz de $_GET e $_POST e nada.
Já tentei também fazer algo como:
<?php
header('Content-Type: application/json; charset=utf-8');
require("bd_connect.php");
$json = file_get_contents('php://input');
$obj = json_decode($json, true);
$sql = "INSERT INTO callback (report) VALUES ('".$obj."')";
$query = mysqli_query($connect_sql,$sql);
?>
E também, nada!
Essa tabela criei apenas para visualizar como eu receberia o DLR do API para que depois eu possa trata-lo, mas a questão aqui não é essa mas sim o recebimento do DLR em si porque essa minha index é requisitada porque vejo que há inserção de registro na tabela, mas o registro é sempre em branco, sem informação nenhuma.
Será que alguém ai conseguiria me dar uma ajuda porque nem o suporte da empresa consegue me ajudar =\
Discussão (16)
Carregando comentários...