Биллинговая система Nodeny
24 Ноября 2024, 21:09:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2] 3 4 ... 12
  Печать  
Автор Тема: Модуль TurboSMS  (Прочитано 79993 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #15 : 11 Июня 2014, 22:58:39 »

Чтобы уходила СМС о скором окончании услуги, в каком из форматов надо вводить номер телефона в личном кабинете, +38093..., 38093... или 093... ?
любом из этих трех
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #16 : 15 Июня 2014, 07:56:12 »

Нужно сделать отправку на +38 и +7.

В файлах patch.ajUserMenu.pl, create.nod.turbosms.pm закомментировал :

Код:
sub phone_extract
{
    my($phone) = @_;                # ' +38(067)-123-44-55, 7888080'
    $phone =~ s/^\s*//;             # удаляем стартовые пробелы      '+38(067)-123-44-55, 7888080'
    $phone =~ s/^\+//;              # удаляем стартовый +            '38(067)-123-44-55, 7888080'
    $phone =~ s/[^\d\-\(\)].*$//;   # удаляем 2й телефон             '38(067)-123-44-55'
    $phone =~ s/\D//g;              # удаляем не цифры               '380671234455'
#    $phone =~ s/^3?8//g;            # удаляем 3 или 38               '0671234455'
#    length($phone) == 10 or return '';
#   $phone =~ /^0/ or return '';    # если начинается не с 0, скорее всего телефон некорректен
#   return '+38'.$phone;            # возвращаем 380671234455
}

Стало отправлять, но я так понимаю что данные проверки сделаны не просто так, поправьте код модуля для работы и с +38 и с +7. Спасибо.
« Последнее редактирование: 15 Июня 2014, 08:58:38 от stimels7 » Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #17 : 15 Июня 2014, 15:27:27 »

ну где-то так наверное...

Код:
sub phone_extract
{
    my($phone) = @_;                # ' +38(067)-123-44-55, 7888080'
    $phone =~ s/^\s*//;             # удаляем стартовые пробелы      '+38(067)-123-44-55, 7888080'
    $phone =~ s/^\+//;              # удаляем стартовый +            '38(067)-123-44-55, 7888080'
    $phone =~ s/[^\d\-\(\)].*$//;   # удаляем 2й телефон             '38(067)-123-44-55'
    $phone =~ s/\D//g;              # удаляем не цифры               '380671234455'
    if ($phone =~ /^7/)
    {
$phone =~ s/^7//g;    #' +7(903)-797-44-55, 7888080'  условие что телефон для россии начинается или 7 или +7
length($phone) == 10 or return '';
return '+7'.$phone;
    }else{
     $phone =~ s/^3?8//g;            # удаляем 3 или 38               '0671234455'
     length($phone) == 10 or return '';
     $phone =~ /^0/ or return '';    # если начинается не с 0, скорее всего телефон некорректен
     return '+38'.$phone;            # возвращаем 380671234455
    }
}
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #18 : 15 Июня 2014, 15:53:48 »

ну где-то так наверное...

Код:
sub phone_extract
{
    my($phone) = @_;                # ' +38(067)-123-44-55, 7888080'
    $phone =~ s/^\s*//;             # удаляем стартовые пробелы      '+38(067)-123-44-55, 7888080'
    $phone =~ s/^\+//;              # удаляем стартовый +            '38(067)-123-44-55, 7888080'
    $phone =~ s/[^\d\-\(\)].*$//;   # удаляем 2й телефон             '38(067)-123-44-55'
    $phone =~ s/\D//g;              # удаляем не цифры               '380671234455'
    if ($phone =~ /^7/)
    {
$phone =~ s/^7//g;    #' +7(903)-797-44-55, 7888080'  условие что телефон для россии начинается или 7 или +7
length($phone) == 10 or return '';
return '+7'.$phone;
    }else{
     $phone =~ s/^3?8//g;            # удаляем 3 или 38               '0671234455'
     length($phone) == 10 or return '';
     $phone =~ /^0/ or return '';    # если начинается не с 0, скорее всего телефон некорректен
     return '+38'.$phone;            # возвращаем 380671234455
    }
}

Спасибо, а тут как поправить :

Код:
#<ACTION> file=>'web/ajUserMenu.pl',hook=>'finish'

    {   # --- sms с логином/паролем ---
        Adm->chk_privil('Admin') or last;
        my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid);
        %p or last;
        my $message = "login: $p{name} pass: $p{pass}";
        my $phone = $info->{dopdata}{_adr_telefon} or last;
        $phone = $phone->show;
        $phone =~ s/^\s*//;
        $phone =~ s/^\+//;              # удаляем стартовый +
        $phone =~ s/[^\d\-\(\)].*$//;   # удаляем 2й телефон
        $phone =~ s/\D//g;              # удаляем не цифры
        $phone =~ s/^3?8//g;            # удаляем 3 или 38
        length($phone) == 10 or last;
        $phone =~ /^0/ or last;         # если начинается не с 0, скорее всего телефон некорректен
        $phone = '+38'.$phone;
        $menu[1] .= ' '.$url->a('sms с паролем', a=>'ajTurboSms', its_pass=>$uid, message=>$message, phone=>$phone, -ajax=>1);
    }

Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #19 : 15 Июня 2014, 16:25:15 »

по аналогии....
Код:
#<ACTION> file=>'web/ajUserMenu.pl',hook=>'finish'

    {   # --- sms с логином/паролем ---
        Adm->chk_privil('Admin') or last;
        my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid);
        %p or last;
        my $message = "login: $p{name} pass: $p{pass}";
        my $phone = $info->{dopdata}{_adr_telefon} or last;
        $phone = $phone->show;
        $phone =~ s/^\s*//;
        $phone =~ s/^\+//;              # удаляем стартовый +
        $phone =~ s/[^\d\-\(\)].*$//;   # удаляем 2й телефон
        $phone =~ s/\D//g;              # удаляем не цифры
        if ($phone =~ /^7/)
          {
      $phone =~ s/^7//g;    #' +7(903)-797-44-55, 7888080'  условие что телефон для россии начинается или 7 или +7
      length($phone) == 10 or last '';
      return '+7'.$phone;
          }else{   
             $phone =~ s/^3?8//g;            # удаляем 3 или 38
             length($phone) == 10 or last;
             $phone =~ /^0/ or last;         # если начинается не с 0, скорее всего телефон некорректен
            $phone = '+38'.$phone;
        }

        $menu[1] .= ' '.$url->a('sms с паролем', a=>'ajTurboSms', its_pass=>$uid, message=>$message, phone=>$phone, -ajax=>1);
    }




Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #20 : 15 Июня 2014, 16:57:30 »

Вообщем получается - при нажатии правой кнопкой на инфо если номер +38 то норм (выдает меню с кнопкой отправить), если номер +7 то вместо меню выдает только номер, и при нажатии "операции" тоже выдает только номер...
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #21 : 15 Июня 2014, 17:00:09 »

Вообщем получается - при нажатии правой кнопкой на инфо если номер +38 то норм (выдает меню с кнопкой отправить), если номер +7 то вместо меню выдает только номер, и при нажатии "операции" тоже выдает только номер...
может в аську и доступ ?

ну или ли дебаг покаж

зы и тут ошибка
length($phone) == 10 or last '';
на
length($phone) == 10 or last ;


тоесть так дожно быть

Код:
if ($phone =~ /^7/)
     {
          $phone =~ s/^7//g;    #' +7(903)-797-44-55, 7888080'  условие что телефон для россии начинается или 7 или +7
          length($phone) == 10 or last;
          $phone = '+7'.$phone;
    }else{....
         $phone =~ s/^3?8//g;            # удаляем 3 или 38
      length($phone) == 10 or last;
       $phone =~ /^0/ or last;         # если начинается не с 0, скорее всего телефон некорректен
       $phone = '+38'.$phone;
   }

вот эти строки проверь
 length($phone) == 10 or last;
  $phone = '+7'.$phone;
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #22 : 15 Июня 2014, 19:25:02 »

Спасибо ser970, + в карму

Стас обнови пожалуйста код модуля как будет минутка

Код:
cat create.nod.turbosms.pm
#<ACTION> file=>'nod/turbosms.pm',hook=>'new'
package nod::turbosms;

# Извлечение телефона из текстовой строки, которая может содержать несколько телефонов, не цифры и т.д.
# Например, на вход может быть подано: 8067-7778899 / 0501234567 / +38(063)5544332

sub phone_extract
{
    my($phone) = @_;                # ' +38(067)-123-44-55, 7888080'
    $phone =~ s/^\s*//;             # удаляем стартовые пробелы      '+38(067)-123-44-55, 7888080'
    $phone =~ s/^\+//;              # удаляем стартовый +            '38(067)-123-44-55, 7888080'
    $phone =~ s/[^\d\-\(\)].*$//;   # удаляем 2й телефон             '38(067)-123-44-55'
    $phone =~ s/\D//g;              # удаляем не цифры               '380671234455'
    if ($phone =~ /^7/)
    {
        $phone =~ s/^7//g;    #' +7(907)-797-44-55, 7888080'  условие что телефон для россии начинается или 7 или +7
        length($phone) == 10 or return;
        $phone = '+7'.$phone;
    }else{
        $phone =~ s/^3?8//g;            # удаляем 3 или 38               '0671234455'
        length($phone) == 10 or return;
        $phone =~ /^0/ or return;    # если начинается не с 0, скорее всего телефон некорректен
        return '+38'.$phone;            # возвращаем 380671234455
    }
}

Код:
 cat patch.ajUserMenu.pl
#<ACTION> file=>'web/ajUserMenu.pl',hook=>'finish'

    {   # --- sms с логином/паролем ---

        Adm->chk_privil('Admin') or last;
        my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid);
        %p or last;
        my $message = "login: $p{name} pass: $p{pass}";
        my $phone = $info->{dopdata}{_adr_telefon} or last;
        $phone = $phone->show;
        $phone =~ s/^\s*//;
        $phone =~ s/^\+//;              # удаляем стартовый +
        $phone =~ s/[^\d\-\(\)].*$//;   # удаляем 2й телефон
        $phone =~ s/\D//g;              # удаляем не цифры
        if ($phone =~ /^7/)
          {
              $phone =~ s/^7//g;    #' +7(903)-797-44-55, 7888080'  условие что телефон для россии начинается или 7 или +7
              length($phone) == 10 or last;
              $phone = '+7'.$phone;
          }else{
             $phone =~ s/^3?8//g;            # удаляем 3 или 38
             length($phone) == 10 or last;
             $phone =~ /^0/ or last;         # если начинается не с 0, скорее всего телефон некорректен
            $phone = '+38'.$phone;
        }

        $menu[1] .= ' '.$url->a('sms с паролем', a=>'ajTurboSms', its_pass=>$uid, message=>$message, phone=>$phone, -ajax=>1);
    }
Записан
k291
Старожил
****

Карма: -10
Offline Offline

Сообщений: 455


Просмотр профиля
« Ответ #23 : 08 Августа 2014, 20:39:26 »

Часто появляется потребность, пересмотреть все отправленные СМС одному конкретному клиенту, но приходится искать через Ctrl+F и листая список отправленных СМС. Совсем не удобно  Грустный
Также, на странице клиента, хочется видеть текст отправленного СМС, а не "отослана sms с паролем".
Записан
k291
Старожил
****

Карма: -10
Offline Offline

Сообщений: 455


Просмотр профиля
« Ответ #24 : 25 Августа 2014, 20:43:42 »

Часто появляется потребность, пересмотреть все отправленные СМС одному конкретному клиенту, но приходится искать через Ctrl+F и листая список отправленных СМС. Совсем не удобно  Грустный
Также, на странице клиента, хочется видеть текст отправленного СМС, а не "отослана sms с паролем".
Теперь при отправке СМС в "Платежи" отображается "Замечание клиенту", а ниже где должен быть текст СМС, пусто. debug-режим ошибок не выдает. Видимо текст СМС не пишется в нужную ячейку БД
Записан
SerjioMati
NoDeny
Старожил
*

Карма: -4
Offline Offline

Сообщений: 282


Просмотр профиля
« Ответ #25 : 06 Сентября 2014, 22:46:19 »

після оновлення ip шлюза змінилися 2 кода. якщо у вас не виводиться остаток кредитів і статус код то завантажте файл і обновіть на сервері.
до

після

Стас після перевірки добав в модуль щоб обновляли модуль працездатний
Записан
SerjioMati
NoDeny
Старожил
*

Карма: -4
Offline Offline

Сообщений: 282


Просмотр профиля
« Ответ #26 : 11 Сентября 2014, 13:09:44 »

може хтось допомогти щоб користувач міг змінювати свій номер телефона для получення sms, так як було на nodeny 50.а то клієнти які давно в мережі можливо уже поміняли номери мобільних телефонів і тд.
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #27 : 29 Сентября 2014, 15:21:17 »

Перестало появляться меню "операции" в инфе клиента, дебаг:

Код:
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 85.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.

код этих строк:

Код:
 #Adm->chk_privil('Admin')  or last;        my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid);
        %p or last;
        my $message = "login: $p{name} pass: $p{pass}";
        my $phone = $info->{dopdata}{_adr_telefon} or last;
        $phone = $phone->show;
        $phone =~ s/^\s*//;
 
rev 286
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #28 : 30 Сентября 2014, 10:43:00 »

Перестало появляться меню "операции" в инфе клиента, дебаг:

Код:
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 85.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.

код этих строк:

Код:
 #Adm->chk_privil('Admin')  or last;        my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid);
        %p or last;
        my $message = "login: $p{name} pass: $p{pass}";
        my $phone = $info->{dopdata}{_adr_telefon} or last;
        $phone = $phone->show;
        $phone =~ s/^\s*//;
 
rev 286
Только у меня не работает в 286й ревизии?
Записан
ivanmfan
Постоялец
***

Карма: 9
Offline Offline

Сообщений: 131


Просмотр профиля Email
« Ответ #29 : 30 Сентября 2014, 18:38:37 »

Перестало появляться меню "операции" в инфе клиента, дебаг:

Код:
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 85.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.

код этих строк:

Код:
 #Adm->chk_privil('Admin')  or last;        my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid);
        %p or last;
        my $message = "login: $p{name} pass: $p{pass}";
        my $phone = $info->{dopdata}{_adr_telefon} or last;
        $phone = $phone->show;
        $phone =~ s/^\s*//;
 
rev 286
Только у меня не работает в 286й ревизии?

Привет, похоже на то что это патчем ломает, посмотри там где у тебя есть в патче  #Adm->chk_privil('Admin')  or last;  
поставь энтер в конце этой строки, и сделай install
Записан
Страниц: 1 [2] 3 4 ... 12
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!