Использование SMS Gateway API в PHP - PullRequest
0 голосов
/ 29 марта 2009

Я не могу отправить смс, используя следующий код, но я могу отправить смс, используя тот же URL, в то время как я вставляю URL ($ murl) в адресную строку браузера

тайм-аут соединения, слишком много времени для выполнения, но без результата

в чем проблема?

$amount="500";
$d="23-03-09";

$mNumber="98689988898";
$mName="TEST";
$mMessage ="\"We have debited Rs.$amount. Your account on $d.  Thank you for your valuable support.";
$u1 = 'http://bulksms.mysmsmantra.com:8080/WebSMS/SMSAPI.jsp?';
$u2= 'username='.urlencode('some').'&password='. urlencode('some').'&sendername='.urlencode('some') .'&mobileno='
. urlencode($mNumber).'&message='.urlencode($mMessage).'&submit=Submit';

$murl=$u1.$u2;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $murl);
//curl_setopt($ch, CURLOPT_HEADER, 1); 
//curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
/*curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $u2);
*/$response = curl_exec($ch);
print "Respons : $response";
curl_close($ch);

Ответы [ 6 ]

1 голос
/ 31 августа 2010

mysmsmantra теперь доступен в виде модуля drupal, который вы можете использовать с триггерами и действиями, которые можно найти на http://drupal.org/project/sms_mysmsmantra

0 голосов
/ 04 мая 2017
<?php
if(isset($_POST['submit'])){
 $message=  rawurlencode($_POST['message']);
$phone=$_POST['phone'];
$url='http://sms.yourdomain.com/httpapi/smsapi?uname=xxxx&password=******&sender=XXXXX&receiver='.$phone.'&route=TA&msgtype=1&sms='.$message;
$ch = curl_init();
$header = array("Content-Type:application/json", "Accept:application/json");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 2);
curl_setopt($ch, CURLOPT_POST, 1);

// response of the POST request
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$responseBody = json_decode($response);
curl_close($ch);
}
?>
<form action="sms.php" method="post">
Phone: <input type="text" name="phone"><br>
Message: <input type="text" name="message"><br>
<input type="submit" name="submit" value="sent">
</form>
0 голосов
/ 19 апреля 2011

Глядя на симптомы, я думаю, что это проблема с брандмауэром / доступом. Вы пробовали скрипт, который просто получает страницу с того же сайта, чтобы увидеть, что нет настройки брандмауэра / прокси, блокирующей доступ. Вы можете просто использовать веб-браузер командной строки, такой как lynx, чтобы получить доступ к сайту с сервера, на котором вы запускаете скрипт, чтобы проверить, разрешает ли сервер отправлять запрос.

Если вы достаточно играете, запустите некоторые снифферы пакетов, чтобы узнать, поступают ли какие-либо пакеты запроса с сервера.

0 голосов
/ 23 ноября 2009

Возможно, вам нужно установить пользовательский агент. Служба, которую вы используете, может блокировать пользовательский агент по умолчанию:

curl_setopt($ch, CURLOPT_USERAGENT, 'SMS Gateway Agent/1.0'); // Pick something creative, or use a browser UA

Надеюсь, это поможет!

0 голосов
/ 30 марта 2009

Вы также можете опустить curl с $ response = file_get_contents ($ murl), если вам не нужны ответы заголовков на стороне сервера. Проверьте также http_build_query ().

0 голосов
/ 29 марта 2009

Измените свой код на это. Должно работать:

FROM

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $murl);

К

$ch = curl_init($murl);

Вы также можете установить URL в функции curl_init.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...