Версия API мобильной коммерции V2
Методы MIXPLAT API
Принцип работы
API позволяет реализовать приём мобильных платежей в web-, mobile- и desktop-приложениях.
Обмен запросами между системами происходит без переадресации абонента на платёжную форму MIXPLAT, что позволяет интегрировать оплату в интерфейс сайта или приложения без визуальных стилизационных изменений.
Система Продавца может использовать ранее сохранённые номера телефонов своих пользователей и задавать сумму оплаты согласно действиям и выбору пользователя.
Скачать PHP-классПараметры подключения
API содержит методы, для вызова которых необходимо отправить запрос на URL:
https://stat.mixplat.ru/api/{имя метода api}
Параметры передаются одним из выбранных Вами способов:
- GET запросом (в URL)
- POST запросом (строкой в теле запроса вида параметр=значение)
- POST запросом (JSON в теле запроса)
URL запроса должен содержать строку параметров вида
param1=val1¶m2=val2&...
Строка параметров отделяется от URL запроса символом ?
Например:
https://stat.mixplat.ru/api/mc.init?name1=value1&name2=value2&...
Названия и значения параметров должны быть закодированы в url-encoded формате
Тело POST запроса должно содержать строку вида:
param1=val1¶m2=val2&...
Названия и значения параметров должны быть закодированы в url-encoded формате
Тело POST запроса должно содержать JSON строку вида:
{"param1" : "val1", "param2" : "val2", ... }
Способы передачи параметров проверяются в указанном порядке:
- JSON в теле POST запроса
- Строка параметров в теле POST запроса
- Строка параметров в 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://stat.mixplat.ru/api/mc.init
Формат передаваемых данных Вы можете настроить руководствуюясь разделом 2 документации. Запрос исходит из Системы Продавца с определёнными параметрами, в числе которых телефон абонента и сумма платежа. Телефон абонента проверяется на соответствие тому или иному оператору сотовой связи с учётом MNP (Mobile Number Portability).
Параметры запроса mc.init
Параметр | Значение | Описание |
---|---|---|
phone | string[11] | Номер телефона абонента формате 7хххххххххх без спец.символов. |
description | string[10 — 70] | Описание платежа. Используется в тексте SMS-сообщения к абоненту. |
amount | string | Сумма платежа. |
currency | string[3] | Трёхбуквенный код валюты совершаемого платежа |
merchant_order_id | string[255] | ID платежа в системе Продавца. Необязательный параметр. |
success_message | string[10 — 255] | Текст в SMS-сообщении Абоненту после успешного платежа. Стоимость отправки сообщения определяется Вашим тарифным планом. Необязательный параметр. |
service_id | int | ID Проекта продавца к которому относится платеж. |
test | int | 0 — для реальных платежей (по умолчанию) |
sign | string |
Подпись запроса. Алгоритм генерации подписи:
Пример рассчёта подписи: |
Пример GET-запроса
Отправляется запрос в MIXPLAT из Системы Продавца:
[params] => Array
(
[phone] => 79031234567
[description] => Тестовый платеж
[amount] => 10
[currency] => RUB
[success_message] => Ваш платеж принят
[service_id] => 2426
[test] => 0
[sign] => 1056513025376f4098bbc52e17a522d8
)
https://stat.mixplat.ru/api/mc.init/?phone=79031234567&description=Тестовый платеж&amount=10¤cy=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 Проекта Продавца к которому относится платеж. |
date | string [yyyy-MM-ddThh:mm:ss] | Дата и время присвоения статуса платежу. Часовой пояс UTC+3. Пример:2015-02-05T14:33:12 |
order_id | string | ID платежа в системе MIXPLAT. |
merchant_order_id | string | ID платежа в системе Продавца. Принимает значение "0", если не был задан Продавцом при инициации платежа. |
status | int | Код статуса платежа. |
phone | string [11 — 12] | Номер телефона абонента |
operator | string | Оператор сотовой связи абонента. Список кодов операторов Вы можете посмотреть в таблице "Коды операторов". |
amount | string |
Сумма платежа. |
amount_charged | string |
Сумма, причитающаяся продавцу. |
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. |
merchant_order_id | string | ID платежа в системе продавца. Обязательный параметр, если отсутствует order_id. |
service_id | int | ID Проекта Продавца к которому относится платеж. |
sign | string |
См. формирование подписи запроса в mc.init |
Результат успешного запроса статуса платежа
При успешном запросе статуса платежа возвращается JSON объект со следующими ключами:
Ключ | Тип | Описание |
---|---|---|
service_id | int | ID Проекта Продавца к которому относится платеж. |
date | string | Дата и время присвоения статуса платежу. Формат: yyyy-MM-ddThh:mm:ss Часовой пояс UTC+3. Пример:2015-02-05T14:33:12 |
order_id | string | ID платежа в системе MIXPLAT. |
merchant_order_id | string | ID платежа в системе Продавца. Принимает значение "0", если не был задан Продавцом при инициации платежа. |
status | int | Код статуса платежа. |
phone | string [11 — 12] | Номер телефона абонента |
operator | string | Оператор сотовой связи абонента. Список кодов операторов Вы можете посмотреть в таблице "Коды операторов". |
amount | string | Сумма платежа. |
amount_charged | string | Сумма, причитающаяся Продавцу. |
Результат ошибки при получении статуса платежа
См. результат ошибки при инициации платежа
Пример GET запроса Продавца и ответа MIXPLAT на получение статуса платежа
https://stat.mixplat.ru/api/mc.get/?order_id=jRKpqQtrSPWqqtqx3b0xiw&service_id=2426&sign=&81b09757079bc7a07ef973cd180ef01d
{
"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 Проекта Продавца к которому относится платеж. |
date | string | Дата и время инициации платежа. Формат: yyyy-MM-ddThh:mm:ss. Часовой пояс UTC+3. Пример:2015-02-05T14:33:12 |
method | string | Всегда check |
order_id | string | ID платежа в системе MIXPLAT. |
phone | string [11 — 12] | Номер телефона абонента |
operator | string | Оператор сотовой связи абонента. Список кодов операторов Вы можете посмотреть в таблице "Коды операторов". |
amount | string | Сумма платежа. |
text | string | Текст, указанный в сообщении SMS на короткий номер или из Web-формы. |
amount_charged | string | Сумма, причитающаяся Продавцу. |
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 | Превышено время ожидания статуса платежа от оператора. Платёж неуспешен |