Page tree
Skip to end of metadata
Go to start of metadata

Отличие от обычной схемы работы заключается в том, что платеж инициируется вызовами методов API без вывода дополнительных WEB страниц. Для этого передается дополнительный параметр background cо значением “1”. На данный момент по описанной схеме возможно проведение оплаты по токенам карт, через QIWI и мобильный платеж для операторов Билайн, МТС, Мегафон и ТЕЛЕ2.

Получение списка доступных для сервиса способов оплаты

Для получения списка доступных способов которые могут иницироваться в фоновом режиме необходимо отправить GET запрос на: https://partner.rficb.ru/alba/pay_types
Со следующими параметрами:

Ответ сервиса приходит в виде JSON-строки

  • Ответ с ошибкой: {‘status’: ‘error’, ‘code’=’auth’, ‘message’: ‘неверная подпись’}
  • Положительный ответ: {‘status’: ‘success’, ‘types’: [‘mc’, ‘qiwi’, 'mtsmoney', 'mtsmoney_test']}

где types – доступные для данного сервиса способы оплаты

SDK пример (на GitHub):

  • php
  • python
1
2
3
4
5
6
7
8
from alba_client import AlbaService, AlbaException

    service = AlbaService(SERVICE_ID, 'SERVICE_SECRET')
    try:
        pay_types = service.pay_types()
        # pay_types - список допустимых способов оплаты
    except AlbaException, e:
        print("Произошла ошибка: {}".format(e))
  • java
1
2
3
    AlbaService service = new AlbaService(SERVICE_ID, "SERVICE_SECRET");

    Set<String> paymentTypes = service.paymentTypes();

init_payment

Инициация платежа идет методом отправки формы из кода кнопки плюс параметра background=1 и параметров для аутентификации POST запрос необходимо отправлять на: https://partner.rficb.ru/alba/input/

  • cost – стоимость товара/услуги
  • name – название платежа
  • email – email клиента (для мобильной коммерции параметр не обязательный)
  • order_id – уникальный номер заказа или 0
  • phone_number – номер телефона клиента
  • background – всегда 1
  • type – способ оплаты (‘mc’, ‘qiwi’, 'mtsmoney', 'mtsmoney_test'), должен быть доступен.
  • invoice_data – Данные в формате json для фискального чека (см. API для АТОЛ)

  • test – опциональный параметр для тестирования оплаты с счета телефона или кошельков, для тестирования оплаты по картам используйте тестовые наборы карт. Может принимать значения ok или operator_cancel. При наличии параметра, реальных вызовов провайдеров не осуществляется - сразу формируется успешная оплата (для ok) или отказ провайдера (для operator_cancel). Создаваемая транзакция тестовая и выплат по ней не производится.

Для аутентификации необходимо передать  один из следующих наборов параметров:

  • key – уникальный ключ для сервиса, генерируемый вместе с кнопкой,

или


init_result 

ВАЖНО: результат инициализации означает создание платежной транзакции. Оплата транзакции отложена по времени, результат оплаты необходимо получать обрабатывая нотификации (сокращенная нотификация, расширенная нотификация) от системы РФИ или формировать запрос на получение статуса транзакции.

ВАЖНО: для операций проведения повторного списания по рекуррентам, операция выполняется синхронно. Положительный ответ гарантирует успешное проведение операции, при этом рекомендуется в любом случае обрабатывать нотификации отправляемые от системы РФИ.

Положительный ответ

{‘status’: ‘success’, ‘tid’: <TID>, 'help':"<текст, который описывает процедуру оплаты через мобильную коммерцию или терминал>"}

{‘status’: ‘success’, ‘tid’: <TID>}

Ответ c ошибкой

{‘status’: ‘error’, ‘code’: ‘<type|auth|data|common|unique>’, ‘msg’: ”}

Где message это текстовое описание ошибки, а code – тип:

  • type – даннный тип оплаты не доступен
  • auth – неправильная подпись
  • data – неправильно сформированы данные (формат телефона, email)
  • common – другие ошибки
  • unique - транзакция с таким order_id уже существует

Положительный ответ для шлюза mc:

Положительный ответ для шлюза spg (рекуррентный платеж по картам):

SDK пример:

  • php
  • python

tr_status 

После того как транзакция создана, партнер имеет возможность получить информацию по транзакции отправив POST запрос на https://partner.rficb.ru/alba/details В запросе необходимо передать (версия протокола 2.0):

  • version – “2.0”
  • tid - id транзакции

Либо можно отправить GET запрос по тому же адресу с параметрами (УСТАРЕВШЕЕ):

Ответ c ошибкой:

Где msg это текстовое описание ошибки, а code – тип:

  • auth – неправильная подпись
  • common – другие ошибки

Положительный ответ:

SDK пример:

  • php
  • python
  • java

Информирование партнера об успешной оплате

см. Передача данных от системы Банка

  • No labels