BG Development


Страници: (123) [1] 2 3 ... последна »

thrawn Публикувана на: 28-01-2021, 11:20

Мнения: 8
Преглеждания: 105
За базата данни питам, на за php-то.
Иначе, горе е зададен псевдоним image_file_name на полето а в кодът се опитваш да дотъпваш file_name
  Форум: PHP/Perl/Python/ASP  ·  Преглед: #490732

thrawn Публикувана на: 28-01-2021, 11:11

Мнения: 8
Преглеждания: 105
С коя версия на mysql си?

CODE
select version()
  Форум: PHP/Perl/Python/ASP  ·  Преглед: #490729

thrawn Публикувана на: 28-01-2021, 10:11

Мнения: 8
Преглеждания: 105
"Правилното" решение е да се ползва window функция за броенето вместо агрегатна. След това вече е възможно да се получи желаната информация.
Тук въпросът обаче е, на каква база данни ще се изпълнява.
  Форум: PHP/Perl/Python/ASP  ·  Преглед: #490727

thrawn Публикувана на: 27-01-2021, 05:25

Мнения: 263
Преглеждания: 21771
Да, дари да го подадеш не се печати.
  Форум: Разни  ·  Преглед: #490724

No New Posts  ePay интеграция (Страници 1 2 )
thrawn Публикувана на: 26-01-2021, 19:07

Мнения: 17
Преглеждания: 651
URL_OK и URL_CANCEL не би трябвало да съдържат никакви данни (освен тези които сам си поставил там). Това се потвърждава и от това, че препращане е с код 302 (301/302 не предполагат препращане на данни. Ако имаше нещо подобно щеяха да ползват 307/308).

Кодът за обработка трябва да е именно в "Известия за WEB плащания" като извикването е без нотификация към потребител. Демек, това е заявка която се пуска от машина (сървърът на epay) и отговорът се о работа пак от нея.
Няма как ти ръчно да пуснеш заявка до този адрес с коректни данни.
  Форум: PHP/Perl/Python/ASP  ·  Преглед: #490719

No New Posts  ePay интеграция (Страници 1 2 )
thrawn Публикувана на: 26-01-2021, 14:07

Мнения: 17
Преглеждания: 651
Нещо ти се губят основни моменти от схемата.

Първо, това няма нищо общо с подписване. Това е генериране на хеш сума, защитена с парола. Като цяло, идеята на тая операция е да се провери дали пакетът не е променен по пътя от epay.bg до теб. До колко това е удачно решение (не е!!!) е съвсем друга тема.

Значи, процедурата по плащане е в две фази.
В първата фаза (при която имаш контрол) клиентът си избира стока, ти подготвяш данните за плащане и препращаш клиентът на сайта на epay.bg, от където той се връща пак при теб или на адрес URL_OK или на URL_CANCEL (в зависимост от това какви ги е свършил в epay.bg).

Втората фаза е РЕАЛНОТО ПЛАЩАНЕ. То може да се случи в произволен момент във времето а може и изобщо да не се случи. Тук нямаш никакъв контрол. Когато има събитие в тая фаза (клиентът плати, откаже да плати или заявката експиряса) epay.bg използват callback адресът (webhook е модерния лаф) за да те нотифицират за събитието, като там вече ти изпращат данните за които питаш.
Когато получиш тия данни и статусът там е, че заявката е платена, това е "гаранция" че стоката е платена и можеш да я пращаш на получателя. При всяко положение обаче, трябва да отговориш на тая заявка (с какво, пише в документацията). Ако пропуснеш да отговориш (сървърът ти е offline да речем) epay.bg ще пробват да ти изпратят данните отново (кога, пише пак в документацията.).

Реално, отговор на твоя въпрос не виждам там. Никъде няма смислена информация как се посочва callback адресът (може би, като си влезеш в акаунтът има опции за настройка).
Също така, можеш да работиш и без да обработваш callback нотификации. Просто трябва периодично да проверяваш в сайтът на epay.bg какъв е статусът на заявката за плащане.
  Форум: PHP/Perl/Python/ASP  ·  Преглед: #490717

No New Posts  ePay интеграция (Страници 1 2 )
thrawn Публикувана на: 26-01-2021, 09:27

Мнения: 17
Преглеждания: 651
Прочети я тая документация де.
URL_OK и URL_CANCEL не са callback (webhook) адреси на които се получава потвърждение за плащане. Това са просто адреси, част от UI-а на които се препраща потребителя след като потвърди, че ЩЕ плаща или след като откаже да плати.
С други думи, както си пише и в документацията препращането на потребителя на URL_OK НЕ ГАРАНТИРА че е извършено плащане.

Трябва да имаш друг адрес на който ще получаваш обратните извиквания за статус на плащането на който вече ще имаш достъп и до съответната информация.
  Форум: PHP/Perl/Python/ASP  ·  Преглед: #490714

thrawn Публикувана на: 25-01-2021, 13:40

Мнения: 263
Преглеждания: 21771
Версия 2.0 на фирмуерът на датекс (стария протокол, не на Х-овете) добавя параметър K към команда 43 с който се разрешава/забранява печатът на УНП.
  Форум: Разни  ·  Преглед: #490711

thrawn Публикувана на: 23-01-2021, 16:15

Мнения: 263
Преглеждания: 21771
Как да няма, има, че даже и дос ползват (макар, че си го дал иронично, най-вероятно).
Но дори да приемем тезата, че стария софтуер ползва фпринт, то той генерира файловете без Унп (щото когато е писан, такова нещо не е имало).

  Форум: Разни  ·  Преглед: #490702

thrawn Публикувана на: 23-01-2021, 14:28

Мнения: 263
Преглеждания: 21771
Ама стария софтуер не подава УНП, та няма как ...
  Форум: Разни  ·  Преглед: #490700

thrawn Публикувана на: 23-01-2021, 13:20

Мнения: 263
Преглеждания: 21771
И Дейзи не го правят. Просто в датекс са решили така да закърпят обратната съвместимост, а сега това ще им изиграе кофти номер.

Интересното е, че първите версии на Дейзи с QR код, изобщо не поддържаха команда за отваряне на бон без УНП. В последствие, след като видяха пропускът (хората продължаваха да си ползват стария софтуер) по спешност пуснаха ъпгрейд.
  Форум: Разни  ·  Преглед: #490698

thrawn Публикувана на: 23-01-2021, 10:13

Мнения: 263
Преглеждания: 21771
УНП то се генерира автоматично, ако не е подадено, като се инкрементира броячът от последното използвано УНП. Това го добавиха за обратна съвместимост (да можеш да правиш продажби от стар софтуер, който не отваря бон с УНП).

В понеделник ще видя последните версии на фърмуерите дали позволяват издаване на бонове без УНП.
  Форум: Разни  ·  Преглед: #490695

thrawn Публикувана на: 23-01-2021, 09:42

Мнения: 263
Преглеждания: 21771
Вече е наличен проектът за изменение на наредбата. СУПТО -то става по желание, НО се въвежда забрана за издаване на бонове с УНП от софтуер който не е СУПТО (което е леко проблемно с принтерите на датекс).
  Форум: Разни  ·  Преглед: #490692

thrawn Публикувана на: 23-01-2021, 08:43

Мнения: 14
Преглеждания: 506
Реално приложението не ползва сесии. Има "постоянен" токен който не експирясва.
От тук идеята е да се определят периодите в които токенът е ползван за работа с приложението (на това му викам сесия - период на активност на потребителя). Не мога да трия от логовете, защото не се знае за какъв период на зад ще трябва да се генерира справка (става дума за справка на база логове).
  Форум: СУБД, SQL програмиране  ·  Преглед: #490690

No New Posts  ePay интеграция (Страници 1 2 )
thrawn Публикувана на: 23-01-2021, 07:46

Мнения: 17
Преглеждания: 651
В кодът който си дал никъде не използваш $_POST, нито показваш изпращане на данни към сайтът ти.

  Форум: PHP/Perl/Python/ASP  ·  Преглед: #490688

thrawn Публикувана на: 22-01-2021, 18:59

Мнения: 14
Преглеждания: 506
Това ми трябва за да определям време на живот на сесия. Като за край на сесията се счита интервал, по-голям от 5 минути без събитие.
Когато се получи събитие просто не се знае кога (и дали) ще има следващо. Знае се само предходното събитие кога е било (ако го е имало).

Самите сесии са без ограничение по време - и точно това ми е проблемът който се опитвам да реша.
  Форум: СУБД, SQL програмиране  ·  Преглед: #490683

thrawn Публикувана на: 22-01-2021, 18:28

Мнения: 14
Преглеждания: 506
51 -години е интервал от "нулата" 01-01-1970, демек от null.
Реално погледнато мен не ме бърка числото а само това дали е по-голямо или по-малко от 5 минути.

Просто предпочетох да го направя да смята данните еднократно при записване отколкото да ги смятам всеки път при поискване.

Иначе, да интервалите са между редовете, но вече са сметнати.
  Форум: СУБД, SQL програмиране  ·  Преглед: #490681

thrawn Публикувана на: 22-01-2021, 16:34

Мнения: 14
Преглеждания: 506
То и при мен логиката е да създам поле по което в последствие да групирам - sid то.
Иначе, няма нужда да смяташ сам интервалите. Те са налични директно в idle_interval.
  Форум: СУБД, SQL програмиране  ·  Преглед: #490677

thrawn Публикувана на: 20-01-2021, 17:26

Мнения: 14
Преглеждания: 506
ето примерни данни за тестове http://sqlfiddle.com/#!17/29eeb/1
  Форум: СУБД, SQL програмиране  ·  Преглед: #490667

thrawn Публикувана на: 20-01-2021, 16:36

Мнения: 14
Преглеждания: 506
Не става така, having връща конкретен ред.
В твоя пример event трябва да част от group клаузата (или да се ползва в агрегатна функция). А това променя коренно условието.

---
едит

В моя вариант това
CODE
sum(sid + c) over(partition by username order by event_time) sid

е достатъчно да бъде
CODE
sum(c) over(partition by username order by event_time) sid
  Форум: СУБД, SQL програмиране  ·  Преглед: #490666

thrawn Публикувана на: 20-01-2021, 15:54

Мнения: 14
Преглеждания: 506
Ето това съм избацал до сега, ама търся по грамотно решение
CODE
with tmp1 as (
      select
            username, event_time,
            case when idle_interval > interval '5 minutes' then 1 else 0 end c,
            0 as sid
      from logs
),
tmp2 as (
      select
            username, event_time,
            sum(sid + c) over(partition by username order by event_time) sid
      from tmp1
)
select username, max(event_time), min(event_time) from tmp2
group by username, sid;
  Форум: СУБД, SQL програмиране  ·  Преглед: #490664

thrawn Публикувана на: 20-01-2021, 15:23

Мнения: 14
Преглеждания: 506
Нещо зациклих, та малко помощ няма да ми дойде зле.

Имам лог система в която се записа дата и част (timestamp without time zone) на събитие и период на неактивност (interval) + id на потребител.

Целта е да групирам записите по id така, че във всяка група да няма периоди на неактивност по-големи от 5 минути. Разбирасе, всичко подредено хронологично.

Някаква идея как да се реализира с sql?
За postgresql иде реч.

----
Ето примерни данни
CODE
"admin"      "2021-01-20 15:04:38.028776"      "51 years 19 days 15:04:38.028776"
"admin"      "2021-01-20 15:04:58.712545"      "00:00:20.683769"
"admin"      "2021-01-20 15:05:00.125379"      "00:00:01.412834"
"admin"      "2021-01-20 15:24:41.083475"      "00:19:40.958096"
"admin"      "2021-01-20 15:24:42.960778"      "00:00:01.877303"
"admin"      "2021-01-20 15:24:44.410533"      "00:00:01.449755"
"admin"      "2021-01-20 15:24:45.947244"      "00:00:01.536711"


От това трябва да получа две групи
CODE
"admin"      "2021-01-20 15:04:38.028776"      "51 years 19 days 15:04:38.028776"
"admin"      "2021-01-20 15:04:58.712545"      "00:00:20.683769"
"admin"      "2021-01-20 15:05:00.125379"      "00:00:01.412834"

CODE
"admin"      "2021-01-20 15:24:41.083475"      "00:19:40.958096"
"admin"      "2021-01-20 15:24:42.960778"      "00:00:01.877303"
"admin"      "2021-01-20 15:24:44.410533"      "00:00:01.449755"
"admin"      "2021-01-20 15:24:45.947244"      "00:00:01.536711"


като реално ме интересува минималната и максималната стойност на дата във всяка група
CODE
"admin"      "2021-01-20 15:04:38.028776"      "2021-01-20 15:05:00.125379"
"admin"      "2021-01-20 15:24:41.083475"      "2021-01-20 15:24:45.947244"
  Форум: СУБД, SQL програмиране  ·  Преглед: #490663

thrawn Публикувана на: 19-01-2021, 07:39

Мнения: 4
Преглеждания: 1580
Ако изобщо го бъде, е ясно, ще е https като преносен протокол + rest API с цифрово подписани пакети.
Въпросът не е в това, а че темата публично се обсъжда от "групичка специалисти" които хал хабер си нямат дори какво обсъждат (поредната отбиване на номера).

Като цяло, всичко което се обсъжда и сега го има, но на съответните "специалисти" просто не им отърва.
  Форум: Разни  ·  Преглед: #490652

thrawn Публикувана на: 17-01-2021, 20:04

Мнения: 2
Преглеждания: 252
Баси наглостта, вече дори не задават въпрос. Не казват и колко много ще са благодарни. В прав текст поставят задача и чакат да се намери идиот да им я реши.

Що си не ...
  Форум: C/C++  ·  Преглед: #490646

thrawn Публикувана на: 16-01-2021, 08:47

Мнения: 8
Преглеждания: 485
Почни с това което искаш да направиш (двуфакторна автентикация?) а не как си решил да го правиш.

Използването на асиметрично криптиране / цифров подпис за достъп има резон, но то отваря доста проблеми от потребителска гледна точка.
Решението на ici би решило тия проблеми (ако се направи да анулира клавиатура) но ти отваря на теб проблеми. Направата на устройството е лесно, но след това ти трябва да си го произвеждш, да му намериш кутия (което си е сериозен проблем) и т.н.
Можеш да помислиш за автентикация с телефон.
  Форум: HTML/CSS/JavaScript/VBScript  ·  Преглед: #490634

Страници: (123) [1] 2 3 ... последна »
New Posts  Отворена тема (има нови мнения)
No New Posts  Отворена тема (няма нови мнения)
Hot topic  Гореща тема (има нови мнения)
No new  Гореща тема (няма нови мнения)
Poll  Анкета (има нови гласували)
No new votes  Анкета (няма нови гласували)
Closed  Заключена тема
Moved  Преместена тема

Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0