Пять платёжных провайдеров, два выжили
С каждого доллара, который пользователь платит звёздами Telegram, до нас доходит 65 центов. За время жизни проекта мы подключили пять платёжных провайдеров: сегодня деньги принимают два, ещё один остался клиентским классом без единого вызова, два выпилены полностью. Разбираю, что выжило из этой истории: общий контракт инвойса на шесть методов, одна таблица платежей на всех через полиморфную связь, деньги целыми числами. Плюс практика: что класть в payload платежа, десять секунд на pre_checkout_query, идентификатор, без которого невозможен возврат, HMAC от сырого тела и коды ответа как способ управлять ретраями провайдера. Со всеми местами, где наша схема до сих пор дырявая. Читать далее