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

Geograph

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

Можно ли регулировать время ожидания?
Если не напрямую, то через C#-сниппет?
Или как-то прервать выполнения этого блока по таймеру, если мне нужно ожидание не больше 1 минуты?
 

doc

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

Можно ли регулировать время ожидания?
Если не напрямую, то через C#-сниппет?
Или как-то прервать выполнения этого блока по таймеру, если мне нужно ожидание не больше 1 минуты?
можно пойти на сайт смс сервиса, заглянуть в их апи и на основе его накидать свой код по получение смс такими настройками и временными интервалами, как тебе угодно
 
  • Спасибо
Реакции: masterLomaster
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
можно пойти на сайт смс сервиса, заглянуть в их апи и на основе его накидать свой код по получение смс такими настройками и временными интервалами, как тебе угодно
а можно просто пойти на сайт смс сервиса в личный кабинет и просто зенкой забрать там ответ!
 

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
114
Баллы
43
Это понятно, что можно вручную код написать на основе API сервиса, но если я потом захочу сменить смс-сервис, то придется переписывать код. Думал может из коробки есть готовое решение.
 

AShaggy

Активный пользователь
Регистрация
25.11.2014
Сообщения
335
Благодарностей
143
Баллы
43
3 минуты прошло, в ответе будет слово Wait. проверяем что Wait и снова вызываем кубик с получением ответа... простой цикл
 

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
114
Баллы
43

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
114
Баллы
43
Нашел метод
ZennoPoster.Sms.GetStatus(string serviceDll, string id, string param, int timeout)
Там есть timeout в минутах, т.е. можно сделать через C# стандартными средствами зенки
https://help.zennolab.com/en/v5/zennoposter/5.10/topic527.html
 

AShaggy

Активный пользователь
Регистрация
25.11.2014
Сообщения
335
Благодарностей
143
Баллы
43

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
114
Баллы
43
Если сообщение будет получено раньше 3х минут, действие сразу завершиться.
Я понимаю, но если сообщение не пришло за 1 минуту в некоторых случаях нет смысла его ждать, оно скорее всего не придет, лучше повторно отправить смс и снова запросить его на сервисе.
 

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
114
Баллы
43
Нашел метод
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"
 
Последнее редактирование:

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Почему-то не работает этот метод, возвращает пустой ответ.
Может так сработает

C#:
var code = ZennoPoster.Sms.GetStatus(
    project.Variables["SmsService"].Value,
    project.Variables["SmsServiceID"].Value,
    "",
    int.Parse(project.Variables["SmsTimeout"].Value));
return code;
 

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
114
Баллы
43
У тебя получился?? сейчас такая же проблема. Как сделать?
Нет, не решил, пользовался стандартными кубиками.
По идее можно реализовать на C# - наверняка в интернете есть код, по работе с API смс-сервиса, но я не стал прошлый раз заморачиваться
 

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28

Woland

Client
Регистрация
22.06.2016
Сообщения
2
Благодарностей
1
Баллы
3
Было бы неплохо добавить в стандартный кубик получения смс поле с указанием таймаута, т.е. сколько ждать прихода смс в минутах.
 
  • Спасибо
Реакции: Castaneda

takerz

Client
Регистрация
02.07.2016
Сообщения
179
Благодарностей
23
Баллы
18
Было бы неплохо добавить в стандартный кубик получения смс поле с указанием таймаута, т.е. сколько ждать прихода смс в минутах.
Плюсую. Как для ожидания загрузки страниц можно было бы реализовать
 

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 634
Благодарностей
963
Баллы
113
90 проц. СМС приходт в течение 3 минут.
Но вообще, я не понимаю, зачем разработчики тратят время на кубики СМС.
Это же все элементарно делается на гет-запосах, любые СМС активации с блекджеками и поэтессами
 

смм24

Client
Регистрация
05.07.2017
Сообщения
76
Благодарностей
10
Баллы
8
Почему-то не работает этот метод, возвращает пустой ответ. Получаю номер и отправляю статус об СМС блоками, а получить пытаюсь через 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? в документации этого нет.
На запросах уж больно много текста получается. Объясните пожалуйста как этим правильно пользоваться
 

sitnem

Client
Регистрация
03.12.2016
Сообщения
122
Благодарностей
78
Баллы
28
А таймаут задается только минутами? А, если нужно выставить, например 90 секунд (есть априорная информация, что после 90 точно не придет и ждать еще 30 сек нет смысла)? Или вообще нужно проверить получение смс'ки за 20 секунд, и если ее нет на сервисе запросить еще одну.

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

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

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

69415

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

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43
Понадобилось уменьшить время ожидания, c# не сработал, сделал по старинке простым GET-запросом, почему-то про этот способ никто не написал, а я уже и позабыл что так можно было, может кому-то пригодится

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

sitnem

Client
Регистрация
03.12.2016
Сообщения
122
Благодарностей
78
Баллы
28
Понадобилось уменьшить время ожидания, c# не сработал, сделал по старинке простым GET-запросом, почему-то про этот способ никто не написал, а я уже и позабыл что так можно было, может кому-то пригодится

https://smshub.org/stubs/handler_api.php?api_key=APIKEY&action=getStatus&id=ID
Это конечно всё хорошо, вот только у разных сервисов разное api (да, у некоторых есть api наиболее популярного сервиса, которое можно использовать в частности через изменения файла host, но всё это сопряженно с дополнительными неудобствами).

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

Redsmokky

Client
Регистрация
06.10.2015
Сообщения
313
Благодарностей
195
Баллы
43
Это конечно всё хорошо, вот только у разных сервисов разное api (да, у некоторых есть api наиболее популярного сервиса, которое можно использовать в частности через изменения файла host, но всё это сопряженно с дополнительными неудобствами).

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

sitnem

Client
Регистрация
03.12.2016
Сообщения
122
Благодарностей
78
Баллы
28
Сейчас статью вспомнил https://zennolab.com/discussion/threads/sms-servisy-dlja-lenivyx.94920/ но для меня это сложно и не нужно, там есть позиции сколько времени ожидать смс если я правильно понял.
О, спасибо, не видел. Действительно это то, что нужно! Сервисы не все есть, но это конечно не упрек автору.
 

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