Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

guest-user

sms - erro ao obter resultado de envio sms - return - php

Recommended Posts

Bom dia a Todos,

 

Estou com um problema na hora de receber os DADOS da API .

 

Quando efetuo o post com as informações de numero de mensagem .

 

não recebe umas as confirmações da API o retorno Se a Mensagem foi Enviada ou Ocorreu um erro!

 

Agradeço desde já.

<?php
if (isset($_POST['enviar']) && $_POST['enviar'] == "enviarsms"){
// Recuperando POST
extract($_POST);
if(empty($campoCEL_d)){
 echo "<script>alert('Voce precisa preencher o numero');history.back();</script>";
 exit();
 
 } elseif(empty($campoSMS)){
 echo "<script>alert('Voce precisa preencher a mensagem');history.back();</script>";
 exit();
 
  }
 
// Enviar SMS:
$UserID = '//';
$Token = '//';
$numerocelular = $campoCEL_d;
$mensagemaenviar = urlencode($campoSMS);

$URLGateway = 'http://www.misterpostman.com.br/gateway.aspx?UserID='.$UserID.'&Token='.$Token.'&NroDestino='.$numerocelular.'&Mensagem='.$mensagemaenviar.'';

//NÃO RECEBE OS ERROS NÃO EXECUTA O SCRIPT //
$resultado = file_get_contents($URLGateway);

 if($resultado = "OK"){
    echo "<script>alert('Mensagem Enviada com sucesso!');</script>";
}
 if($resultado = "ERRO:"){
    echo "<script>alert('Erro ao enviar mensagem!')';</script>";
}

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de partires para o uso de cURL, repara que nas tuas condições estás, na verdade, a fazer atribuições a uma variável.

 

Tenta usar a função strpos para verificar se existe determinada expressão numa string:

<?php 
 $resultado = file_get_contents($URLGateway);
 if (strpos($resultado, "OK")) 
 {
    echo "<script>alert('Mensagem Enviada com sucesso!');</script>";
 }
 if (strpos($resultado, "ERRO:")) 
 {
    echo "<script>alert('Erro ao enviar mensagem!')';</script>";
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a Todos pela Força, porem continua o mesmo, teste usando cURL ele me da o resultado na tela Eu errei o usuário e senha p/ gerar o erro e trabalhar em cima dele.

 

Gostaria de que não aparece este erro na tela e Sim que Verificasse se existe a palavra ERRO: ou OK para aparecer como alerta do Javascript ! dessa jeito Que você passou usando o strpos não deu certo não chegou nem a aparecer alguma mensagem na tela se deu erro ou foi enviado ! como esta abaixo na imagem.

 

I1eA9S9.png

 

Antes de partires para o uso de cURL, repara que nas tuas condições estás, na verdade, a fazer atribuições a uma variável.

 

Tenta usar a função strpos para verificar se existe determinada expressão numa string:

<?php 
 $resultado = file_get_contents($URLGateway);
 if (strpos($resultado, "OK")) 
 {
    echo "<script>alert('Mensagem Enviada com sucesso!');</script>";
 }
 if (strpos($resultado, "ERRO:")) 
 {
    echo "<script>alert('Erro ao enviar mensagem!')';</script>";
 }

CÓDIGO QUE ESTOU USANDO COM CURL

<?php
if (isset($_POST['enviar']) && $_POST['enviar'] == "enviarsms"){
// Recuperando POST
extract($_POST);
if(empty($campoDDD_d)){
 echo "<script>alert('DDD Invalido');history.back();</script>";
 exit();
 
} elseif(empty($campoCEL_d)){
 echo "<script>alert('Voce precisa preencher o numero');history.back();</script>";	
 exit();
 
 } elseif(empty($campoSMS)){
 echo "<script>alert('Voce precisa preencher a mensagem');history.back();</script>";
 exit();
 
  }
 
// Enviar SMS:
$UserID = '//';
$Token = '//';
$numerocelular = $campoDDD_d.$campoCEL_d;
$mensagemaenviar = urlencode($campoSMS);

$URLGateway = 'http://www.misterpostman.com.br/gateway.aspx?UserID='.$UserID.'&Token='.$Token.'&NroDestino='.$numerocelular.'&Mensagem='.$mensagemaenviar.'';

$resultado = file_get_contents($URLGateway);

//Iniciar Curl
if (!function_exists('curl_init')){
    die('Este servidor nao possui Curl!');
}   

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URLGateway);
$resultado = curl_exec($ch);

curl_close($ch);

}
?>

SO QUERIA PEGAR A MENSAGEM QUE APARECE NA TELA E COLOCAR COMO ENVIADO COM SUCESSO EM ALERTA OU ERRO AO ENVIAR COMO ALERTA.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca strpos($resultado, "OK") por strcmp($resultado, "OK"), ou por $resultado === "OK"

 

Então amigo fiz dessa forma, como explicou porem sempre Quando clico em enviar me retorna o alerta porem sempre (Mensagem Enviada com sucesso!) mesmo sem meu UserID e Token e mesmo quando coloco os dois acontece a mesma coisa.

 

ele não esta verificando só esta executando o echo do alerta (Mensagem Enviada com sucesso!) .

// Enviar SMS:
    $UserID = '//';
    $Token = '//';
    $numerocelular = $campoCEL_d;
    $mensagemaenviar = urlencode($campoSMS);

$URLGateway = 'http://www.misterpostman.com.br/gateway.aspx?UserID='.$UserID.'&Token='.$Token.'&NroDestino='.$numerocelular.'&Mensagem='.$mensagemaenviar.'';

 $resultado = file_get_contents($URLGateway);
 if (strmp($resultado, "OK")) 
 {
    echo "<script>alert('Mensagem Enviada com sucesso!');</script>";
 }
 if (strmp($resultado, "ERRO:")) 
 {
    echo "<script>alert('Erro ao enviar mensagem!')';</script>";
 }
}
 ?>

Consultei os parâmetros de retorno da API esta certo não entendo porque isso acontece.

vGMlO1D.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso esta tornando minha vida um inferno kkk Sinceramente agradeço muito a todos que estão dando a maior força, só preciso dessa mensagem CREIO QUE DEVE SER ALGO SIMPLES QUE ESTÁ ACONTECENDO ESSE ERRO É MEU ENTENDIMENTO EM PHP FRACO ME AJUDA MUITO KKK

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome da função indicada pelo vinifonseca1618 é strcmp e não strmp. Talvez esteja aí o problema.

 

Obrigado não tinha visto porem agora o problema é outro kkk to enchendo o saco de vocês já Muito Obrigado mesmo .

O Problema é que agora ele dá as duas mensagens independente do retorno .

 

Coloquei p/ aparecer na tela o echo ele executa os dois ECHOS, em Alerta a mesma coisa.

 

UIZv7kO.png

// Enviar SMS:

$UserID = '//';
$Token = '//';
$numerocelular = $campoDDD_d.$campoCEL_d;
$mensagemaenviar = urlencode($campoSMS);


$URLGateway = 'http://www.misterpostman.com.br/gateway.aspx?UserID='.$UserID.'&Token='.$Token.'&NroDestino='.$numerocelular.'&Mensagem='.$mensagemaenviar.'';

 $resultado = file_get_contents($URLGateway);
 if (strcmp($resultado, "OK")) 
 {
    echo "Mensagem Enviada com sucesso!";
 }
 if (strcmp($resultado, "ERRO:")) 
 {
    echo "Erro ao enviar mensagem!";
 }
}
 ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que o problema está no facto de ambas as expressões ("ERRO" e "OK") estarem presentes na frase:

 

ACjXW.jpg

 

Embora a documentação da linguagem diga que esta função é case-sensitive, não me parece ser esse o caso. No entanto, podes usar um simples else para resolver a questão:

<?php
    $resultado = "ERRO: UserID e/ou Token não confere. Revise estes valores fixos na sua conta. Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).";
    if (strcmp($resultado, "ERRO:") !== false) 
    {
      echo "Erro ao enviar mensagem!";
    }
    else 
    {
      echo "Mensagem Enviada com sucesso!";
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.