Ejemplo n.º 1
0
 /** @inheritdoc */
 public function getNumber($site = null)
 {
     $result = parent::getNumber($site);
     if (self::isJson($result)) {
         $result = Json::decode($result);
         if (isset($result['response']) && $result['response'] == 1) {
             $this->sessionId = $result['tzid'];
             $inpoll = 0;
             while (true) {
                 $result = $this->curl('getState', ['tzid' => $this->sessionId]);
                 if (self::isJson($result)) {
                     $result = Json::decode($result);
                     switch ($result['response']) {
                         case 'TZ_INPOOL':
                             if ($inpoll > 5) {
                                 throw new SmsException('Не нашло номер');
                             }
                             $inpoll++;
                             sleep(5);
                             break;
                         case 'TZ_NUM_PREPARE':
                             $this->number = str_pad($result['number'], 12, "+7", STR_PAD_LEFT);
                             return $this->number;
                         default:
                             throw new SmsException(Json::encode($result));
                     }
                 }
             }
         }
     }
     throw new SmsException(Json::encode($result));
 }
Ejemplo n.º 2
0
 /** @inheritdoc */
 public function getNumber($site = null)
 {
     $result = parent::getNumber($site);
     $result = explode(':', $result);
     $result[] = null;
     $result[] = null;
     list($request, $id, $number) = $result;
     switch ($request) {
         case 'NO_NUMBERS':
             throw new SmsException($request, 404);
         case 'ACCESS_NUMBER':
             $this->sessionId = $id;
             $this->number = str_pad($number, 12, "+7", STR_PAD_LEFT);
             break;
         default:
             throw new SmsException($request);
     }
     return $this->number;
 }
Ejemplo n.º 3
0
 /** @inheritdoc */
 public function getNumber($site = null)
 {
     if ($this->getNumbersStatus()) {
         $time = time();
         while (time() - $time < 60 * 3) {
             sleep(10);
             $result = parent::getNumber($site);
             if (self::isJson($result)) {
                 $result = Json::decode($result);
                 if (isset($result['response']) && $result['response'] == 1 && isset($result['number']) && $result['number'] && isset($result['id']) && $result['id'] > 0) {
                     $this->sessionId = $result['id'];
                     $this->number = str_pad($result['number'], 12, "+7", STR_PAD_LEFT);
                     return $this->number;
                 }
                 if (isset($result['response']) && $result['response'] == 2) {
                     continue;
                 }
             }
             throw new SmsException(Json::encode($result));
         }
         throw new SmsException('Время поиска номеров истекло');
     }
     throw new SmsException('Нет номеров');
 }