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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3
  Печать  
Автор Тема: Nonstop24 - терминалы 24nonstop.com.ua  (Прочитано 15930 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« : 16 Августа 2013, 11:50:25 »

Закоммитил в папку test модуль Nonstop24. Необходимо скопировать в /cgi-bin/ и обязательно изменить пароль в переменной $SECRET в начале файла.

Внимание: в бою у меня нет возможности тестировать, поэтому я тестировал только по имеющейся документации. Буду благодарен если кто отпишется по ошибкам (надеюсь их нет) или доработкам. Хотя бы за то, что я выложил его бесплатно

В папке /usr/local/nodeny/logs появятся 2 лога для nonstop24 - для ошибок и успешных операций.
« Последнее редактирование: 18 Августа 2013, 16:01:08 от elite » Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #1 : 16 Августа 2013, 14:11:56 »

Закоммитил в папку test модуль Nonstop24. Необходимо скопировать в /cgi-bin/ и обязательно изменить пароль в переменной $SECRET в начале файла.
/quote]
пожалуйста можно чуть подробней как его установить?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #2 : 16 Августа 2013, 14:32:23 »

копируем в папку cgi-bin
даем права 777 (нормальный админ даст правильные, а для других и это сойдет)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #3 : 18 Августа 2013, 11:09:03 »

К сожалению пока вы меня подгоняли, сами немного тупили. Не тупил один только elite, который подогнал не только документацию, но и урл для тестирования. В общем, модуль оказался с небольшими ошибками, я их исправил, усовершенствовал сам модуль и сделал платным. Как всегда за копейки: 80 грн. elite, как показатель нетормознутости, получает награду в виде бесплатного модуля.

Как установить и проверить: https://app.nodeny-plus.com.ua/docs/work/modules.html#nonstop24
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #4 : 18 Августа 2013, 11:51:53 »

спасибо)
Записан
Revizor
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #5 : 18 Марта 2017, 22:53:01 »

Народ, нонстоп стал теперь 2click и они у себя поменяли методы, модуль будет переделываться или с нуля под 2click сразу?
Записан
kosmich
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 90


Просмотр профиля
« Ответ #6 : 12 Июня 2017, 14:30:02 »

Доброго времени всем.
2Revizor если не ошибаюсь, 2click  это только проверка протокола взаимодействия.

На этапе прохождения тестирования протокола взаимодействия h t t p s ://protocol.2click.money act4 не проходит.
Разработчик: по коду подпись формируется так: md5(ACT + '_' + PAY_ACCOUNT + '_' +SERVICE_ID  + '_' + PAY_ID + '_' + секретный ключ)
ТП нонстопа говорит: signStr = ACT+”_”+PAY_ACCOUNT+”_”+SERVICE_ID+”_”+PAY_ID+”_”+PAY_AMOUNT+”_”+SECRET
ТП нонстопа говорит что нет парамера: PAY_AMOUNT

Модуль куплен за деньги, не совсем понятно кто виноват и что делать, для решения вопроса.

Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #7 : 12 Июня 2017, 19:40:18 »

Кто виноват? Вот, например, я беру доку нонстопа, которую нашел на сайте Абилса Улыбающийся http://abills.net.ua/wiki/lib/exe/fetch.php/abills:docs:modules:paysys:24nonstop_protocol_for_providers_service_2.20.pdf

И что я там вижу:

Цитировать
Sign=MD5(ACT+”_”+ PAY_ACCOUNT+”_”+
SERVICE_ID+”_”+PAY_ID+”_”+SECRET)

И где здесь PAY_AMOUNT?

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

Вот как в коде считается подпись:

Код:
my $sign = uc md5_hex(join '_', $F{ACT}, $pay_account, $F{SERVICE_ID}, $F{PAY_ID}, $cfg::nonstop24_secret);

Думаю, так должно сработать:

Код:
my $sign = uc md5_hex(join '_', $F{ACT}, $pay_account, $F{SERVICE_ID}, $F{PAY_ID}, $F{PAY_AMOUNT}, $cfg::nonstop24_secret);
Записан
kosmich
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 90


Просмотр профиля
« Ответ #8 : 13 Июня 2017, 09:31:38 »

Кто виноват? Вот, например, я беру доку нонстопа, которую нашел на сайте Абилса Улыбающийся h t t p://abills.net.ua/wiki/lib/exe/fetch.php/abills:docs:modules:paysys:24nonstop_protocol_for_providers_service_2.20.pdf
Зачем нам Абиллс Улыбающийся
Есть оригинальная дока h t t p s://protocol.2click.money/Content/Documents/2click_protocol_for_providers_service%202.30.pdf
Спасибо, проверю, отпишусь.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #9 : 13 Июня 2017, 10:15:46 »

Видимо гугл считает, что там более оригинальная)
Записан
kosmich
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 90


Просмотр профиля
« Ответ #10 : 14 Июня 2017, 11:17:40 »

Изменил, теперь на первом действии ошибка 101.
Код:
11:10:01 [nonstop24.pl(107) Db.pm::line(143) Db.pm::sql(112) Db.pm::connect(94)]
Connecting to DBI:mysql:database=nodeny;host=localhost;port=3306;mysql_connect_timeout=5 : 0.009216 sec
14.06.2017 11:10:01 [nonstop24.pl(107) Db.pm::line(143) Db.pm::sql(133) Db.pm::sql(320)]
SELECT *, UNIX_TIMESTAMP() AS t FROM config ORDER BY time DESC LIMIT 1
Строк: 1. Время выполнения sql: 0.0002 сек
14.06.2017 11:10:01 [nonstop24.pl(158)]
Received data:
  ACT          = '1'
  PAY_ACCOUNT  = '56898'
  PAY_ID       = '60FEBDE7-D5C1-42D4-888D-83E93584BE61'
  SERVICE_ID   = 'Internet'
  SIGN         = '6128640FEEE98C140CE0D9E465AF288C'
  TRADE_POINT  = '1234'
14.06.2017 11:10:01 [nonstop24.pl(173)]
  local_sign   = '7FC0D7FBE3B0FF99DF9AAF23917DEA63'
  remote_sign  = '6128640FEEE98C140CE0D9E465AF288C'
14.06.2017 11:10:01 [nonstop24.pl(174) nonstop24.pl::Error_exit(81)]
Wrong SIGN
14.06.2017 11:10:01 [nonstop24.pl(174) nonstop24.pl::Error_exit(82) nonstop24.pl::Save_Debug(75)]
Elapsed time: 0.018982 se

Что еще необходимо показать ?
Если необходимо могу организовать доступ для прохождения/проверки тестового протокола.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #11 : 14 Июня 2017, 11:20:07 »

Если необходимо могу организовать доступ для прохождения/проверки тестового протокола.
это неплохо было бы. Свяжись с Николаем - скайп parawoz2004 - передай эту инфу, плз
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



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

Скачай с личного кабинета модуль, должно работать
Записан
kosmich
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 90


Просмотр профиля
« Ответ #13 : 19 Июня 2017, 15:04:37 »

Скачай с личного кабинета модуль, должно работать
Скачал работает. Спасибо.
По факту 24ке нужны этапы(действия) 1,4,7. Пройдены успешно.

Но есть еще и "финальная проверка" которую не удалось пройти.
ТП 24ки что то мямлит по этому поводу, доступа к логам странички тестирования сейчас у них нет.
Тот у кого есть доступ к логам, его сейчас нет и будет не скоро.
Эти действия 3 и 6 необходимы для проверки если платежка пришлет какой то бред, или абон бред впишет. Хотя если бред вписать уже на первом действии абона в ошибку отправит.
В финальном тесте три поля, идентификатор, аккаунт существующий, аккаунт не существующий и кнопка "Финальный тест"


Заполнил все три поля в итоге такой результат.
Код:
Идентификатор Товара 
Internet
Аккаунт (номер телефона и т.п.)
98
Не существующий аккаунт
10598
Финальный тест
01. Акт1, Акт7, Акт4, Акт7
02. Акт7 на несуществующую транзакцию (должно ответить "-10 Транзакцию не найдено")
3. Акт4 на несуществующую транзакцию (должно ответить "-101 Параметры запроса не корректны. Обратитесь к администратору.")
Запрос вернул StatusCode 22, ожидалось -101
04. Акт1 с pay_account "правильный" (Найти из истории транзакций), потом с этим pay_id сделать Акт4 но подставить не правильный pay_account (должно ответить "-40 Клиента не найдено" )
05. Передача Акт1 с неправильно подписью (должно ответить "-101 Параметры запроса не корректны. Обратитесь к администратору.")
6. Сделать Акт1 с pay_id который уже был в предыдущих транзакция (должно ответить "-100 В биллинговой системе найдено более одного платежа c данным Pay_id")
Запрос вернул StatusCode 21, ожидалось -100


Сделать Акт1 с pay_id который уже был в предыдущих транзакция - этот акт1 с pay_id со странички тестирования не сделаешь. Зачем тогда это требовать выполнять в "Финальном тесте" ?
Его можно выполнить запросом, подставив необходимые данные. Страничка тестирования для этого не нужна.
аст4 не пройти, если не пройдеш перед этим аст1, с неправильным pay_account отвечает -40 Клиента не найдено.
Передача Акт1 с неправильно подписью - так и отвечает, "-101 Параметры запроса не корректны. Обратитесь к администратору."
Акт7 на несуществующую транзакцию - ничего не отвечает, потому что не пройдя 1 и 4, не получишь 7.
Закономерный вопрос, нахера нужен "Финальный тест" ? - непонятно.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #14 : 19 Июня 2017, 15:36:45 »

У меня финальный тест проходил. Вообще можешь поиграться с таким участком кода:

Код:
my $pay_account = $act =~ /^(1|4)$/? $F{PAY_ACCOUNT} : '';
my @for_sign = ($F{ACT}, $pay_account, $F{SERVICE_ID}, $F{PAY_ID});

push @for_sign, $F{PAY_AMOUNT} if $act eq '4';

Это расшифровуется примерно так:
1-я строка: если act равен 1 или 4, то  в переменную $pay_account записать полученный PAY_ACCOUNT иначе ничего (пустая строка)
2-я строка: данные для подписи последовательно: ACT, pay_account, SERVICE_ID, PAY_ID
3-я строка: если act = 4, то к данным для подписи добавить PAY_AMOUNT

что интересно, по-моему при act=1 PAY_ACCOUNT не передается и вместо того, чтобы НЕ добавлять этот параметр, добавляется пустая строка (согласно первому правилу). А подпись по их доке склеивается символом подчеркивания. В итоге, в склеенной строке идет 2 подряд подчеркивания. При этом act=1 работает. А с PAY_AMOUNT уже такое не катит - при act=1 вместо него не нужно подсовывать пустую строку. Короче, какой-то у них корявый протокол, видно, что на ходу лампичили
Записан
Страниц: [1] 2 3
  Печать  
 
Перейти в:  

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