Как стать автором
Обновить
22.01

Платежные системы *

Отправляем деньги через Сеть

Сначала показывать
Порог рейтинга
Уровень сложности

Двойная бухгалтерская запись в реляционной БД

Время на прочтение9 мин
Количество просмотров19K

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


Разобраться и избежать кучи граблей в этом деле мне помогла данная статья. При этом информации по теме "как сделать свою платежную систему" довольно мало, а в учебниках по бухучету программисту сходу разобраться не так просто (и очень нудно). Надеюсь, этот материал окажется полезным тем, кто только собирается что-то такое делать.


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


Введение


Многие компьютерные системы, использующие реляционные БД, хранят в них какую-то финансовую информацию о балансах и транзакциях. При этом при проектировании и разработке такой БД часто встает вопрос, а как именно хранить эту информацию. Обычно выбор стоит между дешевой "простой записью" и более сложной "двойной записью".



Лука Пачоли, автор самой старой (15 век) дошедшей до нас книги с описанием принципов двойной записи


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


Основные правила таковы:

Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии50

Как официально оплатить услуги фрилансера за границей, заплатить 0% налогов и не кормить платёжные системы

Время на прочтение5 мин
Количество просмотров23K
Такая возможность есть и вполне легальна. Не всё ещё наше государство и банки обложили налогами и комиссиями, чтобы любовницы больших государственных шишек летали частными самолётами на свои 62-метровые яхты. Пользуйтесь пока не прикрыли.

Из статьи вы узнаете с какими проблемами сталкивается бизнес при оплате работ фрилансеров, как отнести данные затраты к расходам, как заплатить с расчётного счёта организации, какие документы и как составить, а так же будут приведены образцы документов.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии29

Криптовалюта. ICO, IEO, STO. Майнинг. Блокчейн: регулирование в России. Полная история: 2014-2019 годов

Время на прочтение14 мин
Количество просмотров5.5K


Пролог


Юрист — человек, который может написать ответ на 10 листов и назвать его кратким.

Основной мой бизнес связан с юриспруденцией. Почти еженедельно приходит 1-2, а то и 3-5-10 клиентов, которые задают одни и те же вопросы: «Каков статус криптовалют/токенов в РФ/СНГ?»; «Какими налогами облагается майнинг/криптотрейдинг?»; «Как поставить ASIC/криптовалюту на баланс?» и т.д. Решил в нескольких статьях изложить свою позицию, основываясь исключительно на практике, но для этого важно разобраться, а на чём она основана, что в свою очередь диктует следующее: ознакомиться с действующими нормами и теми тенденциями, которые закладывает (условный) законодатель, исполнитель и судья. Поэтому попробуем прийти от того «а что же было?», к тому, «так что же есть?»: будет полезно не только для коллег, но и it-специалистов, потому как вопросы возникают чаще именно у них. И да, вторая важная решаемая проблема — повысить уровень грамотности: как станет ясно в конце цикла материалов, за 10 лет люди не научились ничему, кроме штампованию одних и тех же мифов и комментариев, которые делают им и окружающим только хуже. Наконец, третья задача: создать бесплатный мини-справочник по правовым вопросам крипто-отрасли (пользоваться им просто: все периоды выделены специальной полосой-заголовком). Подобные решения уже есть, но они: во-первых, лишены комментирования; во-вторых, не полны; в-третьих, в большинстве случаев не содержат ссылки на разные позиции и официальные документы).

Описание по всем годам будет в следующем формате:
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии6

Первое правило антифрода — никому не рассказывать про антифрод

Время на прочтение7 мин
Количество просмотров32K

На самом деле, правило фиговое. Но понятное дело, почему оно работает. В среде безопасников считается, что антифрод должен быть такой суперсекретной штуковиной за семью печатями с парой голодных Церберов поблизости. Чтобы никто-никто не мог заглянуть в щель и узнать, как этот антифрод работает и вообще, чего там внутри. Безопасникам это добавляет важности, а самому механизму антифрода — иллюзорную защиту.


Принцип security through obscurity не работает. Если пойти погуглить насчет новостей в разрезе «Клиента банка Х взломали и увели Y рублей», то такие новости будут всегда. Почти каждый день (почти — потому что не всегда об этом пишут).



Реализации всех известных протоколов шифрования открыты и доступны для изучения. Все криптографические и математические алгоритмы тоже описаны, причем весьма подробно. То есть садись, запасайся кофе или энергетиками, изучай все это добро да ломай себе потихоньку.


Поэтому система, которая считается защищенной только потому, что люди не знают, как она работает — вообще ни разу не защищенная. А вот чем такая система открытее, тем быстрее въедливое сообщество укажет своим критически настроенным перстом на все косяки в реализации. Что позволит эти косяки устранить.


Я работаю именно в парадигме открытости протоколов и систем, и в этом посте я хочу рассказать про устройство стандартного антифрода, о работе нашего в RBK.money, почему будущее за OpenSource, а также о том, как всё это может работать в идеальном мире.


Который мы с вами и можем приблизить.

Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии37

Истории

Архитектурная шизофрения Facebook Libra

Время на прочтение10 мин
Количество просмотров13K
Спустя два года я вернулся к блогу ради поста, который отличается от обычных занудных лекций о Haskell и математике. Последние несколько лет я занимался финансовыми технологиями в ЕС, и, кажется, пришло время написать на тему, которой технические СМИ уделили мало внимания.

Недавно Facebook выпустил то, что именует «новой платформой финансовых сервисов» под названием Libra. Она позиционируется как цифровая расчётная система, основанная на корзине международных валют, которые управляются на «блокчейне» и хранятся в денежном пуле, управляемом из Швейцарии. Цели проекта амбициозны и влекут масштабные геополитические последствия.

В Financial Times и New York Times много разумных статей о необоснованных денежных и экономических предположениях в основе предлагаемой финансовой системы. Но не хватает специалистов, способных на анализ с технической точки зрения. Не так много людей работают над финансовой инфраструктурой и публично говорят о своей работе, поэтому данный проект не слишком освещён в технических СМИ, хотя его внутренности открыты для всего мира. Я имею в виду открытые исходники в репозиториях Libra и Calibra Organisation.

То, что открыто миру — это архитектурно шизофренический артефакт с претензией на роль безопасной платформы для мировой платёжной инфраструктуры.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии38

Такая боль, такая боль, касса как сервис 2:0

Время на прочтение10 мин
Количество просмотров3.2K
В предыдущей статье мы рассказывали о том, как Антиплагиат выбирал себе «облака». В этой поговорим о важной составляющей жизни любой коммерческой компании — получении денег от клиентов.

Для получения платежей от частных клиентов мы всегда пользовались услугами агрегаторов. Сначала нам захотелось диверсификации между сервисами приема платежей, затем появились требования выписки электронных чеков… Словом, было много хотелок и требований как с нашей стороны, так и со стороны государства. В этой статье мы поделимся накопленным опытом и расскажем о граблях в высокой траве, на которые нам пришлось наступить и которые удалось избежать. Думаю, что описанный опыт может быть полезен всем тем, кто еще в начале пути интеграции платежей в свою систему.

Скрудж МакДак купается в золоте
Жили у бабуси две веселых кассы...
Всего голосов 14: ↑14 и ↓0+14
Комментарии3

Уязвимости ритейлеров — три случая, когда OTP можно было получить в запросе

Время на прочтение4 мин
Количество просмотров8.3K
При входе в личные кабинеты различных сервисов, в целях безопасности, часто используется 2FA — помимо логина и пароля, нужно ввести одноразовый код.

Но, как оказалось, не всё так безопасно даже с двухфакторной аутентификацией — за последний год я нашёл три (!) сервиса, когда одноразовый код для входа, который отправляется клиенту в SMS, можно было посмотреть в самом запросе.

Далее кратко о том, чем это грозило, на конкретных примерах.

1. Популярная сеть АЗС, более 500 000 зарегистрированных клиентов.

Запрос при входе в веб-версию личного кабинета:
POST https://someazs.ua/ua/profile/auth/
Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip, deflate, br
Accept-Language: ru,en-US;q=0.9,en;q=0.8,uk;q=0.7
Connection: keep-alive
Content-Length: 408
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: PHPSESSID=6n3l2o90hfb020u9ag020u8ha1; usersomeazs_popupcoupons=1;...
Host: someazs.ua
Origin: https://someazs.ua
Referer: https://someazs.ua/ua/login/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
X-Compress: null
X-Requested-With: XMLHttpRequest

data[phone_mask]: 951234567
data[phone]: 0951234567




Ответ: {"Status":0,"Code":"7038","status":true,"step2":true}

Код из SMS — 7038 — виден просто в ответе сервера.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии16

Как мы пишем микросервисы и почему не делаем этого быстро

Время на прочтение5 мин
Количество просмотров11K


Истории по распиливанию монолита часто похожи одна на другую. Был у команды здоровенный неповоротливый монолит, решили его распилить на россыпь правильных и шустреньких микросервисов, все стало круто. Отличаются истории лишь степенью ужаса “до”, радости “после” и рядом вторичных характеристик.


У нас в RBK.money тоже микросервисы. Но пришли мы к ним немного не так, как большинство. У нас все было даже хуже монолита — у нас на старте просто все было хреново.


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

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии23

Знакомьтесь: ransomware Nemty c поддельного сайта PayPal

Время на прочтение7 мин
Количество просмотров6.8K
В сети появился новый шифровальщик Nemty, который предположительно является преемником GrandCrab или Buran. Вредоносное ПО главным образом распространяется с поддельного сайта PayPal и обладает рядом интересных особенностей. Подробности о работе этого ransomware – под катом.

image
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии11

Атаки на бесконтактные банковские карты

Время на прочтение6 мин
Количество просмотров33K


Автор: cuamckuu

Извлечение содержимого карты и работа с EMV-командами может быть интересна не только в исследовательских целях. Существует несколько видов атак на бесконтактные банковские карты, про реализацию которых будет рассказано под катом.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии73

Финансовая ловушка в Яндекс.Деньги

Время на прочтение3 мин
Количество просмотров182K

Привет, Хабр! Хотел бы поделиться с вами одной особенностью Яндекс.Денег, которая выглядит, как ловушка для ваших денег и, на мой взгляд, является хорошим примером непродуманного UX. Хочется верить, что это было сделано не нарочно, а эта небольшая статья или как-то оградит часть аудитории хабра (из ближнего зарубежья) от этой ловушки или же как-то сподвигнет Яндекс на улучшение этого момента.


Итак, по существу. Вчера впервые зарегистрировался на Яндекс.Деньгах, тут же перевел туда деньги со своей карты, для этого почему-то (!!!) не потребовалось указывать своих данных. Далее я попробовал совершить перевод денег и тут я понял, что сделать этого не могу, так как нужно было уже указать паспортные данные. Проблема заключалась в том, что я не являюсь гражданином РФ и проживаю в Литве, методы прохождения идентификации не предполагают быстрого и относительно недорогого решения проблемы, потому что ближайший город, где это можно сделать — это Рига (Латвия). И, наконец, окончательная засада заключается в том, что вернуть деньги на свою же карту (с которой было осуществлено пополнение) я тоже не могу, так как нужно пройти идентификацию. Замкнутый круг.

Читать дальше →
Всего голосов 100: ↑85 и ↓15+70
Комментарии158

Проверка кода Telegram Open Network анализатором PVS-Studio

Время на прочтение7 мин
Количество просмотров25K

Picture 1

Telegram Open Network (TON) — это платформа от создателей мессенджера Telegram, которая, помимо блокчейна, содержит в себе большой набор сервисов. Недавно разработчики опубликовали код платформы, написанный на C++, и разместили его на GitHub. Нам захотелось проверить проект перед его официальным запуском.
Читать дальше →
Всего голосов 94: ↑88 и ↓6+82
Комментарии35

Как работают денежные переводы с карты на карту

Время на прочтение6 мин
Количество просмотров130K


Несмотря на то, что популярность данного вида переводов с каждым годом растёт все больше, в интернете очень мало информации о том как они работаю «изнутри» и в этой статье я простым языком расскажу что такое p2p-переводы, какие они бывают и как они устроены.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии36

Ближайшие события

Разбираемся с криптовалютой Libra. Подробности

Время на прочтение3 мин
Количество просмотров13K
image

Libra — проект криптовалюты от Facebook. Стоимость криптомонет которой будет стабильной и привязана к корзине валют, для начала это будут доллары, евро, японские иены и фунт стерлингов. Про него написано много статей, но в деталях функционирования проекта было много неизвестного. Сейчас Facebook помаленьку начинает рассказывать подробности. Какая роль у Facebook будет в проекте? Кому достанутся деньги? А может корпорации быстро отодвинут основателей на второй план? Давайте разбираться. Спойлер на картинке.
Читать дальше →
Всего голосов 39: ↑28 и ↓11+17
Комментарии13

В ожидании первого ноября: запрет или легализация криптовалют

Время на прочтение7 мин
Количество просмотров7.9K
В начале августа премьер Медведев поручил законодателям разобраться с многострадальным законом о криптовалютах до 1-го ноября. Принятие думой законопроекта будет означать начало регулирования и присвоения “монетам” официального статуса. Пока закон не принят, существуют несколько вероятностей относительно такого статуса. Каждый из возможных сценариев определенным образом отразится на рынке, майнерах, трейдерах, инвесторах и криптосообществе в целом.



В этом посте я стараюсь понять, как отразится новый законопроект на крипторынке и майнерах России, сделаю несколько прогнозов, на случай того или иного сценария. Для этого я кратко рассмотрю историю отношения государства к криптовалютам в России, опишу текущую ситуацию и проанализирую факторы, влияющие на принятие решений. В качестве результата я опишу несколько вариантов развития ситуации, которые, по моему убеждению, наиболее вероятны. Заранее уточняю, что различия в результатах готовящегося законопроекта могут быть колоссальными и будут зависеть в первую очередь от того, каким будет статус криптовалют.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии34

Как я «взломал» Qiwi без знаний программирования

Время на прочтение3 мин
Количество просмотров43K

Вступление


Снова всем привет.

На этот раз статья не будет поднимать «сурьезные» вопросы.

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

В данный момент Qiwi уже благополучно ее залатали, так что я буду стараться подкреплять объяснения современными скриншотами, иногда поясняя, как это выглядело 2.5 года назад.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии16

Почему иностранный банк интересует источник происхождения ваших средств?

Время на прочтение6 мин
Количество просмотров23K
В конце десятых годов произошло множество негативных событий на рынке банковских услуг стран СНГ, заставляющих задуматься о необходимости иметь запасной счет в иностранном банке. Тем более, что законодательство большинства стран позволяет это делать без специальных разрешений.

image

Открыть счет в иностранном банке частному лицу или компании, в наше время, непросто, но — возможно. Тем более, что кроме валютных накоплений, счет в зарубежном банке позволяет начать собственную иностранную кредитную историю. Это будет хорошим началом для вашего международного бизнеса, получения диплома зарубежного ВУЗа или второго гражданства, на случай возникновения тех или иных проблем на родине.

Почему же сегодня не так просто открыть счет в иностранном банке жителю одной из стран СНГ?

Читать дальше →
Всего голосов 31: ↑23 и ↓8+15
Комментарии30

Автоматизация тестирования платных сервисов на iOS

Время на прочтение21 мин
Количество просмотров7.4K
Для тех, кто интересуется темой автоматизации на iOS, у меня две новости — хорошая и плохая. Хорошая: в iOS-приложении для платных сервисов используется только одна точка интеграции — in-app purchases (встроенные в приложение покупки). Плохая: Apple не предоставляет никаких инструментов для автоматизации тестирования покупок.

В этой статье я предлагаю вам вместе со мной поискать универсальный метод автоматизации по ту сторону добра и зла Apple. Статья будет полезна всем, кто интегрирует в свои приложения сторонние сервисы, представляющие собой «чёрный ящик»: рекламу, стриминг, управление локацией и др. Обычно такие интеграции очень сложно тестировать, так как отсутствует возможность гибкой настройки стороннего сервиса для тестирования приложения.


Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии0

Погружение в Move — язык программирования блокчейна Libra от Facebook

Время на прочтение10 мин
Количество просмотров9.6K
Далее мы рассмотрим в деталях основные характеристики языка Move и в чем его ключевые различия с другим, уже популярным языком для смарт-контрактов — Solidity (на платформе Ethereum). Материал основан на изучении доступного он-лайн 26-страничного whitepaper-а.

Введение


Move — это исполняемый язык байт-кода, который используется для выполнения пользовательских транзакций и смарт-контрактов. Обратите внимание на два момента:

  1. В то время как Move является языком байт-кода, который может напрямую выполняться на виртуальной машине Move, Solidity (язык смарт-контрактов в Ethereum) — язык более высокого уровня, который сначала компилируется в байт-код перед выполнением в EVM (Ethereum Virtual Machine).
  2. Move можно использовать не только для реализации смарт-контрактов, но и для пользовательских транзакций (подробнее об этом будет дальше), в то время как Solidity — это язык только для смарт-контрактов.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии2

Как не потерять деньги в черном ящике: методы тестирования биллинга

Время на прочтение17 мин
Количество просмотров14K
Проверка платных сервисов — один из ключевых инженерных вопросов в тестировании Badoo. Наше приложение интегрировано с 70 платёжными провайдерами в 250 странах мира, и баг хотя бы в одном из них может привести к непредсказуемым последствиям. 

В этой статье я расскажу о методах тестирования, которые мы используем в Badoo, и о границах применимости этих методов — этапах тестирования, на которых они максимально эффективны. 

Статья будет полезна тестировщикам, разработчикам и продакт-менеджерам, чьи проекты уже интегрированы с платёжными провайдерами, или процесс интеграции только начинается. Если в своей работе вы сталкиваетесь с проблемой выбора методов тестирования таких интеграций, добро пожаловать под кат! 



Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии9

Вклад авторов