在我的PHP项目中,我想集成SMS网关。
我已经集成了HSPSMS短信网关。
他们为此提供了一个API,但遗憾的是我无法以正确的方式调用它。用户成功注册到网站后,我已经调用了API,用于向用户发送有关相同的信息,以通知他已成功注册。目前我正在发送相同的短信,但API可以发送回复短信发送(成功发送或不发送JSON格式的短信)。
这是一个问题 - 我无法捕获到SMS网关的返回响应,因此导致响应显示在用户/网页上。
这对用户来说是个问题。
对于调用SMS网关,我使用了PHP Header函数,如:
header("Location:URL of SMS Gateway");
我的代码为贝娄,
<?php
include("otherpages/connection.php");
if(isset($_POST['submit1'])) {
$mname=$_POST['mname'];
$cdate=$_POST['cdate'];
$maddress1=$_POST['maddress'];
$mschool=$_POST['mschool'];
$mkendra=$_POST['centrename'];
$mmobile=$_POST['mmobile'];
$user=$_POST['user'];
$pass=$_POST['pass'];
$approved="0";
$qr="insert into tempregistration values('','$cdate','$mname','$maddress1','$mschool','$mschool','$mkendra','$mmobile','$user','$pass','$approved')";
// Code for Registration SMS
$url = 'http://sms.hspsms.com/sendSMS?username=#USERNAME#&message=Dear User,You Have Succeffully Registered to ABC.com ,Thanks&sendername=HSPSMS&smstype=PROMO&numbers=9503808004&apikey=#APIKey#';
header("Location:$url");
?>
请帮助我或指导我做对或错的地方?
任何帮助都会很明显。
答案 0 :(得分:0)
您正在将用户的浏览器发送到API,您要做的是让PHP发出请求,然后告诉用户它是否成功。
您可以使用get_file_contents,但curl会为您提供更多控制权。
您应该有一个函数将请求发送到API并返回成功/失败,然后向用户显示消息。
像这样(未经测试):
if(isset($_POST['submit1'])) {
$mname=$_POST['mname'];
$cdate=$_POST['cdate'];
$maddress1=$_POST['maddress'];
$mschool=$_POST['mschool'];
$mkendra=$_POST['centrename'];
$mmobile=$_POST['mmobile'];
$user=$_POST['user'];
$pass=$_POST['pass'];
$approved="0";
$qr="insert into tempregistration values('',
'$cdate','$mname','$maddress1','$mschool',
'$mschool','$mkendra','$mmobile','$user','$pass','$approved')";
//update to encode parameters which contain spaces
$message = urlencode('Dear User, You have successfully registered ...');
// other parametes might also contain spaces ...
$username = urlencode('#USERNAME');
$sendername = urlencode('HSPSMS');
//etc
$url = 'http://sms.hspsms.com/sendSMS?username='.$username
.'&message='.$message
.'&sendername='.$sendername
.'&smstype=PROMO&numbers=9503808004&apikey=#APIKey#';
if ($result = do_api_call($url)){
echo "SMS API returned:<br>";
echo $result;//for debugging
}else {
echo "Failure"
}
}
...
function do_api_call($url){
//this is very simplistic code to get you going ...
//use curl instead for more control
return file_get_contents($url);
}