get_code

get_code($wt_wait)

Данная команда позволяет получить код активации из смс.

Команда на вход принимает параметры:
  • $wt_wait – ожидание *10 в секундах

Сам полученный код можно получить из переменной smsactivate->code. При этом если разбор вашего смс выполняется не правильно, используйте для разбора переменную smsactivate->answer.


Пременнная simnet->answer может быть:
  • STATUS_OK:$code – код получен (где $code - код активации)
  • STATUS_WAIT_CODE – ожидание смс
  • STATUS_WAIT_RETRY:$lastcode – ожидание уточнения кода (где $lastcode - прошлый, неподошедший код)
  • STATUS_WAIT_RESEND – ожидание повторной отправки смс (софт должен нажать повторно выслать смс и выполнить изменение статуса на 6)
  • STATUS_CANCEL – активация отменена
После отработки команда возвращает результат своей работы в робот:
  • true - операция успешно произведена
  • false - операция не завершена
Возможные ошибки:
  • NO_ACTIVATION – id активации не существует
  • ERROR_SQL – ошибка SQL-сервера
  • BAD_KEY – неверный API-ключ
  • BAD_ACTION – некорректное действие



Примеры использования (php)

<?php $xhe_host = "127.0.0.1:7010";
 
// подключим функциональные объекты, если еще не подключен
if (!isset($path))
  $path="../../../Templates/init.php";
require($path);
 
// начало
echo "<hr><font color=blue>smsactivate->".basename (__FILE__)."</font><hr>";
 
// задаём ключ апи сервиса
$smsactivate->api_key = '3161df9b1fe1ccb8cfd7dA91db765de8';
 
// получить номер телефона
if(!$smsactivate->get_phone_number('ot'))
{
    while($smsactivate->answer=="NO_NUMBERS")
    {
        $smsactivate->get_phone_number('ot');
        sleep(10);
    }
 
    if(strpos($smsactivate->answer,'ACCESS_NUMBER')===false)
    {
       echo("ответ $smsactivate->servis серваса $smsactivate->answer<br>");
       $app->quit();
    }
}
 
// смс отправлен
$smsactivate->set_status(1);
// полученный номер телефона
echo $phone= trim($smsactivate->number);
echo "<br>";
 
/*тут использование номера в форме регистрации 
после чего на телефон отправляется смс
*/
 
// ожидание *10 в секундах
$wt_wait=7;
// получить код из смс
if(!$smsactivate->get_code($wt_wait))
{
    echo("ОШИБКА: $smsactivate->answer не смогли получить код из СМС-сообщения");
 
    // сообщаем сервису что освобождаем номер
    $smsactivate->set_status(8); 
}
else // при необходимости поправить разбор текста смс, если код будет не верно разбираться из него
{
    // сообщаем сервису что всё ok
    $smsactivate->set_status(); 
    // код из смс
    echo trim($smsactivate->code).'<br>';
}
 
 
// конец
echo "<hr><br>";
 
// Quit
$app->quit();
?>

Примеры использования (cs)

#region using
 
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Threading;
 
using XHE;
using XHE.XHE_DOM;
using XHE.XHE_System;
using XHE.XHE_Window;
using XHE.XHE_Web;
 
#endregion
 
 class Program:XHEScript
 {
	  static void Main(string[] args)
	  {
			// init XHE
			server="127.0.0.1:7011";
			InitXHE();
 
			// ключ
            smsactivate.api_key = "3161df9b1fe1ccb8cfd7dA91db765de8";
			// начало
			echo("<hr><font color=blue>smsactivate.get_code</font><hr>");
 
			// получить номер телефона
            if(!smsactivate.get_phone_number("ot"))
            {
                while(smsactivate.answer=="NO_NUMBERS")
                {
                    smsactivate.get_phone_number("ot");
                    sleep(10);
                }
 
                if(smsactivate.answer.IndexOf("ACCESS_NUMBER")==-1)
                {
                   echo("ответ "+smsactivate.servis+" серваса "+smsactivate.answer+"<br>");
                   app.quit();
                }
            }
 
            // смс отправлен
            smsactivate.set_status("1");
            // полученный номер телефона
            string phone = smsactivate.number.Trim();
 
            echo(phone+"<br>");
 
            /*тут использование номера в форме регистрации 
            после чего на телефон отправляется смс
            */
 
            // ожидание *10 в секундах
            int wt_wait=7;
            // получить код из смс
            if(!smsactivate.get_code(wt_wait))
            {
                echo("ОШИБКА: "+ smsactivate.answer+" не смогли получить код из СМС-сообщения");
 
                // сообщаем сервису что освобождаем номер
                smsactivate.set_status("8"); 
            }
            else // при необходимости поправить разбор текста смс, если код будет не верно разбираться из него
            {
                // сообщаем сервису что всё ok
                smsactivate.set_status(); 
                // код из смс
                echo(smsactivate.code.Trim());
            }
			// конец
			echo("<hr><br>");
 
			app.quit();            
	  }
}