Запуск 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. Передается на сервер без изменений. |
Замечания
- Значение поля
additional_data
будет передано в уведомлении о транзакции. - В случае, если после продажи сотруднику выставлено разрешение на фискализацию транзакции (раздел личного кабинета Фискализация → Сотрудники)
посредством удаленной фискализации, и
additional_data
будет передано в приложение в корректном json-формате, полеcallback_data
уведомления о фискализации будет содержать его значение.
Примеры
URL | Валидность | Комментарий |
---|---|---|
lifepay://?description=Test&amount=350.01¤cy=643 | верный | |
lifepay://?description=Test&amount=35¤cy=643&app_id=08884&customer_phone=75555555555&additional_data=’{“id”:343}’ | верный | |
lifepay://?description=Test&amount=350.001¤cy=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 |