+7 495 775 06 00
Центральный офис, Москва
MIXPLAT Разработчикам Интеграция (Api)


Внимание! Это устаревшая версия api. Версия API мобильной коммерции V2

Описание методов API

Принцип работы

API позволяет реализовать приём мобильных платежей в web-, mobile- и desktop-приложениях.

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

Система Продавца может использовать ранее сохранённые номера телефонов своих пользователей и задавать сумму оплаты согласно действиям и выбору пользователя.

Скачать PHP-класс


Параметры подключения

API содержит методы, для вызова которых необходимо отправить запрос на URL:

https://client.mixplat.ru/api/{имя метода api}

Параметры передаются одним из выбранных Вами способов:

  1. GET запросом (в URL)
  2. URL запроса должен содержать строку параметров вида

    param1=val1&param2=val2&...

    Строка параметров отделяется от URL запроса символом ?

    Например:
    https://client.mixplat.ru/api/mc.init?name1=value1&name2=value2&...

    Названия и значения параметров должны быть закодированы в url-encoded формате

  3. POST запросом (строкой в теле запроса вида параметр=значение)
  4. Тело POST запроса должно содержать строку вида:

    param1=val1&param2=val2&...

    Названия и значения параметров должны быть закодированы в url-encoded формате

  5. POST запросом (JSON в теле запроса)
  6. Тело POST запроса должно содержать JSON строку вида:

    {"param1" : "val1", "param2" : "val2", ... }

Способы передачи параметров проверяются в указанном порядке:

  1. JSON в теле POST запроса
  2. Строка параметров в теле POST запроса
  3. Строка параметров в URL GET запроса

Ваши ответы на запросы MIXPLAT должны быть в формате JSON в теле документа.

Пример:

{"answer":"ok"}

Все данные должны быть в кодировке UTF-8.

Вы можете добавить IP-адреса MIXPLAT в белый список: 89.111.54.163
89.111.54.165
185.77.232.26
185.77.233.26
185.77.232.27
185.77.233.27



Внимание! Это устаревшая версия api. Версия API мобильной коммерции V2


Создание платежа (mc.init)

Передача параметров осуществляется на URL:

https://client.mixplat.ru/api/mc.init

Формат передаваемых данных Вы можете настроить руководствуюясь разделом 2 документации. Запрос исходит из Системы Продавца с определёнными параметрами, в числе которых телефон абонента и сумма платежа. Телефон абонента проверяется на соответствие тому или иному оператору сотовой связи с учётом MNP (Mobile Number Portability).


Параметры запроса mc.init

Параметр Значение Описание
phone string[11]

Номер телефона абонента формате 7хххххххххх без спец.символов.
Пример: 79001234567

description string[10 — 70]

Описание платежа. Используется в тексте SMS-сообщения к абоненту.
Пример: Билет в кино #3231

amount string

Сумма платежа.

Указывается с точностью до 2-х знаков после запятой.
Разделитель дробной части - точка.

Минимальное значение: 1.00
Максимальное значение 15000.00

Примеры: 1.00, 100.05

currency string[3]

Трёхбуквенный код валюты совершаемого платежа
по стандарту ISO 4217.
Пример:RUB, UAH

merchant_order_id string[255]

ID платежа в системе Продавца. Необязательный параметр.
Пример:14012015-TICKET-3231

success_message string[10 — 255]

Текст в SMS-сообщении Абоненту после успешного платежа. Стоимость отправки сообщения определяется Вашим тарифным планом. Необязательный параметр.
Пример:Оплата совершена! Сообщите код 537-482 кассиру для получения билета.

service_id int

ID Проекта продавца к которому относится платеж.
Пример:1002365

test int

0 — для реальных платежей (по умолчанию)
1 — для тестовых платежей.
Если выбран тестовый режим, то платежи не проводятся через биллинг оператора связи, а записываются в статистику MIXPLAT в раздел "Тестовые платежи". Посмотреть тестовые платежи Вы можете выбрав соответствующий пункт фильтра в статистике в личном кабинете. Необязательный параметр.

sign string

Подпись запроса. Алгоритм генерации подписи:
md5(REQUEST_URL + ’?’ + PARAMS + SECRET_KEY), где:

REQUEST_URL — путь к запрашиваемому методу.
Пример: /api/mc.init

PARAMS — Строка параметров, переданных в запросе (за исключением параметра sign), состоящая из пар вида параметр=значение, разделённых символом &
Порядок следования параметров в строке должен быть таким же, как в запросе.
Значения параметров должны браться до url-кодирования.
Пример: service_id=999&test=1&merchant_order_id=1380722287.98895.29911:100&amount=100&phone=79991230000&description=Оплата товара&currency=RUB&success_message=Товар успешно оплачен

SECRET KEY — секретный ключ (задаётся в настройках проекта).
Пример: F3DS9481GD8F942D

Пример рассчёта подписи:
md5('/api/mc.init?service_id=999&test=1&merchant_order_id=1380722287.98895.29911:100&amount=100&phone=79991230000&description=Оплата товара&currency=RUB&success_message=Товар успешно оплаченF3DS9481GD8F942D')

Пример GET-запроса

Отправляется запрос в MIXPLAT из Системы Продавца:


   [params] => Array
	   (
	 [phone] => 79031234567
	 [description] => Тестовый платеж
	 [amount] => 10
	 [currency] => RUB
	 [success_message] => Ваш платеж принят
	 [service_id] => 2426
	 [test] => 0
	 [sign] => 1056513025376f4098bbc52e17a522d8
	   )

		
			https://client.mixplat.ru/api/mc.init/?phone=79031234567&description=Тестовый платеж&amount=10&currency=RUB&success_message=Ваш платеж принят&service_id=2426&test=0&sign=1056513025376f4098bbc52e17a522d8

			
	

Результат успешной инициации платежа

При успешной инициации платежа возвращается JSON объект с ключами order_id (ID созданного платежа в MIXPLAT) и operator (код оператора сотовой связи, которому принадлежит номер телефона)

Коды операторов

Код Значение
beeline Билайн
mf Мегафон
mts МТС
tele2 Теле2
usi Ютел
kyivstar Киевстар

{"order_id":"Wg6X5CV-TMa83ICy1hq5uw","operator":"beeline"}

Результат ошибки при инициации платежа

В случае возникновения ошибки, возвращается JSON объект с ключом error, который представляет собой объект с ключами code (код ошибки) и message (текст ошибки).

{"error":{"code":4,"message":"\"phone\" is required"}}

Коды ошибок MIXPLAT

Код Описание
0 Неизвестная ошибка
2 Запрошенного Проекта не существует
3 Неверно сформированная подпись запроса
4 Параметр запроса не соответствует требованиям (см. текст ошибки).
5 Запрошенный платёж не существует (для метода mc.get)
8 Для данного номера не найден платёжный шлюз
18 Не определён оператор для данного номера
20 Данный проект отключен
23 Слишком быстрая повторная инициация платежа, следует повторить её позже
24 Слишком малая сумма платежа
25 Номер телефона заблокирован
100 Внутренняя ошибка MIXPLAT
↑ Наверх


Уведомления об изменении статуса платежа (notifyStatus)

Запрос от Системы MIXPLAT к Системе Продавца на URL, который был указан в настройках Проекта. В настройках также можно выбрать, в каком виде должен приходить запрос (POST по умолчанию, GET или JSON POST).


Параметры уведомления о статусе платежа

Параметр Значение Описание
method string

Всегда notifyStatus

service_id int

ID Проекта Продавца к которому относится платеж.
Пример:1003523

date string [yyyy-MM-ddThh:mm:ss] Дата и время присвоения статуса платежу. Часовой пояс UTC+3.
Пример:2015-02-05T14:33:12
order_id string

ID платежа в системе MIXPLAT.
Пример:Wg6X5CV-TMa83ICy1hq5uw

merchant_order_id string

ID платежа в системе Продавца. Принимает значение "0", если не был задан Продавцом при инициации платежа.
Пример:14012015-TICKET-3231

status int

Код статуса платежа.
Пример:23

phone string [11 — 12]

Номер телефона абонента
в международном формате без спец.символов.
Пример: 79001234567, 380441112233

operator string

Оператор сотовой связи абонента. Список кодов операторов Вы можете посмотреть в таблице "Коды операторов".
Пример: beeline

amount string

Сумма платежа.
Формат аналогичен сумме платежа в mc.init.

amount_charged string

Сумма, причитающаяся продавцу.
Формат аналогичен сумме платежа в mc.init.

sign string

См. формирование подписи запроса в mc.init


Пример уведомления и ожидаемый ответ системы Продавца

Отправляется запрос к Системе Продавца от MIXPLAT:


   [params] => Array
		  (
	    [method] => notifyStatus
	    [service_id] => 100127
	    [date] => 2014-09-22T18:45:00
	    [order_id] => a6dxhzgeThG05CmGNmdRWw
	    [merchant_order_id] => 0
	    [status] => 21
	    [phone] => 79261234567
	    [operator] => mf
	    [amount] => 11
	    [amount_charged] => 9.9
	    [sign] => 81b09757079bc7a07ef973cd180ef01d
		  )

Ожидаемый код ответа:

{"answer":"ok"}

Если получен иной ответ вместо ожидаемого, то MIXPLAT осуществляет повторные попытки доставки уведомления о статусе платежа (всего 10 попыток).

↑ Наверх


Запрос статуса платежа (mc.get)

Запрос от Системы Продавца к MIXPLAT для получения статуса платежа.

Параметры запроса

Параметр Значение Описание
order_id string

ID платежа в системе MIXPLAT. Обязательный параметр, если отсутствует merchant_order_id.
Пример:Wg6X5CV-TMa83ICy1hq5uw

merchant_order_id string

ID платежа в системе продавца. Обязательный параметр, если отсутствует order_id.
Пример:14012015-TICKET-3231

service_id int

ID Проекта Продавца к которому относится платеж.
Пример:1003523

sign string

См. формирование подписи запроса в mc.init


Результат успешного запроса статуса платежа

При успешном запросе статуса платежа возвращается JSON объект со следующими ключами:

Ключ Тип Описание
service_id int

ID Проекта Продавца к которому относится платеж.
Пример:1003523

date string Дата и время присвоения статуса платежу.
Формат: yyyy-MM-ddThh:mm:ss
Часовой пояс UTC+3.
Пример:2015-02-05T14:33:12
order_id string

ID платежа в системе MIXPLAT.
Пример:Wg6X5CV-TMa83ICy1hq5uw

merchant_order_id string

ID платежа в системе Продавца. Принимает значение "0", если не был задан Продавцом при инициации платежа.
Пример:14012015-TICKET-3231

status int

Код статуса платежа.
Пример:23

phone string [11 — 12]

Номер телефона абонента
в международном формате без спец.символов.
Пример: 79001234567, 380441112233

operator string

Оператор сотовой связи абонента. Список кодов операторов Вы можете посмотреть в таблице "Коды операторов".
Пример: beeline

amount string

Сумма платежа.
Формат аналогичен сумме платежа в mc.init.
Пример: 123.21

amount_charged string

Сумма, причитающаяся Продавцу.
Формат аналогичен сумме платежа в mc.init.
Пример: 110.00

Результат ошибки при получении статуса платежа

См. результат ошибки при инициации платежа


Пример GET запроса Продавца и ответа MIXPLAT на получение статуса платежа

Запрос Продавца к MIXPLAT
https://client.mixplat.ru/api/mc.get/?order_id=jRKpqQtrSPWqqtqx3b0xiw&service_id=2426&sign=&81b09757079bc7a07ef973cd180ef01d
Ответ MIXPLAT Продавцу
{
    "service_id" : 2426,
    "date" : "2014-09-29T12:33:38",
    "order_id" : "jRKpqQtrSPWqqtqx3b0xiw",
    "merchant_order_id" : "10",
    "status" : 2,
    "phone" : "79261234567",
    "operator" : "mf",
    "amount" : "10.00",
    "amount_charged" : "7.40"
}
↑ Наверх


Проверка готовности оказать услугу (CHECK-запрос)

Для включения CHECK запроса для вашего сервиса обратитесь в техническую поддержку. Запрос инициируется сервисом MIXPLAT. MIXPLAT обращается к CHECK-URL, указанному вами в настройках сервиса, опрашивая вашу систему на возможность проведения платежа.

Используются преимущественно при инициации платежа с короткого номера 3443, а также при приёме платежей через web-форму.

В настройках также можно выбрать, в каком виде передаются параметры запроса (POST, GET или JSON POST). По умолчанию: POST.

Параметр Значение Описание
service_id int

ID Проекта Продавца к которому относится платеж.
Пример:1003523

date string Дата и время инициации платежа.
Формат: yyyy-MM-ddThh:mm:ss.
Часовой пояс UTC+3.
Пример:2015-02-05T14:33:12
method string

Всегда check

order_id string

ID платежа в системе MIXPLAT.
Пример:Wg6X5CV-TMa83ICy1hq5uw

phone string [11 — 12]

Номер телефона абонента
в международном формате без спец.символов.
Пример: 79001234567, 380441112233

operator string

Оператор сотовой связи абонента. Список кодов операторов Вы можете посмотреть в таблице "Коды операторов".
Пример: beeline

amount string

Сумма платежа.
Формат аналогичен сумме платежа в mc.init.
Пример: 123.21

text string

Текст, указанный в сообщении SMS на короткий номер или из Web-формы.
Пример: Билет ПРОМО

amount_charged string

Сумма, причитающаяся Продавцу.
Формат аналогичен сумме платежа в mc.init.
Пример: 110.00

sign string

См. формирование подписи запроса в mc.init


Пример CHECK-запроса к Продавцу

Запрос на проверку параметров к Продавцу

	[params] => Array
	  (
	    [service_id] => 2426
	    [date] => 2014-09-29T12:33:38
	    [order_id] => jRKpqQtrSPWqqtqx3b0xiw
	    [status] => 2
	    [phone] => 79261234567
	    [operator] => mf
	    [amount] => 10.00
	    [text] => договор 14156
	    [amount_charged] => 7.40
	  )
Ответ Продавца

В случае корректности всех поступивших данных и готовности принять платёж:

{"answer":"ok"}

В случае некорректных данных:

{"answer":"error", "message":"Продажа билета не может быть совершена"}
↑ Наверх


Возможные статусы платежа

Параметр Значение
1 Ожидает обработки
2 Оплачен
4 Ошибка, недостаточно средств
5 Внутренняя ошибка системы
6 Отменено покупателем
7 Отменено продавцом
8 Возвращено покупателю
9 Передано оператору
10 Ожидает отправки на инициацию
11 Необходимо подтверждение инициации
12 Нет ответа от сервера оператора
13 Лимит по количеству платежей за сутки
14 Лимит по сумме оплаты за сутки
15 Лимит по сумме оплаты за неделю
16 Лимит по минимальному остатку на счете
17 Предыдущий платеж не завершен
18 Услуга недоступна для абонента
19 Время ожидания абонента истекло
20 Превышены другие лимиты
21 Не оплачен (по другой причине)
22 Сумма платежа меньше допустимой
23 Платеж перенаправлен на Pay-Per-Click
25 Превышено время ожидания статуса платежа от оператора. Платёж неуспешен
Подключив мобильную коммерцию, магазин получает гибкий инструмент для приема платежей — он может сам инициировать платеж на необходимую сумму, если у его клиента подошел к концу оплаченный период. В таком случае, где бы ни был клиент, ему поступит SMS для подтверждения оплаты (в сообщении будет указана сумма, название магазина или назначение платежа).
↑ Наверх