|
|
|
OOO «Флекси Деньги», 127055, Москва
ул. Образцова, д.7, 5 эт., +7(495) 640-2595
support@flexidengi.ru , www.flexidengi.ru
|
|
СЕРВИС ЭЛЕКТРОННЫХ ПЛАТЕЖЕЙ
|
|
|
Платформа Флекси.
Описание протокола взаимодействия
|
|
|
|
|
|
Содержащаяся в документе информация является конфиденциальной
и не может распространяться без санкции представителя Флекси Деньги
|
|
04.05.12
|
| Содержание
Содержание 2
История изменений 3
Введение 4
Цель документа 4
Глоссарий 4
Общее описание 5
Краткое описание сервиса 5
Сценарий оплаты с переадресацией пользователя на платежную форму 6
Сценарий оплаты без переадресации пользователя на платежную форму 7
7
Товары 8
Форма оплаты Флекси 9
Требования к странице оплаты партнера 10
Исходные данные 11
Прием заявок на совершения платежа с переадресацией на платежную страницу 12
Прием заявок на совершения платежа без переадресации на платежную страницу 13
Интрейфейс определения оператора абонента по MSISDN 15
Интерфейс получения списка необходимых дополнительных параметров 16
Реестр Платежей 17
18
Приложение 1. Список идентификаторов Платежных систем 19
Приложение 2. Список кодов ошибок 20
Приложение 3. Список идентификаторов операторов сотовой связи 21
История изменений
Дата
|
|
Описание
|
29.10.2013
|
1.0
|
Первая версия документа
| Введение Цель документа
Документ описывает суть сервиса мультиоплаты, механику его оказания и протокол взаимодействия в рамках данного сервиса между платформой Флекси и ИС Партнера.
Глоссарий
Платформа Флекси – программно-аппаратный комплекс для обработки транзакций.
Партнер – информационная система партнера – программно-аппаратный комплекс, используемый Компанией – Партнером для подключения к Платформе Флекси для проведения электронных платежей.
Товар – выделенная единица услуги или продукта, предоставляемая пользователю в результате оплаты.
Сервис – совокупность товаров, предоставляемых Партнером.
Общее описание Краткое описание сервиса
ФлексиДеньги – это сервис, позволяющий партнеру принимать платежи его клиентов в любой удобной для них форме, через единый программный интерфейс платформы Флекси деньги.
Сценарий оплаты с переадресацией пользователя на платежную форму
-
Пользователь желает совершить платеж на ресурсе партнера;
-
Партнер направляет пользователя на страницу платежной формы платформы Флекси с передачей необходимых параметров согласно главе «Прием заявок на совершения платежа с переадресацией на платежную страницу»;
-
Платформа Флекси отображает на платежной форме необходимую информацию пользователю и просит указать недостающие необходимые данные(выбор продукта, платежной системы, ввод MSISDN или email) и оформляет заявку на совершения платежа в выбранной партнером/пользователем платежной системе;
-
Пользователь получает от платформы Флекси необходимые инструкции по совершению платежа.
-
Пользователь производит необходимые действия по соверщению платежа(оформляет платеж на ресурсе платежной системы, отвечает на смс, выполняет внесение средств через терминал оплаты и др.)
-
Платежная система регистрирует факт оплаты/не оплаты. В случае оплаты через web ресурс платежной системы, пользователь будет возращен на URL сервиса партнера указанный в исходных данных.
-
Платежная система уведомляет платформу Флекси о совершении платежа.
-
Платформа Флекси уведомляет платформу партнера по URL для уведомлений о факте соверщения/не соверщения платежа.
Сценарий оплаты без переадресации пользователя на платежную форму
-
Пользователь желает совершить платеж на ресурсе партнера. Партнер отображает необходимую информацию(условия и ограничения выполнения платежа) пользователю, форму выбора платежных методов и товаров, если необходимо, на данном этапе партнер может запросить дополнительную информацию со стороны платформы Флекси, например список дополнительных полей, необходимых к передаче на шаге 2 или определить оператора по номеру MSISDN в случае желания оплатить товар по средством Мобильной комерции.
-
Партнер выполняет отправку данных согласно главе «Прием заявок на совершения платежа без переадресации на платежную страницу»
-
Платформа Флекси выполняет необходимые действия по оформлению платежа.
-
Платформа Флекси возвращает Партнеру ответ с результатом оформления платежа.
-
Партнер сообщает необходимые инструкции пользователю или перенаправляет его на ресурс платежной системы.
-
Пользователь производит необходимые действия по соверщению платежа(оформляет платеж на ресурсе платежной системы, отвечает на смс, выполняет внесение средств через терминал оплаты и др.)
-
Платежная система регистрирует факт оплаты/не оплаты. В случае оплаты через web ресурс платежной системы, пользователь будет возращен на URL сервиса партнера указанный в исходных данных.
-
Платежная система уведомляет платформу Флекси о совершении платежа.
-
Платформа Флекси уведомляет платформу партнера по URL для уведомлений о факте соверщения/не соверщения платежа.
Товары
Платформа Флекси поддерживает несколько разновидностей товаров:
-
Товар с нефиксированной стоимостью. В данном случае стоимость определяется либо партнером при подаче заявки на платеж, либо пользователем на форме оплаты, если Партнер не передал стоимость. Также этот тип товара является товаром по умолчанию, для работы с ним, партнеру не обязательно передавать product_id при оформлении платежа.
-
Товар с фиксирвоанной стоимостью. В данном случае, стоимость и валюта товара изначально указана на платформе Флекси, еще не могут переназначить ни партнер, ни пользователь.
-
Пачка товаров с фиксированной стоимостью. В данном случае, этот товар представляет собой набор товаров с фиксированной стоимостью. Пример использования данного типа товара:
-
Партнер направляя пользователя на форму оплаты флекси, передает в заявке идентификатор товара-пачки.
-
Платформа Флекси дает выбрать пользователю один товар из пачки, например:
-
5 кристаллов за 30 рублей
-
10 кристаллов за 55 рублей
-
15 кристаллов за 75 рублей
Партнер может использовать любой тип товара на своё усмотрение.
Форма оплаты Флекси
Форма оплаты Флекси представляет собой платежную страницу, где пользователь видит информацию о совершаемом платеже, может выбрать один из доступных платежных методов, ввести дополнительную информацию для совершения платежа, а также выбрать товар из списка в случае, если партнер оформил заявку на пачку товаров или указать сумму и/или валюту платежа, если партнер эту информацию не передал в заявке на товар с нефиксированной стоимостью.
Партнер может передать в заявке идентификатор метода платежа6 чтобы пользователь сразу попал на шаг оплаты выбранным методом платежа(например на страницу ввода MSISDN если это платеж через МК).
Требования к странице оплаты партнера
Требования к странице оплаты доступны по адресу: http://flexidengi.ru/req/index.html
Протокол взаимодействия
Исходные данные
Для начала работы с платформой партнеру необходимо предоставить следующие данные:
-
URL для уведомлений о проведенных платежей.
-
URL сервиса партнера на который возвращается абонент после успешного проведения платежа.
-
URL сервиса партнера на который возвращается абонент после неудачного проведения платежа
-
E-mail на который будут отсылаться реестры платежей.
Со стороны платформы Флекси партнеру выдаются:
-
Идентификаторы сервисов и товаров партнера.
-
Секретное клово.
-
URL платежной страницы: https://pay.flexidengi.ru/
-
URL для заявок без переадресации: http://payments.flexidengi.ru/noform/
-
URL интерфейса определения оператора по MSISDN: http://payments.flexidengi.ru/operator/
-
URL интерфейса получения списка дополнительных параметров:
http://payments.flexidengi.ru/params/
Прием заявок на совершения платежа с переадресацией на платежную страницу
Для совершения платежа пользователем, партнёру необходимо направить пользователя на страницу оплаты методом POST с передачей следующих параметров:
Обязательные параметры:
Параметр
|
Описание
|
service_id
|
Идентификатор сервиса партнера
|
order_id
|
Идентификатор заказа на стороне партнера
|
customer_id
|
Идентификатор пользователя на стороне партнера
(email, MSISDN или логин)
|
hash
|
Контрольная сумма. Высчитывается как md5(service_id+customer_id+order_id+product_id+ summ+currency+count+payment_method_id+ secret_key),
где “+”- знак конкатенации, “secret_key” - секретный ключ, выдаваемый при регистрации партнера.
Если необязательный параметр не передается, то он не участвует в расчете хеша.
|
Необязательные параметры:
Параметр
|
Описание
|
product_id
|
Идентификатор товара на платформе. Если не указан - будет отображен список всех продуктов на сервисе;
|
summ
|
Сумма платежа, обязательный только для товаров с не фиксированной стоимостью
|
currency
|
Валюта, обязательна, в случае если указана сумма. Ожидается трехбуквенный ISO 4217 код валюты
|
count
|
Количество единиц товаров.
|
payment_method_id
|
Идентификатор платежной системы со стороны платформы см. Приложение 1
|
После проведения платежа абонент будет возвращен на страницу сервиса партнера.
Прием заявок на совершения платежа без переадресации на платежную страницу
Для некоторых платежных систем, например QIWI или Мобильная коммерция, партнер может не перенаправлять пользователя на платежную форму, при этом он сам отображает оферту, текст оферты можно получить у менеджера.
Для совершения платежа пользователем, партнёру необходимо послать запрос на оплату методом GET с передачей следующих параметров:
Обязательные параметры:
Параметр
|
Описание
|
service_id
|
Идентификатор сервиса партнера, обязательный
|
customer_id
|
Идентификатор пользователя, обязательный
|
order_id
|
Идентификатор заказа у партнера, обязательный
|
product_id
|
Идентификатор товара на платформе. Если не указан - будет отображен список всех продуктов на сервисе;
|
payment_method_id
|
Идентификатор платежной системы со стороны платформы см. Приложение 1
|
hash
|
Контрольная сумма. Высчитывается как md5(service_id+customer_id+order_id+product_id+ summ+currency+count+payment_method_id+ secret_key),
где “+”- знак конкатенации, “secret_key” - секретный ключ, выдаваемый при регистрации партнера.
Если необязательный параметр не передается, то он не участвует в расчете хеша.
|
Необязательные параметры:
Параметр
|
Описание
|
summ
|
Сумма платежа, обязательный только для товаров с не фиксированной стоимостью
|
currency
|
Валюта, обязательна, в случае если указана сумма. Ожидается трехбуквенный ISO 4217 код валюты
|
count
|
Количество единиц товаров, в случае если товар исчисляемый.
|
Дополнительные параметры обязательные в зависимости от метода оплаты:
Набор параметров может различаться, в зависимости от выбранного метода оплаты, для получения списка необходимых параметров можно использовать интерфейс получения списка необходимых параметров.
Параметр
|
Описание
|
msisdn
|
Обязателен в случае оплаты через QIWI или Мобильную коммерцию - это номер мобильного телефона в международном формате без +
|
В ответ на запрос партнер получит ответ HTTP 200 OK с результатом принятия заявки в теле ответа в формате JSON, с следующими параметрами:
Параметр
|
Описание
|
processing_status
|
Статус принятия платежа
|
error_code
|
В случае неудачи, указывается код ошибки, см. Приложение 2
|
location
|
В случае REDIRECT, указывается URL на который необходимо перенаправить пользователя.
|
transaction_id
|
В случае успеха, номер транзакции на стороне платформы, целое число, до 20 знаков.
|
Поле processing_status может принимать следующие строковые значения:
Значение
|
Описание
|
ACCEPTED
|
Заявка принята, ожидаются действия пользователя по совершению платежа.
|
REDIRECT
|
Для продолжения оформления заявки необходимо направить пользователя на указанный URL
|
DENIED
|
Заявка не принята, причина будет указана в коде ошибки error_code
|
Пример тела успешного ответа:
{
“transaction_id”: “123456”,
“processing_status”: “ACCEPTED”,
“error_code”: “0”
}
|
Пример тела неуспешного ответа:
{
“processing_status”: “DENIED”,
“error_code”: “51”
}
|
Интрейфейс определения оператора абонента по MSISDN
В случаях, когда партнёру необходимо узнать опретора абонента по MSISDN, он может воспользоваться этим интерфейсом.
Для этого, партнёру необходимо послать запрос методом GET с передачей следующих параметров:
Обязательные параметры:
Параметр
|
Описание
|
service_id
|
Идентификатор сервиса партнера, обязательный
|
secret
|
Серретный ключ партнера
|
msisdn
|
Номер мобильного телефона в международном формате без +
|
В ответ на запрос партнер получит ответ HTTP 200 OK с результатом принятия заявки в теле ответа в формате JSON, с следующими параметрами:
Параметр
|
Описание
|
operator_name
|
Алиас оператора латинскими буквами
|
Пример тела успешного ответа:
{
“operator_name”:”beeline”
}
|
В случае неверно заданных параметров, будет выдан ответ HTTP – 400
В случае некорректного secret, будет выдан ответ HTTP – 401
Расшифровка идентификаторов операторов указана в Приложении 3.
Интерфейс получения списка необходимых дополнительных параметров
Если партнер желает на своей стороне отображать форму с вводом дополнительных параметров (email для оплаты через кошелек или MSISDN для оплаты через QIWI/МК), он может запросить список необходимых дополнительных параметров для нужного метода платежа.
Данный интерфейс предназначен для универсализации работы партнера с платформой Флекси, когда при добалвении/изменении платежных методов у Партнера, ему необхоидмо производить минимум изменений на своей платформе.
Для этого, партнёру необходимо послать запрос методом GET с передачей следующих параметров:
Обязательные параметры:
Параметр
|
Описание
|
service_id
|
Идентификатор сервиса партнера, обязательный
|
secret
|
Серретный ключ партнера
|
payment_method_id
|
Идентификатор платежной системы со стороны платформы см. Приложение 1
|
В ответ на запрос партнер получит ответ HTTP 200 OK с результатом принятия заявки в теле ответа в формате JSON, с следующими параметрами:
Параметр
|
Описание
|
params
|
Массив с объектами, представляющих собой описание дополнительного параметра, поля которого:
-
name - имя поля, которое необходимо передавать на платформу Флекси в заявке;
-
desc – Описание поля, которое партнер может показывать абоненту в форме ввода;
-
regexp – регулярное выражение, описывающее формат этого параметра.
|
Пример тела успешного ответа:
{
“params”: [
{
“name”:“msisdn”,
“desc”: ”Номер мобильного телефона”,
“regexp”: “^\d{1,15}$”
}
]
}
|
В случае неверно заданных параметров, будет выдан ответ HTTP – 400
В случае некорректного secret, будет выдан ответ HTTP – 401
Уведомление Партнера о совершенных платежах
После проведения платежа или его неудачи платформа отсылает HTTP GET запрос на URL партнёра для уведомлений, возможно использование SSL при желании партнера.
Запрос отсылаемый партнеру содержит следующие параметры с информацией о транзакции:
Параметр
|
Описание
|
service_id
|
Идентификатор сервиса партнера
|
customer_id
|
Идентификатор пользователя
|
order_id
|
Идентификатор заказа у партнера
|
processing_status
|
Статус обработки транзакции
|
error_сode
|
Код ошибки, если возникла ошибка, см. Приложение 2
|
price
|
Сумма транзакции в валюте поступления, число с 2-мя знаками в дробной части, разделитель целой и дробной части - “.”
|
price_rub
|
Сумма транзакции в рублях, число с 2-мя знаками в дробной части, разделитель целой и дробной части - “.”
|
currency
|
Валюта поступления на счет партнера, ISO 4217
|
share
|
Вознаграждение партнера в валюте платежа
|
share_rub
|
Вознаграждение партнера в рублях
|
transaction_date
|
Дата проведения транзакции на стороне платформы в формате YYYY-MM-DD HH:mm:ss
|
transaction_id
|
Номер транзакции на стороне платформы, целое число, до 20 знаков.
|
product_id
|
Идентификатор продукта
|
hash
|
md5 от конкатенации полей: service_id+transaction_id+customer_id+order_id+ processing_status+price+price_rub+currency+share +share_rub+ transaction_date+payment_method_id+product_id+secret_key
|
payment_method_id
|
Идентификатор способа оплаты см. Приложение 1
|
Поле processing_status может принимать следующие строковые значения:
Значение
|
Описание
|
PROCESSED
|
Транзакция успешно оплачена пользователем
|
FAILED
|
Транзакция не оплачена пользователем, в полях error_code и desc дается в этом случае описание причины ошибки
| Реестр Платежей
Платформа производит регулярное формирование реестров проведенных платежей и отсылает их партнеру на указанный им e-mail.
Формат файла – текстовый файл с разделителями, разделитель полей ‘;’, строк символ переноса строки.
-
REE_NNNNNN_DDMMYY_QQ.csv, где:
-
NNNNNN – Идентификатор партнера на стороне платформы,
-
DDMMYY – дата отчета,
-
QQ – порядковый номер внутри дня, если отчетов несколько.
Файл содержит данные в кодировке UTF-8.
Каждая строка представляет собой отдельный перевод и содержит следующие поля:
Название столбца
|
Описание
|
transaction_id
|
Номер транзакции на стороне платформы, целое число, до 20 знаков.
|
transaction_date
|
Дата и время совершения платежа в формате ‘dd.MM.yyyy HH:mm:ss’
|
price_rub
|
Сумма платежа, два знака в дробной части, разделитель дробной части ‘.’
|
desc
|
Примечание к платежу
|
transaction_daily_id
|
Номер транзакции в течении дня на стороне платформы, целое число, до 20 знаков.
|
order_id
|
Номер счета, указанный партнером при его выставлении
|
Следует заметить, что платформа может добавлять колонки к уже существующим (не нарушая порядок) без предварительного уведомления партнера.
Приложение 1. Список идентификаторов Платежных систем
Идентификатор ПС
|
Название
|
38
|
WebMoney WMR
|
44
|
QIWI
|
45
|
Тестовый(возвращает произвольный статус оплаты, не передается в реестрах)
|
60
|
Мобильная коммерция
|
61
|
Банковские карты VISA / VISA Electron / MasterCard / Maestro
| Приложение 2. Список кодов ошибок
Код ошибки
|
Описание
|
0
|
Ошибки отсутсвуют
|
1
|
Неверное значение параметра hash
|
3
|
Некорректный запрос, отсутствует ряд обязательных параметров.
|
4
|
Внутрення ошибка, необходимо обратиться в техническую поддержку платформы Флекси.
|
5
|
Заявка на платеж не может быть принята
|
51
|
Заявка на платеж не может быть принята из-за некорректного идентификатора пользователя(например некорректный MSISDN при оплате через QIWI/МК)
|
52
|
Данный оператор временно не доступен(при оплате через МК)
|
6
|
Данный метод оплаты невозможно оплачивать без перенаправления пользователя на платежную форму платформы Флекси.
|
7
|
Некорректная сумма платежа
|
71
|
Сумма платежа превышает допустимую сумму
|
72
|
Сумма платежа слишком маленькая
|
Приложение 3. Список идентификаторов операторов сотовой связи
Название
|
Алиас
|
МТС
|
mts
|
БиЛайн
|
beeline
|
МегаФон
|
megafon
|
Utel
|
utel
|
Оператор не известен
|
unknown
|
Достарыңызбен бөлісу: |