[英]Issue while integrating SMS gateway in PHP
在我的 PHP 项目中,我想集成 SMS 网关。
我已经集成了 HSPSMS SMS 网关。
他们为此提供了一个 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");
?>
请帮助我或指导我做对或错的地方?
任何帮助将是可观的。
您将用户的浏览器发送到 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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.