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

Geograph

Client
Joined
Feb 16, 2014
Messages
207
Reaction score
114
Points
43
В вики написано, что блок SMS-сервиса, ждет ответ от сервиса до 3-х минут, если он не пришел раньше http://zennolab.com/wiki/ru:sms-services#операции-с-sms-сервисами

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

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,652
Points
113
В вики написано, что блок SMS-сервиса, ждет ответ от сервиса до 3-х минут, если он не пришел раньше http://zennolab.com/wiki/ru:sms-services#операции-с-sms-сервисами

Можно ли регулировать время ожидания?
Если не напрямую, то через C#-сниппет?
Или как-то прервать выполнения этого блока по таймеру, если мне нужно ожидание не больше 1 минуты?
можно пойти на сайт смс сервиса, заглянуть в их апи и на основе его накидать свой код по получение смс такими настройками и временными интервалами, как тебе угодно
 
  • Thank you
Reactions: masterLomaster
Joined
Jul 8, 2015
Messages
2,848
Reaction score
712
Points
113
можно пойти на сайт смс сервиса, заглянуть в их апи и на основе его накидать свой код по получение смс такими настройками и временными интервалами, как тебе угодно
а можно просто пойти на сайт смс сервиса в личный кабинет и просто зенкой забрать там ответ!
 

Geograph

Client
Joined
Feb 16, 2014
Messages
207
Reaction score
114
Points
43
Это понятно, что можно вручную код написать на основе API сервиса, но если я потом захочу сменить смс-сервис, то придется переписывать код. Думал может из коробки есть готовое решение.
 

AShaggy

Активный пользователь
Joined
Nov 25, 2014
Messages
335
Reaction score
143
Points
43
3 минуты прошло, в ответе будет слово Wait. проверяем что Wait и снова вызываем кубик с получением ответа... простой цикл
 

Geograph

Client
Joined
Feb 16, 2014
Messages
207
Reaction score
114
Points
43
3 минуты прошло, в ответе будет слово Wait. проверяем что Wait и снова вызываем кубик с получением ответа... простой цикл
А если нужна 1 минута?
 

Geograph

Client
Joined
Feb 16, 2014
Messages
207
Reaction score
114
Points
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

Активный пользователь
Joined
Nov 25, 2014
Messages
335
Reaction score
143
Points
43
А если нужна 1 минута?
Если сообщение будет получено раньше 3х минут, действие сразу завершиться.
 

Geograph

Client
Joined
Feb 16, 2014
Messages
207
Reaction score
114
Points
43
Если сообщение будет получено раньше 3х минут, действие сразу завершиться.
Я понимаю, но если сообщение не пришло за 1 минуту в некоторых случаях нет смысла его ждать, оно скорее всего не придет, лучше повторно отправить смс и снова запросить его на сервисе.
 

Geograph

Client
Joined
Feb 16, 2014
Messages
207
Reaction score
114
Points
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"
 
Last edited:

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,133
Points
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
Joined
Jun 24, 2016
Messages
499
Reaction score
76
Points
28
А если нужна 1 минута?
У тебя получился?? сейчас такая же проблема. Как сделать?
 

Geograph

Client
Joined
Feb 16, 2014
Messages
207
Reaction score
114
Points
43
У тебя получился?? сейчас такая же проблема. Как сделать?
Нет, не решил, пользовался стандартными кубиками.
По идее можно реализовать на C# - наверняка в интернете есть код, по работе с API смс-сервиса, но я не стал прошлый раз заморачиваться
 

art22

Client
Joined
Jun 24, 2016
Messages
499
Reaction score
76
Points
28
жалко(
По идее можно реализовать на C#
да можно и без C#, но было бы лучше если бы подогнать все под стандартный...
 

Woland

Client
Joined
Jun 22, 2016
Messages
2
Reaction score
1
Points
3
Было бы неплохо добавить в стандартный кубик получения смс поле с указанием таймаута, т.е. сколько ждать прихода смс в минутах.
 
  • Thank you
Reactions: Castaneda

takerz

Client
Joined
Jul 2, 2016
Messages
179
Reaction score
23
Points
18
Было бы неплохо добавить в стандартный кубик получения смс поле с указанием таймаута, т.е. сколько ждать прихода смс в минутах.
Плюсую. Как для ожидания загрузки страниц можно было бы реализовать
 

Чешир

Client
Joined
Jun 27, 2014
Messages
1,670
Reaction score
1,000
Points
113
90 проц. СМС приходт в течение 3 минут.
Но вообще, я не понимаю, зачем разработчики тратят время на кубики СМС.
Это же все элементарно делается на гет-запосах, любые СМС активации с блекджеками и поэтессами
 

смм24

Client
Joined
Jul 5, 2017
Messages
76
Reaction score
10
Points
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;
Code:
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
Joined
Dec 3, 2016
Messages
125
Reaction score
79
Points
28
А таймаут задается только минутами? А, если нужно выставить, например 90 секунд (есть априорная информация, что после 90 точно не придет и ждать еще 30 сек нет смысла)? Или вообще нужно проверить получение смс'ки за 20 секунд, и если ее нет на сервисе запросить еще одну.

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

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

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

69415

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

Redsmokky

Client
Joined
Oct 6, 2015
Messages
319
Reaction score
197
Points
43
Понадобилось уменьшить время ожидания, c# не сработал, сделал по старинке простым GET-запросом, почему-то про этот способ никто не написал, а я уже и позабыл что так можно было, может кому-то пригодится

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

sitnem

Client
Joined
Dec 3, 2016
Messages
125
Reaction score
79
Points
28
Понадобилось уменьшить время ожидания, c# не сработал, сделал по старинке простым GET-запросом, почему-то про этот способ никто не написал, а я уже и позабыл что так можно было, может кому-то пригодится

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

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

Redsmokky

Client
Joined
Oct 6, 2015
Messages
319
Reaction score
197
Points
43
Это конечно всё хорошо, вот только у разных сервисов разное api (да, у некоторых есть api наиболее популярного сервиса, которое можно использовать в частности через изменения файла host, но всё это сопряженно с дополнительными неудобствами).

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

sitnem

Client
Joined
Dec 3, 2016
Messages
125
Reaction score
79
Points
28
Сейчас статью вспомнил https://zennolab.com/discussion/threads/sms-servisy-dlja-lenivyx.94920/ но для меня это сложно и не нужно, там есть позиции сколько времени ожидать смс если я правильно понял.
О, спасибо, не видел. Действительно это то, что нужно! Сервисы не все есть, но это конечно не упрек автору.
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)