Перейти к содержимому


Несколько запросов sendsms() в одном вычислении

несколько запросов sendsms()

Сообщений в теме: 11

#1 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 15 Июнь 2014 - 09:07

Здравствуйте, подскажите возможно ли сформировать несколько запросов sendsms() подряд в одном вычислении?

#2 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 15 Июнь 2014 - 10:30

Просмотр сообщенияAll_ex74 (15 Июнь 2014 - 09:07) писал:

Здравствуйте, подскажите возможно ли сформировать несколько запросов sendsms() подряд в одном вычислении?
Конечно, через цикл

#3 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 15 Июнь 2014 - 11:48

Просмотр сообщенияwondertalik (15 Июнь 2014 - 10:30) писал:

Конечно, через цикл

Можете подправить моё, пожалуйста?:

if ($line['Состояние'] == "Связана") // связана будет тогда только, если...
{
	    $zvka = data_table(130, "`status`<>'2' AND `f5620`='Исполняемая' AND `f1750`=".$line['ID']); // проверяем на наличие дубля размещаемой заявки   
	    $row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
	    if (!$zvka)
	    {
			    if (!$row)
			    {
					    data_update(240, array('f6130'=>0), "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID']); // присваиваем значение 0 полю Флаг по условиям
					    $row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
			    }
			    // создаём запись и копируем значения полей в т. Заявки
			    $zvka['Город'] = $line['Город']['ID'];
			    $zvka['Заказчик'] = $line['ID'];
			    $zvka['Тип услуги'] = $line['Связана по услуге']['ID'];
			    $zvka['Исполнитель'] = $row['id'];
			    $zvka['ID'] = insert_query($zvka, "Заявки");
			    // обновляем Флаг=1 по итогу
			    data_update(240, array('f6130'=>1), "id=",$row['id']);
	    }
	    $tlfn_isp = $row['f3470']; // берём с массива значение поля и присваиваем переменной
	    $tlfn_zak = str_replace(array('(',')', '-',' '), '', $line['Телефон']); // конвертим значение поля и присваиваем переменной
	    // формируем запросы на модуль отправки СМС
	    sendsms("Вами была сформирована заявка номер ".$zvka['ID']." на услугу ".$line['Связана по услуге']['Полное название'].". Тел. вашего исполнителя: 8 ".$tlfn_isp.". Ожидайте ответа.", $tlfn_zak, "ENU"); // СМС заказчику
	    sendsms("Вы дали согласие на исполнение заявки номер ".$zvka['ID']." по услуге ".$line['Связана по услуге']['Полное название'].". Для уточнения условий исполнения свяжитесь с заказчиком по тел. 8 ".$tlfn_zak.".", $tlfn_isp, "ENU"); // СМС исполнителю
}



#4 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 15 Июнь 2014 - 12:14

Просмотр сообщенияAll_ex74 (15 Июнь 2014 - 11:48) писал:

Можете подправить моё, пожалуйста?:

if($line['Состояние'] == "Связана") // связана будет тогда только, если...
{
    $zvka = data_table(130, "`status`<>'2' AND `f5620`='Исполняемая' AND `f1750`=" . $line['ID']); // проверяем на наличие дубля размещаемой заявки
    $row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
    if(!$zvka) {
	    if(!$row) {
		    data_update(240, array('f6130' => 0), "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID']); // присваиваем значение 0 полю Флаг по условиям
		    $row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
	    }
	    // создаём запись и копируем значения полей в т. Заявки
	    $zvka['Город'] = $line['Город']['ID'];
	    $zvka['Заказчик'] = $line['ID'];
	    $zvka['Тип услуги'] = $line['Связана по услуге']['ID'];
	    $zvka['Исполнитель'] = $row['id'];
	    $zvka['ID'] = insert_query($zvka, "Заявки");
	    // обновляем Флаг=1 по итогу
	    data_update(240, array('f6130' => 1), "id=", $row['id']);
    }
    $tlfn_isp = $row['f3470']; // берём с массива значение поля и присваиваем переменной
    $tlfn_zak = str_replace(array('(', ')', '-', ' '), '', $line['Телефон']); // конвертим значение поля и присваиваем переменной
    // формируем запросы на модуль отправки СМС
    //Количество повторов
    $countCycle = 1;
    for($i =  0; $i < $countCycle; $i++) {
	    sendsms("Вами была сформирована заявка номер " . $zvka['ID'] . " на услугу " . $line['Связана по услуге']['Полное название'] . ". Тел. вашего исполнителя: 8 " . $tlfn_isp . ". Ожидайте ответа.", $tlfn_zak, "ENU"); // СМС заказчику
	    sendsms("Вы дали согласие на исполнение заявки номер " . $zvka['ID'] . " по услуге " . $line['Связана по услуге']['Полное название'] . ". Для уточнения условий исполнения свяжитесь с заказчиком по тел. 8 " . $tlfn_zak . ".", $tlfn_isp, "ENU"); // СМС исполнителю
    }
}


#5 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 15 Июнь 2014 - 16:07

Спасибо вам большое.

#6 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 15 Июнь 2014 - 16:44

Просмотр сообщенияAll_ex74 (15 Июнь 2014 - 16:07) писал:

Спасибо вам большое.
Пожалуйста.

#7 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 15 Июнь 2014 - 21:43

Почему то СМС отсылается несколько раз, что наглядно видно в архиве отправленных СМС. И Именно вычисление косячит, а не модуль шлюза... где искать косяк?


					
					<br />
					<p class= Сообщение отредактировал All_ex74: 15 Июнь 2014 - 21:44


#8 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 15 Июнь 2014 - 21:48

Так вы же этого и хотели, в первом посте. Разве нет?

#9 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 16 Июнь 2014 - 08:24

Просмотр сообщенияwondertalik (15 Июнь 2014 - 21:48) писал:

Так вы же этого и хотели, в первом посте. Разве нет?

Мне нужно отправлять одним вычислением 2 СМС - одну заказчику, другую исполнителю. А значит формировать для каждой отправки свой запрос, но отрабатывать каждый из запросов только один раз. И еще одно "но"- в архиве отправки видно, что первый запрос послал 2 СМС, а второй - 3 СМС. У меня прямой канал доставки СМС сообщений и стоимость отправки в три раза дороже, чем общий канал. Так разориться можно) Тем более, что гарантированная доставка СМС по прямому каналу не требует дублирования отправки...

Сообщение отредактировал All_ex74: 16 Июнь 2014 - 08:29


#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 16 Июнь 2014 - 08:43

Цитата

Почему то СМС отсылается несколько раз, что наглядно видно в архиве отправленных СМС

То, что вы обвели в скриншоте, это не несколько СМС, это количество списанных единиц с вашего баланса. Оно зависит от длины СМС. Чем длиннее - тем больше списывается.

http://clientbase.ru/buy/sms/

Цитата

*** При превышении стандартной длины одного СМС, сообщение делится на части, и тарификация идет по количеству отправленных частей (абонент получает сообщение целиком):
- при длине СМС до 70 символов - 1 ед. баланса;
- при длине СМС от 71 до 134 символов - 2 ед. баланса;
- при длине СМС от 135 до 201 символа - 3 ед. баланса;
- при длине СМС от 202 символов - 4 ед. + по 1 ед. баланса за каждые последующие 67 символов.



#11 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 16 Июнь 2014 - 08:50

Просмотр сообщенияCbCoder (16 Июнь 2014 - 08:43) писал:

То, что вы обвели в скриншоте, это не несколько СМС, это количество списанных единиц с вашего баланса. Оно зависит от длины СМС. Чем длиннее - тем больше списывается.

Странно, смысл в обсчёте списанных единиц, если отправка идёт через сторонний шлюз? Понятно - Отправлено "три составляющих части" одной СМС. Это просто для наглядности выводится?

Сообщение отредактировал All_ex74: 16 Июнь 2014 - 08:55


#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 16 Июнь 2014 - 08:59

Просмотр сообщенияAll_ex74 (16 Июнь 2014 - 08:50) писал:

Странно, смысл в обсчёте списанных единиц, если отправка идёт через сторонний шлюз?

Забыл что у вас сторонний шлюз подключен. В этом случае действительно смысла нет, можно просто не обращать внимание на колонку.

Просмотр сообщенияAll_ex74 (16 Июнь 2014 - 08:50) писал:

Это просто для наглядности выводится?

Да, для тех у кого подключен шлюз КБ, это необходимо чтобы не возникало вопросов "куда делись мои единицы с баланса, если смс меньше ушло".





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных