如何阻止smsgateway发送更多消息

时间:2016-10-04 08:11:48

标签: php sms-gateway

我有点问题,我创建了以下功能:

function sendQuedMessagesByDeviceAndDate($deviceId){
    require_once 'php/classes/smsGateway.php';
    $smsGateway = new SmsGateway(SMS_GATEWAY_EMAIL, SMS_GATEWAY_PASSWORD);
    $result = $smsGateway->getQuedMessages($deviceId);
    $arr = $result['response']['result'];
    $data = array();
    $options = [
        'expires_at' => strtotime('+24 hours') // Cancel the message in 24 hours if the message is not yet sent
    ];
    foreach($arr as $res){
        if($res['status'] == 'queued' && $res['device_id'] == $deviceId && $res['queued_at'] > 1475452800 && $res['queued_at'] < 1475539200){
            array_push($data, $res);
        }
    }
    //$nrs = array();
    foreach($data as $mes){
       $smsGateway->sendMessageToNumber($mes['contact']['number'], $mes['message'], $deviceId, $options);
    }
    //return $data;
}

我错误地调用了该函数5-6次,如何告诉服务器从smsgateway停止发送消息,我找不到任何api调用来停止消息,并且来自他们网站的电子邮件是错误的,我无法向他们发送任何电子邮件,我也没有任何国际电话。

2 个答案:

答案 0 :(得分:0)

我讨厌这样说,但是你被搞砸了。如果提供商没有提供清除队列的方法,则会发送它们。

下次,首先用echo语句替换代码的发送位,以便更仔细地进行测试。试想一下,如果你错误地创建了一个无限循环会发生什么......

答案 1 :(得分:0)

我发现如果删除设备,它还会删除该设备的排队消息