solovyov.net

Бачили який збір грошей ДОУ влаштували? Вийшло дуже кльово, імхо. :) Я там трохи взяти участі, зробив власне механізм трекінгу грошей.

Почнімо з карток, бо вони цікавіші. На сторінці ПЖ про донейти є посилання на фонді, через яке можна відправити будь-які кошти — але немає жодного механізму трекінгу того, звідки людина прийшла.

Тож я створив невеличкий сервіс, якому в аргументи можна передати суму, валюту і тег (можна подивитись на посилання на сторінці збору коштів ДОУ) — а він генерує спеціальний order_id виду cba-123356-#some-tag1~#some-tag2. Авжеж, як справжній програміст, я одразу зробив, щоб можна було багато тегів задати. :) Тобто йде до фонді по апі та генерує замовлення с заданими параметрами, а потім туди відправляє браузер — це тому на сторінці фонді вже неможливо змінити суму.

А як дістати ті дані? Ну ви напевно пам‘ятаєте, що я звіт зробив, то там тепер вже є автооновлення даних з фонді та в тому числі парсинг тегів з ідентифікатора замовлення.

А потім ці теги складаються в поле типу text[] в постгрес, ну й рибка в сітці. :) Зробив питання у метабейзі просто на суму грошей, віддав апі до нього — а Ігор з ДОУ зробив прикольну візуалізацію того і вийшло супер.

Що відбувається з банківськими переказами можна здогадатися, думаю — та сама регулярка ловить теги з коментаря. Одна проблема — оновлення робиться руками раз на день і тому відчуття змагання не таке яскраве.

Гарно, що це вже дуже повторюване, тож можна робити в різних варіантах. Воно, власне, ще непогано спрацювало як тест системи проєктів для нового сайту ПЖ. :)

Є насправді механізм передачі даних через спеціальне поле, але такі дані не побачиш в ікселевських звітах, що різко знижує їх цінність. А ще можна влаштувати ріалтайм замість оновлення по крону раз на 5 хвилин, за допомогою колбеків від фонді — але це підвищує складність системи, тобто стійкість буде не та і мені прийдеться звертати більше уваги на те, щоб воно працювало. :)

UPD. Ще додатково дешборд зробив.

(@ tg)