Skip to content

RFIBANK/alba-client-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Библиотека для работы c Alba

Библиотека содержит два базовых класса AlbaService и AlbaCallback предназначенных для наследования.

AlbaService - сервис в Alba. Позволяет получить список доступных способов оплаты, инициировать транзакцию, получать информацию о ней. Необходимо создать по экземпляру на каждый существующий сервис.

AlbaCallback - обработчик для обратного вызова от Alba. Проверяет подпись и вызывает соответствующий параметру "command" метод.

В процессе работы может сработать исключение AlbaException.

Пример использования для инициации транзакции:

   from alba_client import AlbaService, AlbaException

   service = AlbaService(<service-id>, '<service-secret>')
   try:
       response = service.init_payment('mc', 10, 'Test', 'test@example.com', '71111111111')
   except AlbaException, e:
       print e

Проверка, требуется ли 3-D secure:

   card3ds = response.get('3ds')
   if card3ds:
       # Требуется 3-D secure

Если 3-D secure требуется, то необходимо сделать POST запрос на адрес card3ds['ACSUrl'] с параметрами:

   PaReq - с значением card3ds['PaReq']
   MD - с значением card3ds['MD']
   TermUrl - URL обработчика, на вашем сайте. На него будет возвращён пользователь после прохождения 
    3DS авторизации на сайте банка-эмитента карты. Этот URL нужно сформировать так, 
    чтобы в нём передавалась информация о транзакции: рекомендуется передавать service_id, tid и order_id 
    (если транзакция создана с ним).

Пример использования для обратного вызова:

   from alba_client import AlbaCallback

   class MyAlbaCallback(AlbaCallback):
       def callback_success(self, data):
           # фиксирование успешной транзакции

   service1 = AlbaService(<service1-id>, '<service1-secret>')
   service2 = AlbaService(<service2-id>, '<service2-secret>')
   callback = MyAlbaCallback([service1, service2])
   callback.handle(<словарь-c-POST-данными>)