Запуск Lifepay из стороннего приложения

LifePay позволяет запустить собственное приложение для оплаты заказа из стороннего приложения.

Данный функционал может быть полезен, если заказы ведутся в собственном приложении курьера, а оплату необходимо провести через Lifepay. Приложение Lifepay оповещает запустившее его приложение о факте успешной оплаты и передаёт данные по оплате, что позволяет закрыть заказ в курьерском приложении.

Передача данных осуществляется открытием URL со схемой lifepay:// из браузера, либо нативного приложения Android.

Параметры

Параметры передаются аналогично GET-запросу, при этом значения должны быть URL-encoded

Описание полей

Название Значение Обязательность Требования к значению, комментарии
description Описание обязательно Количество символов: от 1 до 255 включительно.
amount Сумма обязательно Число – целое или вещественное (не более двух знаков после запятой).
currency Код валюты обязательно Проверка, входит ли код валюты в список поддерживаемых валют (на данном этапе поддерживается только рубль, код = 643). Код валюты - числовой из ISO 4217.
app_id Идентификатор приложения опционально Идентификатор приложения, из которого делается вызов. Целое число (от 5 до 15 знаков).
customer_phone Мобильный телефон клиента опционально В международном формате, без форматирования (712312345678). Валидный, согласно библиотеке Google LibPhoneNumber.
customer_email E-mail клиента опционально Длина ≤ 64. Проверяется регулярным выражением
[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}.
additional_data
замечание
Данные для передачи обратно в приложение и межсерверной интеграции опционально Длина ≤ 1024. Передается на сервер без изменений.

Замечания

  1. Значение поля additional_data будет передано в уведомлении о транзакции.
  2. В случае, если после продажи сотруднику выставлено разрешение на фискализацию транзакции (раздел личного кабинета Фискализация → Сотрудники) посредством удаленной фискализации, и additional_data будет передано в приложение в корректном json-формате, поле callback_data уведомления о фискализации будет содержать его значение.

Примеры

URL Валидность Комментарий
lifepay://?description=Test&amount=350.01&currency=643 верный
lifepay://?description=Test&amount=35&currency=643&app_id=08884&customer_phone=75555555555&additional_data=’{“id”:343}’ верный
lifepay://?description=Test&amount=350.001&currency=643 неверный 3 знака в дробной части
lifepay://?description=Test&amount=350.001 неверный Не передан код валюты

Реализация обратного перехода

Android

В файл AndroidManifest.xml нужно добавить (в ту активити, в которую будет осуществляться переход):

<intent-filter>
    <data android:scheme="lifepay12345" />
    <action android:name="com.lifepay.pay" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

Где 12345 необходимо заменить на ID вашего приложения.

Параметры при обратном переходе

Параметры передаются аналогично GET-запросу, при этом сами значения - URL-encoded

Название Значение В каком случае передается Пример, комментарии
approval Код авторизации Только при оплате картой 30f9d
pan Замаскированный номер карты Только при оплате картой 4627838113
Выдаются первые 6 и последние 4 цифры PAN (4627 83** **** 8113)
additional_data Данные для передачи обратно в приложение и межсерверной интеграции Только если были переданы в приложение '{"id":343}'
created Дата и время транзакции Всегда 1373354378
Время в формате Unix/POSIX
number Номер транзакции Всегда 13201319820070
description Описание Всегда Order+%233
amount Сумма Всегда 300.01
currency Код валюты Всегда 643