Время ожидания SMS

Geograph

Client
Регистрация
16.02.2014
Сообщения
207
Реакции
114
Баллы
43
В вики написано, что блок SMS-сервиса, ждет ответ от сервиса до 3-х минут, если он не пришел раньше http://zennolab.com/wiki/ru:sms-services#операции-с-sms-сервисами

Можно ли регулировать время ожидания?
Если не напрямую, то через C#-сниппет?
Или как-то прервать выполнения этого блока по таймеру, если мне нужно ожидание не больше 1 минуты?
 
В вики написано, что блок SMS-сервиса, ждет ответ от сервиса до 3-х минут, если он не пришел раньше http://zennolab.com/wiki/ru:sms-services#операции-с-sms-сервисами

Можно ли регулировать время ожидания?
Если не напрямую, то через C#-сниппет?
Или как-то прервать выполнения этого блока по таймеру, если мне нужно ожидание не больше 1 минуты?
можно пойти на сайт смс сервиса, заглянуть в их апи и на основе его накидать свой код по получение смс такими настройками и временными интервалами, как тебе угодно
 
  • Спасибо
Реакции: masterLomaster
можно пойти на сайт смс сервиса, заглянуть в их апи и на основе его накидать свой код по получение смс такими настройками и временными интервалами, как тебе угодно
а можно просто пойти на сайт смс сервиса в личный кабинет и просто зенкой забрать там ответ!
 
Это понятно, что можно вручную код написать на основе API сервиса, но если я потом захочу сменить смс-сервис, то придется переписывать код. Думал может из коробки есть готовое решение.
 
3 минуты прошло, в ответе будет слово Wait. проверяем что Wait и снова вызываем кубик с получением ответа... простой цикл
 
Нашел метод
ZennoPoster.Sms.GetStatus(string serviceDll, string id, string param, int timeout)
Там есть timeout в минутах, т.е. можно сделать через C# стандартными средствами зенки
https://help.zennolab.com/en/v5/zennoposter/5.10/topic527.html
 
Если сообщение будет получено раньше 3х минут, действие сразу завершиться.
Я понимаю, но если сообщение не пришло за 1 минуту в некоторых случаях нет смысла его ждать, оно скорее всего не придет, лучше повторно отправить смс и снова запросить его на сервисе.
 
Нашел метод
ZennoPoster.Sms.GetStatus(string serviceDll, string id, string param, int timeout)
Там есть timeout в минутах, т.е. можно сделать через C# стандартными средствами зенки
https://help.zennolab.com/en/v5/zennoposter/5.10/topic527.html

Почему-то не работает этот метод, возвращает пустой ответ. Получаю номер и отправляю статус об СМС блоками, а получить пытаюсь через C#:

PHP:
Развернуть Свернуть Копировать
project.Variables["SmsCode"].Value =
    ZennoPoster.Sms.GetStatus(
        project.Variables["SmsService"].Value,
        project.Variables["SmsServiceID"].Value,
        "",
        int.Parse(project.Variables["SmsTimeout"].Value));

где SmsService - "SmsActivate.dll",
SmsServiceID - ID смс-сервиса,
SmsTimeout - "1"
 
Последнее редактирование:
Почему-то не работает этот метод, возвращает пустой ответ.
Может так сработает
f_bnm_e896357.gif

C#:
Развернуть Свернуть Копировать
var code = ZennoPoster.Sms.GetStatus(
    project.Variables["SmsService"].Value,
    project.Variables["SmsServiceID"].Value,
    "",
    int.Parse(project.Variables["SmsTimeout"].Value));
return code;
 
У тебя получился?? сейчас такая же проблема. Как сделать?

Нет, не решил, пользовался стандартными кубиками.
По идее можно реализовать на C# - наверняка в интернете есть код, по работе с API смс-сервиса, но я не стал прошлый раз заморачиваться
 
Было бы неплохо добавить в стандартный кубик получения смс поле с указанием таймаута, т.е. сколько ждать прихода смс в минутах.
 
  • Спасибо
Реакции: Castaneda
Было бы неплохо добавить в стандартный кубик получения смс поле с указанием таймаута, т.е. сколько ждать прихода смс в минутах.
Плюсую. Как для ожидания загрузки страниц можно было бы реализовать
 
90 проц. СМС приходт в течение 3 минут.
Но вообще, я не понимаю, зачем разработчики тратят время на кубики СМС.
Это же все элементарно делается на гет-запосах, любые СМС активации с блекджеками и поэтессами
 
Почему-то не работает этот метод, возвращает пустой ответ. Получаю номер и отправляю статус об СМС блоками, а получить пытаюсь через C#:

PHP:
Развернуть Свернуть Копировать
project.Variables["SmsCode"].Value =
    ZennoPoster.Sms.GetStatus(
        project.Variables["SmsService"].Value,
        project.Variables["SmsServiceID"].Value,
        "",
        int.Parse(project.Variables["SmsTimeout"].Value));

где SmsService - "SmsActivate.dll",
SmsServiceID - ID смс-сервиса,
SmsTimeout - "1"

Чтобы работала на C# нужно, в дерективах прописать using ZennoLab.InterfacesLibrary.SmsService;
Код:
Развернуть Свернуть Копировать
bool forward=false;
string phone=string.Empty;//сюда вернется телефон
string id=string.Empty;//сюда вернется id операции
string service="ya";//имя сайта на запрашиваемом сервисе, уточняйте
string opt="any";//оператор либо страна в основном any,ru,RU
string code=string.Empty;//сюда вернется код из смс

//запрос номера
id=ZennoPoster.Sms.GetNumber(
    "SmsReg.dll",
    out phone,
    service,
    opt,
    forward
);

//статус на код отправлен
ZennoPoster.Sms.SetStatus(
    "SmsReg.dll",
    id,
    ZennoLab.InterfacesLibrary.SmsService.Enums.SmsServiceStatus.Ready
);

//запрос кода подтверждения
code=ZennoPoster.Sms.GetStatus(
    "SmsReg.dll",
    id,
    "",
    30000//таймаут ожидания кода
);
Не понятно уважаемые разработчики с SetStatus, что использовать если активация успешна Cancel, Close или Used.
Что отправлять если сайт не принимает номер RetryGet? в документации этого нет.
На запросах уж больно много текста получается. Объясните пожалуйста как этим правильно пользоваться
 
А таймаут задается только минутами? А, если нужно выставить, например 90 секунд (есть априорная информация, что после 90 точно не придет и ждать еще 30 сек нет смысла)? Или вообще нужно проверить получение смс'ки за 20 секунд, и если ее нет на сервисе запросить еще одну.

Попытался зациклить

string result = ZennoPoster.Sms.GetStatus(smsService, idActive, "",0)

Думал, ZennoPoster хотя бы один раз сделает запрос на статус при таких настройках, а он все время возвращает таймаут...

69415

Есть какое-то решение, как можно время ожидания секундами делать? Может существует альтернативные обертки над всеми смс сервисами, или есть возможность официальную (от ZennoPoster'а) dll'ку подредактировать, чтобы при таймауте 0 (0 минут), был хотя бы один запрос на сервис.
 
Последнее редактирование:
Понадобилось уменьшить время ожидания, c# не сработал, сделал по старинке простым GET-запросом, почему-то про этот способ никто не написал, а я уже и позабыл что так можно было, может кому-то пригодится

https://smshub.org/stubs/handler_api.php?api_key=APIKEY&action=getStatus&id=ID
 
Понадобилось уменьшить время ожидания, c# не сработал, сделал по старинке простым GET-запросом, почему-то про этот способ никто не написал, а я уже и позабыл что так можно было, может кому-то пригодится

https://smshub.org/stubs/handler_api.php?api_key=APIKEY&action=getStatus&id=ID

Это конечно всё хорошо, вот только у разных сервисов разное api (да, у некоторых есть api наиболее популярного сервиса, которое можно использовать в частности через изменения файла host, но всё это сопряженно с дополнительными неудобствами).

И, если вы разрабатываете проект, который будет использовать большое количество смс сервисов, то придется самостоятельно прописывать каждый сервис (если ситуация с ожиданием критична). Хотя у зеннопостера есть из коробки казалось бы удобная обертка над большим количеством смс сервисом, но почему-то они решили реализовать поминутное ожидание.
 
  • Спасибо
Реакции: Redsmokky
Это конечно всё хорошо, вот только у разных сервисов разное api (да, у некоторых есть api наиболее популярного сервиса, которое можно использовать в частности через изменения файла host, но всё это сопряженно с дополнительными неудобствами).

И, если вы разрабатываете проект, который будет использовать большое количество смс сервисов, то придется самостоятельно прописывать каждый сервис (если ситуация с ожиданием критична). Хотя у зеннопостера есть из коробки казалось бы удобная обертка над большим количеством смс сервисом, но почему-то они решили реализовать поминутное ожидание.

3 минуты ждет, для меня не подходит раньше делал на запросах, надо было так и оставить а не пользоваться кубиком. Сейчас статью вспомнил https://zennolab.com/discussion/threads/sms-servisy-dlja-lenivyx.94920/ но для меня это сложно и не нужно, там есть позиции сколько времени ожидать смс если я правильно понял.
 
Сейчас статью вспомнил https://zennolab.com/discussion/threads/sms-servisy-dlja-lenivyx.94920/ но для меня это сложно и не нужно, там есть позиции сколько времени ожидать смс если я правильно понял.

О, спасибо, не видел. Действительно это то, что нужно! Сервисы не все есть, но это конечно не упрек автору.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)