Exemple #1
0
if (ini_get('date.timezone')) {
    echo 'date.timezone: ' . ini_get('date.timezone') . '<br />';
}
$now = date("Y-m-d H:i:s");
echo "<p>дата - {$now}</p>";
$dateTime = new DateTime("now", new DateTimeZone('GMT'));
$mysqldate = $dateTime->format("Y-m-d H:i:s");
echo "<p>дата для mysql - {$mysqldate}</p>";
echo '<p>узнаем текущий баланс JSON</p>';
var_dump($gate->credits());
// узнаем текущий баланс
echo '<p>узнаем текущий баланс REST</p>';
$rest_credits = Utility::HttpRequest('http://api.iqsms.ru/messages/v2/balance/', array('login' => 'z1469184353311', 'password' => '948621'));
$rest_credits = explode(';', $rest_credits);
var_dump($rest_credits);
echo '<p>получаем список доступных подписей</p>';
var_dump($gate->senders());
// получаем список доступных подписей
$messages = array(array("clientId" => "1", "phone" => "79222605250", "text" => "Тестовое сообщение"));
//var_dump($gate->send($messages, 'testQueue')); // отправляем пакет sms
/*$messages = array(
    array("clientId"=>"1","smscId"=>1885654369),
//    array("clientId"=>"2","smscId"=>11255143),
//    array("clientId"=>"3","smscId"=>11255144),
);*/
echo '<p>получаем статусы для пакета sms</p>';
var_dump($gate->status($messages));
// получаем статусы для пакета sms
echo '<p>получаем статусы из очереди testQueue</p>';
var_dump($gate->statusQueue('testQueue', 100));
// получаем статусы из очереди 'testQueue'
function send_sms_msg($order_id = 0)
{
    $packet_msg_count = 200;
    $settings = get_settings();
    if ($settings['sms_api_username'] == '' || $settings['sms_api_password'] == '') {
        echo '<p>Не указаны параметры для отправки СМС !</p>';
        return false;
    }
    $query = "SELECT * FROM `iqsms_msg` WHERE id_status IN (0,2,3,4,5,6,7,8)";
    if ($order_id > 0) {
        $query .= " AND order_id = " . $order_id;
    }
    // Получим список неотправленных или отправленных с ошибкой СМС
    $sms_not_sended = DB::GetQueryResult($query, false);
    if (!$sms_not_sended) {
        return false;
    }
    $gate = new iqsms_JsonGate($settings['sms_api_username'], $settings['sms_api_password']);
    // узнаем текущий баланс
    //$gate_credits = $gate->credits();
    $gate_credits = check_balans_rest();
    // Проверим текущий баланс
    //if ($gate_credits['credits'] == 0) {
    //} else if ($gate_credits['credits'] <= (int)$settings['sms_api_min_balance']) {
    if ($gate_credits === false || $gate_credits == 0) {
        //echo '<p>Для отправки СМС необходимо пополнить баланс !</p>';
        return false;
    } else {
        if ($gate_credits <= (int) $settings['sms_api_min_balance']) {
            prepare_sms_admin(0, 'Баланс в сервисе IQSMS достиг минимума, пополните баланс.', 6);
        }
    }
    // получаем список доступных подписей
    $gate_senders = $gate->senders();
    // Проверим доступность подписи из настроек
    if ($settings['sms_api_phone'] != '') {
        if (!in_array($settings['sms_api_phone'], $gate_senders['senders'])) {
            echo '<p>Неверная (незарегистрированная) подпись отправителя !</p>';
            return false;
        }
    }
    //test
    //return false;
    // Отправим неотправленные сообщения
    $messages = array();
    $message_count = 0;
    foreach ($sms_not_sended as $one) {
        $messages[] = array("clientId" => $one['id'], "phone" => $one['phone'], "text" => $one['text']);
        if ($settings['sms_api_phone'] != '') {
            $messages[$message_count]['sender'] = $settings['sms_api_phone'];
        }
        $message_count++;
        if ($message_count == $packet_msg_count) {
            $ret_flag = send_sms_packet($gate, 'testQueue', $messages);
            if (!$ret_flag) {
                return false;
            }
            $messages = array();
            $message_count = 0;
        }
    }
    if ($message_count > 0) {
        $ret_flag = send_sms_packet($gate, 'testQueue', $messages);
        if (!$ret_flag) {
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}