Сегодня почти каждый агрегатор казино-игр интегрируется с операторами через seamless wallet. Модель легко описать — и легко незаметно ошибиться в деталях. Этот гайд показывает, что происходит во время игрового раунда и что нужно протестировать, прежде чем пойдут реальные деньги.
Принцип
Леджер принадлежит оператору. Баланс игрока никогда не переходит к агрегатору или студии. Вместо этого агрегатор спрашивает у кошелька оператора, каков баланс, просит списать ставку и выплатить выигрыш. Оператор отвечает на каждый вызов новым балансом или ошибкой.
Один игровой раунд по шагам
- Запуск. Оператор запрашивает у агрегатора URL игры для конкретного игрока, валюты и игры. Агрегатор возвращает URL, который оператор загружает для игрока.
- Баланс. Игра запрашивает баланс; агрегатор вызывает эндпоинт баланса оператора.
- Debit. Игрок крутит барабаны. Агрегатор вызывает эндпоинт списания оператора с ID транзакции, ID раунда и суммой. Оператор проверяет средства, проводит ставку и возвращает новый баланс.
- Credit. Раунд завершается. Агрегатор вызывает эндпоинт зачисления с суммой выигрыша, которая может быть нулевой, и тем же ID раунда.
- Rollback при необходимости. Если списание проведено, а раунд сорвался, агрегатор отправляет rollback по исходной транзакции.
Пять правил против споров о балансе
- Идемпотентность каждого вызова. Повторный ID транзакции должен возвращать исходный результат и никогда не создавать вторую проводку.
- Отменяйте только то, что существует. Rollback неизвестной транзакции нужно подтверждать, не двигая деньги.
- Credit после rollback. Решите и задокументируйте, что делать, если credit пришёл по уже отменённому раунду.
- Таймауты. Договоритесь, сколько агрегатор ждёт и сколько раз повторяет запрос. Медленный кошелёк порождает дубли вызовов.
- Точность валюты. Договоритесь, передаются ли суммы в единицах или в минимальных единицах, особенно для криптовалют с большим числом знаков после запятой.
Тесты перед запуском
Прогоните в песочнице каждый сценарий: недостаточно средств, дубль debit, дубль credit, rollback после debit, rollback неизвестной транзакции, credit после rollback и таймаут кошелька. Логируйте каждый запрос и ответ с ID транзакции, чтобы поддержка могла за минуты отследить спорный раунд.
Seamless или transfer?
Transfer wallet переводит деньги в сессию и обратно. Это упрощает некоторые интеграции с провайдерами, но разбивает баланс между системами. Seamless сохраняет единственный источник истины, поэтому его предпочитает большинство операторов. Hub88 — один из немногих агрегаторов, документирующих оба варианта.
Частые вопросы
Что такое seamless wallet?
Модель интеграции, при которой деньги игрока остаются в системе оператора. Агрегатор или игровой сервер обращается к оператору при каждой проверке баланса, ставке и выигрыше.
Чем seamless wallet отличается от transfer wallet?
В transfer wallet деньги переводятся в сессию провайдера игр и в конце возвращаются обратно. В seamless wallet они никогда не покидают леджер оператора.
Что такое идемпотентность в API кошелька?
Гарантия того, что двойная обработка одного запроса даёт тот же эффект, что и однократная. Каждый debit и credit несёт уникальный ID транзакции, поэтому повторный вызов не проводится дважды.
Что будет, если debit прошёл, а игровой раунд сорвался?
Агрегатор отправляет rollback (иногда его называют refund или cancel) со ссылкой на исходную транзакцию, и оператор возвращает ставку игроку.
Какие агрегаторы используют seamless wallet?
Большинство. SoftAggregator, SoftGamings и Hub88 заявляют об этом публично; Hub88 также предлагает вариант TransferWallet.