在PHP中使用SMS Gateway API

时间:2009-03-29 04:15:33

标签: php sms

我无法使用以下代码发送短信,但我可以使用相同的网址发送短信,而我将网址($ 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 个答案:

答案 0 :(得分:1)

mysmsmantra现在可用作drupal模块,您可以使用相同的触发器和操作,可以在http://drupal.org/project/sms_mysmsmantra找到该模块

答案 1 :(得分:0)

将您的代码更改为此。应该工作:

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

$ch = curl_init($murl);

您也可以在curl_init函数中设置URL。

答案 2 :(得分:0)

如果您不需要服务器端标题答案,也可以使用$ response = file_get_contents($ murl)省略curl。另请检查http_build_query()。

答案 3 :(得分:0)

也许您需要设置用户代理。您正在使用的服务可能阻止了默认的用户代理:

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

希望这有帮助!

答案 4 :(得分:0)

查看症状,我认为这是防火墙/访问的问题。您是否尝试过只从同一站点获取页面的脚本,只是为了看到没有阻止访问的防火墙/代理设置。您可以使用命令行Web浏览器(如lynx)从运行该脚本的服务器访问该站点,以检查服务器是否允许该请求结束。

如果你足够游戏,可以运行一些数据包嗅探器来查看是否有任何请求数据包从服务器发出。

答案 5 :(得分:0)

<?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>