繁体   English   中英

在 PHP 中集成 SMS 网关时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM