PhoneVerification - Модуль для работы с API сервисов приема SMS

Делитесь модулями
  • image.png

  • @persiss said in PhoneVerification - Модуль для работы с API сервисов приема SMS:

    @Fox Пишет ошибку "Сервиса vak-sms.ru нет в списке доступных"

    Вы читали описание действия?

    4fbb02d5-dc07-410d-9d17-77f16ce8bcec-изображение.png

  • В смс хаб есть функция максимальная цена
    можно ее вынести в настройки? спасибо

  • @persiss В нету таких настроек в этом модуле.

  • @persiss, добавлю в следующем обновлении, когда оно будет пока не знаю

  • добавьте smslive.pro, апи как у смс-активейта, но через кастомный юрл не получается взять код, спасибо

  • @pretty_mouse Почему не работает? Должно. Что возвращает запрос? какую ошибку?

  • @hvrsh должно конечно. При получении кода активации отправляется почему-то запрос на смену статуса, в следствии чего сервер отвечает бед экшн

  • @pretty_mouse Приложите скриншоты что делаете - что получаете. С хттп снифера тоже можно.

  • @hvrsh 61d99005-039e-4557-98c2-745923fc9380-image.png
    8400c69c-f6cb-4222-a1a6-8ac322344c5b-image.png
    85a62158-0007-4c3a-bca7-ee3135bf3bf3-image.png

    Номер получает нормально, проблема конкретно с получением кода

  • Да сделайте тогда самостоятельно запрос на номер, и на смс да и все. Фикса ждать можно долго.

  • когда то будет обнова? сервисы бы перебрать все, половина не актуальных, часть добавить

    может донаты открыть? чтоб интерестней было

  • В самих Модуля порой можно что то добавить или заменить :)

  • @persiss, Версия 1.3 - PhoneVerification.zip:
    Обновлен список стран
    Список сайтов обновлен и отсортирован по алфавиту
    Исправлено получение номера для give-sms.com
    cheapsms.ru -> cheapsms.io
    onlinesim.ru -> onlinesim.io
    sms-acktiwator.ru -> smsak.org
    vak-sms.com -> vak-sms.ru
    Удалены activation.pw и smsvk.net
    Добавлена возможность указать максимальную цену при получении номера (sms-activate и smshub)

  • Добавьте пожалуйста сервис smslive.pro

  • @jinaktiv не обязательно добавлять, раз у него api смс активэйт'a.

  • @jinaktiv юзаю его, нормально пашет на этом модуле

  • У меня возникла довольно нестандартная задача(как обычно, впрочем) вызывать модуль и сохранять его состояние, чтобы в другом потоке его потом вызвать с восстановленным состоянием.

    Зачем мне это надо:

    В основном потоке я регистрирую аккаунт, в процессе регистрации я выясняю что мне нужно. Уже после получения номера от сервиса я проверяю, нужен ли мне этот номер или нет.

    Проверка должна происходить в отдельном браузере, поэтому я стартую новый поток, получаю номер, проверяю его подходит ли он мне, если нет, получаю еще раз новый и так далее.
    Как я получу подходящий номер, я не подходящие отменяю и возвращаю из потока подходящий номер.

    В основном потоке я продолжаю регистрацию аккаунта и мне нужно получить номер OTP, для чего мне и нужно восстановить состояние объекта _SMS, так как это другой поток и объект _SMS не имеет никакой информации.

    Что я пробовал:
    • получал номер, проверял его, сохранял состояние объекта(сериализация) _SMS с помощью _JSON.stringify():
    log(JSON.stringify(_SMS.confirmData))
    log(JSON.stringify(_SMS.apiData))
    
    // Variable holding the name of the property to update
    // уникальный ключ состояния объекта, в будущем объект 
    // должен быть восстановлен по этому ключу
    var propertyName = [[STATE_IDENTIFIER]]; 
    
    // Step 1: Retrieve the object using the P function
    var jsonString = P("basglobal", "_SMS_OBJECT_STATE");
    
    // Step 2: Parse the JSON string to get the object
    // If the object doesn't exist yet, default to an empty object
    var obj = jsonString ? JSON.parse(jsonString) : {};
    
    // Step 3: Update the desired property of the object
    obj[propertyName] = {confirmData: _SMS.confirmData, apiData: _SMS.apiData};
    
    // Step 4: Convert the updated object back to a JSON string
    var updatedJsonString = JSON.stringify(obj);
    
    // Step 5: Save the updated object using the PSet function
    PSet("basglobal", "_SMS_OBJECT_STATE", updatedJsonString);
    
    • Восстанавливал как:
    // clean first
    _SMS.apiData = {};
    _SMS.confirmData = {};
    _SMS.debug = false;
    
    // Variable holding the name of the property to restore
    var propertyName = [[STATE_IDENTIFIER]];
    
    // Step 1: Retrieve the saved JSON string using the P function
    var jsonString = P("basglobal", "_SMS_OBJECT_STATE");
    
    var savedObj = jsonString ? JSON.parse(jsonString) : {};
    
    var obj = savedObj[propertyName];
    _SMS.apiData = obj.apiData;
    _SMS.confirmData =  obj.confirmData;
    _SMS.debug =  obj.debug;
    
    log([[LOG_PREFIX]]+ " state restored, _SMS.confirmData: " + JSON.stringify(_SMS.confirmData) + "; _SMS.apiData: " + JSON.stringify(_SMS.apiData));
    

    Ожидаемо это не сработало, так как ограничения сериализатора JSON.stringify/JSON.parse.

    Ищу пути, как по другому сохранять и восстанавливать состояние объекта _SMS.

    Было бы очень удобно, если были бы функции saveState(сериализованные данные состоянии объекта) и restoreState(десерилизация).

  • @sergerdn, @GhostZ said in PhoneVerification - Модуль для работы с API сервисов приема SMS:

    Сохранить так:

    [[CONFIRM_DATA]] = _SMS.getConfirmData([[NUMBER]], true);
    

    Установить так:

    _SMS.setConfirmData([[CONFIRM_DATA]]);
    
  • Привет!
    подскажи как достать айди активации? Нужно для использования в другом шаблоне