4.1. mPOS API

Введение

mPOS - это устройство, способное считывать данные карты с пластиковых карт (например, треки магнитной полосы) или других устройств и передавать эти данные в SBC mPOS API в зашифрованном виде.
mPOS API (MAPI) поддерживает транзакции Sale и Preauth с запросами статуса и обратными вызовами для обработки статуса транзакции.
В зависимости от конкретного эквайрингового решения может потребоваться реализация регулярной процедуры Close Day для клиринга банковских платежей через API команду /api/v2/close-day/. Свяжитесь с менеджером поддержки для уточнения деталей.

Сценарий интеграции мобильного приложения

Команда SBC создаёт выделенную учётную запись в sandbox-среде и предоставляет интегратору тестовые ENDPOINTID, merchant_control_key, а также тестовые mPOS-устройства с предустановленным ключом шифрования для обработки тестовых транзакций. mPOS-устройства (каждое имеет серийный номер) передаются интегратору вместе с SDK для коммуникации (см. mPOS SDK для iOS и mPOS SDK для Android и Java). Команда интегратора реализует сценарии транзакций Sale и/или Preauth и взаимодействие между мобильным приложением и mPOS в соответствии со своими потребностями.

Общий сценарий оплаты

skinparam roundcorner 20
skinparam sequenceArrowThickness 1
skinparam maxmessagesize 1200
skinparam sequenceParticipant underline
actor Payer
participant "Connecting Party" as A
participant SBC as B
autonumber
Payer -> A: Checkout
activate A
A -> B: /mapi/v1/sale/
activate B
B --> A: Order ID
B -> B: Process\nSale
group Get Final Status
== Receive Connecting Party Callback ==
A <- B: Callback with Final Status
A --> B: HTTP 200
deactivate B
== Order Status Request ==
A -> B: Get Status by Order ID
activate B
B --> A: Final Status
deactivate B
end
A --> Payer: Show result
deactivate Payer
deactivate A

(2) Для реализации запроса sale см. /mapi/v1/sale/.
(5) Для реализации обратного вызова с обработкой финального статуса см. Обратный вызов Присоединяющейся Стороны.
(7) Для реализации запроса статуса заказа см. /api/v2/status/. Статус следует запрашивать несколько раз с интервалом 3-5 секунд, пока в ответе не будет получен финальный статус.

Сценарий Preauth

skinparam roundcorner 20
skinparam sequenceArrowThickness 1
skinparam maxmessagesize 1200
skinparam sequenceParticipant underline
actor Payer
participant "Connecting Party" as A
participant SBC as B
autonumber
Payer -> A: Checkout
activate A
A -> B: /mapi/v1/preauth/
activate B
B --> A: Order ID
B -> B: Process\nPreauth
group Get Final Status
== Receive Connecting Party Callback ==
A <- B: Callback with Final Status
A --> B: HTTP 200
deactivate B
== Order Status Request ==
A -> B: Get Status by Order ID
activate B
B --> A: Final Status
deactivate B
end
A --> Payer: Show result
deactivate Payer
deactivate A

(2) Для реализации запроса preauth см. /mapi/v1/preauth/.
(5) Для реализации обратного вызова с обработкой финального статуса см. Обратный вызов Присоединяющейся Стороны.
(7) Для реализации запроса статуса заказа см. /api/v2/status/. Статус следует запрашивать несколько раз с интервалом 3-5 секунд, пока в ответе не будет получен финальный статус.