Init - Создание платежной сессии
Выполняется с помощью команды Init.
Метод используется в случае, если форма ввода данных банковской карты находится на стороне theMAP. При положительном результате вызова метода возвращается уникальный идентификатор, который позволяет в дальнейшем вызвать страницу оплаты, находящуюся на стороне theMAP, и перенаправить на нее пользователя для ввода данных карты.
При получении идентификатора сессии возможно указание цели использования платежной формы - для блокировки средств на карте или для сохранения карты в хранилище theMAP для последующих списаний. В случае сохранения карты последующие списания могут производиться как с вводом CVV2/CVC2, так и безакцептно – без ввода каких-либо данных и участия держателя карты. Это могут быть рекуррентные списания или классические транзакции без ввода CVV2/CVC2. В последнем случае возможны отказы из-за ограничений эмитента в связи с необходимостью применения технологии 3-D Secure.
Страница оплаты может быть оформлена в дизайне Продавца и не является уникальной (Продавец может иметь несколько страниц ввода данных для разных случаев).
Название |
Описание |
Формат |
eCom |
AP |
GP |
SBP |
key |
Идентификатор Продавца. Выдается с параметрами тестового/боевого доступа |
Строка |
|
|
|
|
merchant_order_id |
Идентификатор платежа в системе Продавца |
Строка (максимум 50 символов) |
|
|
|
|
amount |
Сумма блокировки в минимальных единицах валюты (копейках) |
Целое число |
|
|
|
|
add_card |
Параметр, задающий необходимость сохранения карты после оплаты. Используется вместе с параметром "type":"Pay" . Значение по умолчанию false - карта не сохраняется |
true/false |
|
|
|
|
type |
Тип создаваемой сессии.
Pay - платежная сессияAdd - сессия для сохранения карты
|
Строка: "Pay"/"Add" |
|
|
|
|
payment_type |
Тип оплаты.
OneStep - одностадийная оплата. В случае одностадийной операции, в результате успеха деньги будут списаны с карты пользователяTwoStep - двухстадийная оплата
|
Строка: "OneStep"/"TwoStep" |
|
|
|
|
action |
Дополнительное действие с заблокированной суммой.
Unblock - разблокировка. Доступно только для TwoStep
|
Строка |
|
|
|
|
recurrent |
Необходимо использовать в случае, если сохраняемая карта будет использоваться для рекуррентных списаний. Возможность использования необходимо уточнить дополнительно у support@mapcard.pro |
true/false |
|
|
|
|
lifetime |
Срок действия сессии (в секундах), по истечении которого оплата по данной сессии будет невозможна. Если не передан, время жизни сессии устанавливается равным одной неделе |
Целое число |
|
|
|
|
card_uid |
Идентификатор карты theMAP. Используется для платежа по сохраненной карте |
Строка |
|
|
|
|
credential |
|
Объект |
|
|
|
|
├─ login |
Логин держателя карты, зарегистрированного в системе Продавца. Используются только в случае, если карта сохранена к конкретному пользователю |
Строка (максимум 50 символов) |
|
|
|
|
├─ password |
Пароль держателя карты, зарегистрированного в системе Продавца. Используются только в случае, если карта сохранена к конкретному пользователю |
Строка (максимум 50 символов) |
|
|
|
|
├─ merchant_name |
Наименование продавца. Используются только в случае, если карта сохранена за Мерчантом |
Строка (максимум 50 символов) |
|
|
|
|
├─ merchant_password |
Пароль Мерчанта для совершения операций. Используются только в случае, если карта сохранена за Мерчантом |
Строка (максимум 50 символов) |
|
|
|
|
├─ terminal_password |
Пароль терминала для совершения операций. |
Строка (максимум 50 символов) |
|
|
|
|
custom_params |
Дополнительные параметры платежа, для отображения на шаблоне и для составления адреса возврата пользователя в случае, если он параметризован.
Перечень возможных параметров:
Email - адрес электронной почты клиента для отправки фискального чекаsuccessUrl - адрес для перенаправления Пользователя со страницы оплаты в случае успехаfailUrl - адрес для перенаправления Пользователя со страницы оплаты в случае неуспехаDescription - дополнительное описание заказа для отображения на форме оплатыPayButtonCustomText - текст для отражения на кнопке для инициирования оплаты на форме.
Возможность использования данных параметров необходимо уточнить у support@mapcard.pro
|
Объект формата {"param1":"test", "param2":"test"...} |
|
|
|
|
split |
Используется для разделение суммы произведенного списания на составные части для последующих расчетов с контрагентами. Общая сумма всех составных частей должна соответствовать amount |
Массив |
|
|
|
|
├─ split_terminal_id 1 |
Номер терминала для проведения операции |
Число |
|
|
|
|
├─ amount 1 |
Сумма разделения |
Число |
|
|
|
|
├─ purpose 1 |
Описание |
Строка |
|
|
|
|
├─ fee 1 |
Размер комиссии |
Число |
|
|
|
|
Для использования функционала фз-54 необходимо прописать дополнительные параметры в запрос.
1 При передаче split
параметр обязательный
Название |
Описание |
Формат |
eCom |
AP |
GP |
SBP |
Key |
Идентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступа |
Строка |
|
|
|
|
OrderId |
Идентификатор платежа в системе Продавца |
Строка (максимум 50 символов) |
|
|
|
|
Amount |
Сумма блокировки в минимальных единицах валюты (копейках) |
Целое число |
|
|
|
|
AddCard |
Параметр, задающий необходимость сохранения карты после оплаты. Используется вместе с параметром Type=Pay . Значение параметра по умолчанию «False». «True» — карта сохраняется. «False» — карта не сохраняется |
True/False |
|
|
|
|
Type |
Тип создаваемой сессии.
Pay - платежная сессияAdd - сессия для сохранения карты
|
Строка: "Pay"/"Add" |
|
|
|
|
PaymentType |
Тип оплаты.
OneStep - одностадийная оплата. В случае одностадийной операции, в результате успеха деньги будут списаны с карты пользователяTwoStep - двухстадийная оплата
|
Строка: "OneStep"/"TwoStep" |
|
|
|
|
Action |
Дополнительное действие с заблокированной суммой.
Unblock - разблокировка. Доступно только для TwoStep
|
Строка |
|
|
|
|
Recurrent |
Необходимо использовать в случае, если сохраняемая карта будет использоваться для рекуррентных списаний. Возможность использования необходимо уточнить дополнительно у support@mapcard.pro |
true/false |
|
|
|
|
Lifetime |
Срок действия сессии (в секундах) , по истечении которого оплата по данной сессии будет невозможна. Если не передан, время жизни сессии устанавливается равным одной неделе |
Целое число |
|
|
|
|
CardUId |
Идентификатор карты theMAP. Используется для платежа по сохраненной карте |
Строка |
|
|
|
|
CustomParams |
Дополнительные параметры платежа, для отображения на шаблоне и для составления адреса возврата пользователя в случае, если он параметризован.
Перечень возможных параметров:
Email - адрес электронной почты клиента для отправки фискального чекаsuccessUrl - адрес для перенаправления Пользователя со страницы оплаты в случае успехаfailUrl - адрес для перенаправления Пользователя со страницы оплаты в случае неуспехаDescription - дополнительное описание заказа для отображения на форме оплатыPayButtonCustomText - текст для отражения на кнопке для инициирования оплаты на форме.
Возможность использования данных параметров необходимо уточнить у support@mapcard.pro
|
Cтрока, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно) |
|
|
|
|
UserLogin |
Логин держателя карты, зарегистрированного в системе Продавца. Используются только в случае, если карта сохранена к конкретному пользователю |
Строка (максимум 50 символов) |
|
|
|
|
UserPassword |
Пароль держателя карты, зарегистрированного в системе Продавца. Используются только в случае, если карта сохранена к конкретному пользователю |
Строка (максимум 50 символов |
|
|
|
|
Merchant |
Наименование продавца. Используются только в случае, если карта сохранена за Мерчантом |
Строка (максимум 50 символов |
|
|
|
|
MerchantPassword |
Пароль Мерчанта для совершения операций. Используются только в случае, если карта сохранена за Мерчантом |
Строка (максимум 50 символов |
|
|
|
|
Password |
Пароль терминала. Выдается Продавцу с параметрами тестового/боевого доступа |
Строка (максимум 50 символов |
|
|
|
|
Split |
Используется для разделение суммы произведенного списания на составные части для последующих расчетов с контрагентами |
Строка, содержащая группы пар ключ-значение, где группы содержатся в фигурных скобках {}, пары ключ-значение разделены символом «,» (запятая). Ключ и значение разделены символом «:» (двоеточие). Строка обособляется прямоугольными скобками «[]». Параметры ключей и значений выдаются Продавцу с параметрами тестового/боевого доступа. Общая сумма всех составных частей должна соответствовать Amount |
|
|
|
|
├─ split_terminal_id 3 |
Номер терминала для проведения операции |
Число |
|
|
|
|
├─ amount 3 |
Сумма разделения |
Число |
|
|
|
|
├─ purpose 3 |
Описание |
Строка |
|
|
|
|
├─ fee 3 |
Размер комиссии |
Число |
|
|
|
|
Для использования функционала фз-54 необходимо прописать дополнительные параметры в запрос.
1 При передаче split
параметр обязательный
Пример передачи Split
:
"Split": [{"split_terminal_id": 1,"amount": 150,"purpose": "Test1","fee": 10},{"split_terminal_id": 2,"amount": 150,"purpose": "Test2","fee": 10}]
Content-Type: application/json
https:{domain}/Init
{
"key": "TestTerminal",
"merchant_order_id": "TestOrder123",
"amount": 300,
"add_card": true,
"type": "pay",
"payment_type": "OneStep",
"lifetime": 10000,
"credential": {
"login": "",
"password": "",
"merchant_name": "",
"merchant_password": "",
"terminal_password": "123"
},
"custom_params_raw":"successUrl=https:mapcard.pro;failUrl=https:mapisacard.com;Email=user@example.com;PayButtonCustomText=Оформить товар",
"card_uid": "",
"action": "",
"recurrent": true
}
Пример реализации запроса в программном коде:
curl -X POST \
https:https:{domain}/Init \
-H 'Content-Type: application/json' \
-d '{"key": "TestTerminal","merchant_order_id": "TestOrder123","amount": 300,"add_card": true,"type": "pay","payment_type": "OneStep","lifetime": 10000,"credential": {"login": "","password": "","merchant_name": "","merchant_password": "","terminal_password": "123"},"custom_params_raw":"successUrl=https:mapcard.pro;failUrl=https:mapisacard.com;Email=user@example.com;PayButtonCustomText=Оформить товар","card_uid": "","action": "","recurrent": true}'
Пример запроса POST:
Content-Type: application/x-www-form-urlencoded
https:{domain}/Init
Key:TestTerminal
Password:123
Amount:300
OrderId:TestOrder123
AddCard:True
Type:Pay
PaymentType:TwoStep
CustomParams:successUrl=https:mapcard.pro;failUrl=https:mapisacard.com;Email=user@example.com;PayButtonCustomText=Оформить подписку за 1 руб.
Пример реализации запроса в программном коде:
curl -X POST \
https:https:{domain}/Init \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'Key=TestTerminal&Amount=300&OrderId=TestOrder123&CustomParams=CustomParams%3AsuccessUrl%3Dhttps%3A%2F%2Fmapcard.pro %3BfailUrl%3Dhttps%3A%2F%2Fmapisacard.com%3BEmail%3Duser%40example.com%3BPayButtonCustomText%3D%D0%9E%D1%84%D0% BE%D1%80%D0%BC%D0%B8%D1%82%D1%8C%20%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D1%83%20%D0%B7 %D0%B0%201%20%D1%80%D1%83%D0%B1.'
Название |
Описание |
Формат |
Обязательный1 |
Success |
Флаг успешности операции |
true/false |
|
OrderId |
Идентификатор платежа в системе Продавца |
Соответствует переданному в запросе |
|
Amount |
Заблокированная сумма |
Соответствует переданному в запросе |
2 |
Type |
pay/add |
Соответствует переданному в запросе |
|
ErrCode |
Описание ошибки |
см. коды ошибок |
3 |
ErrMessage |
Дополнительное описание ошибки. Передается пустой, если «Success=true» |
Строка |
|
SessionGUID |
Уникальный идентификатор сессии |
Строка |
|
1 Требования обязательности параметров одинаковы для каналов оплаты: eCom
, AP
, GP
2 Передаётся, если в ответе Success=true
3 Передаётся, если в ответе Success=false
Пример ответа на успешный запрос:
{
"Success": true,
"OrderId": "TestOrder123",
"Amount": 300,
"ErrCode": ""
"Type": "pay"
"SessionGUID": "1ILZMU42Zs8YivEsYXOA67ijRYs"
}
Пример ответа на не успешный запрос:
{
"Success": false,
"ErrCode": "WRONG_PARAMS"
}
В зависимости от бизнес-сценария, карта может быть сохранена:
- с привязкой к Логину Пользователя
- с привязкой к Терминалу
- с привязкой к Мерчанту
В зависимости от того, за кем сохраняется карта, необходимо передавать различные параметры в запросе сохранения карты, запросе списка сохраненных карт, и блокировки средств на карте.
Стандартный кейс сохранения карты на стороне theMAP - с привязкой к Логину Пользователя.
В случае сохранения карты за Терминалом или за Мерчантом, соответсвие сохраненных карт с Пользователями производится на стороне Мерчанта. В ответе на запрос списка сохраненных карт в этом случае будет содержаться весь массив сохраненных карт.
Важно! Если при сохранении карты не будут переданы параметры наименование и пароль Продавца, или Логин и пароль Держателя, то карта будет сохранена за терминалом. В этом случае, оплата по сохраненной карте с другого терминала (к примеру - без 3DS), будет невозможна.