API SMM Media: пять методов для реселлеров
Документация открыта без регистрации, и по ней сразу видно, что можно построить поверх сервиса: свой сайт накрутки, бота или внутренний инструмент агентства. Разбираем методы, лимиты и обязанности, которые сервис перекладывает на реселлера.
Что умеют методы
Список услуг
Отдаёт весь каталог деревом: площадка → категория → услуга. У каждой позиции идентификатор, цена, границы заказа, название и поле скорости. Это тот же каталог, что открыт на сайте, только в JSON.
Создание заказа
Принимает идентификатор услуги, количество и ссылку, возвращает номер заказа. Никакого подтверждения нет: деньги списываются с баланса сразу, отменить созданный заказ нельзя.
Статус одного заказа
Возвращает услугу, ссылку, количество, списанную сумму и статус. Удобно для карточки заказа в своём интерфейсе.
Статусы пачкой
Принимает строку из номеров через запятую, до тысячи за раз. Основной метод для синхронизации: гонять его раз в несколько минут дешевле, чем опрашивать заказы поштучно.
Баланс
Возвращает остаток в рублях с копейками. Полезно как страховка перед созданием крупного заказа: при нехватке монет заказ повиснет в статусе «не оплачено».
Справочник статусов
Отдаёт все десять статусов с их номерами. Нужен один раз при разработке, чтобы не зашивать названия в код руками.
Что сервис перекладывает на реселлера
Правила реселлинга короткие, но каждый пункт снимает с сервиса часть ответственности. Валидацию ссылок вы делаете сами: если клиент вставил сокращённую ссылку или адрес с редиректом, заказ уйдёт на ручную модерацию и будет выполняться дольше обычного.
Дальше — сроки. Максимум по правилам реселлинга составляет семь дней, хотя большинство заказов стартует в первый же день. Ответ поддержки — до суток без выходных. Ни того, ни другого нельзя обещать своим клиентам как гарантию: вы перепродаёте услугу, которая сама идёт без гарантий.
И запрещённые тематики: за накрутку по ним сервис оставляет за собой право отключить реселлерский доступ аккаунту целиком. Политика и военная тематика названы прямо в общих правилах.
Кто на самом деле выполняет заказ
«Данный сервис не является прямым поставщиком. Мы лишь собираем, модерируем и отбираем лучшие услуги от различных поставщиков, которые предоставляют наиболее дешёвые и качественные услуги. Единого поставщика всех услуг не существует».
Правила и условия использования возможностей реселлера, /pages/documentation
Для разработчика это означает: одинаковые на вид позиции внутри категории могут вести себя по-разному, и подменять одну другой в своём коде нельзя. Идентификатор услуги — это адрес конкретного поставщика.
Что стоит заложить в интеграцию
-
Кэшируйте каталог, но обновляйте его ежедневно
Три с лишним тысячи позиций тянуть на каждый запрос клиента незачем. При этом цены сервис правит без предупреждения (п. 1.8 правил), а стоимость уже созданного заказа не пересчитывается — значит расхождение между вашим прайсом и настоящим обернётся вашим же убытком.
-
Проверяйте ссылку до отправки
Минимальный набор: убрать сокращатели, развернуть редиректы, проверить, что тип ссылки совпадает с типом услуги, и что объект открыт. Это единственная часть цепочки, которую вы контролируете полностью.
-
Опрашивайте статусы пачками
Метод на тысячу идентификаторов существует именно для этого. Поштучный опрос заказов ничего не даёт, кроме лишней нагрузки на обе стороны.
-
Заложите частичное выполнение
Статус «частично выполнено» — штатная ситуация: у поставщика кончилась база, деньги за остаток вернулись на баланс. В своём интерфейсе это нужно показывать клиенту, а не считать ошибкой.
-
Держите запас на балансе
При нехватке монет заказ создаётся в статусе «не оплачено» и висит, пока баланс не пополнят. Проверка баланса перед крупной пачкой заказов дешевле, чем разбор зависших.