Альфа банк api python

alfacoins-api-python 0.1.3

A Python3.6 wrapper around the ALFACoins APIs.

Description

alfacoins_api_python is a Python3.6 Library for interacting with ALFAcoins API.

alfacoins_api_python provides cryptocurrency payment integration on your website via ALFAcoins.

alfacoins_api_python allows you to integrate payments with the following cryptocurrencies:

  • Bitcoin (BTC)
  • Ethereum (ETH)
  • XRP (XRP)
  • Bitcoin Cash (BCH)
  • Litecoin (LTC)
  • Dash (DASH)

APIs

  • get_fees
  • get_rate
  • get_rates
  • create_order*
  • order_status*
  • bitsend*
  • bitsend_status*
  • refund*
  • statistics*

Building

You need to have Python 3.6+ in order to use this package. Consider using pyenv for virtual Python 3.6 environment.

pip3.6 install -r requirements_dev.txt python3.6 setup.py build

Installation

pip3.6 install alfacoins_api_python

Getting Started

Gateway

You can get an instance of ALFACoins class like this:

For public APIs

Additional information and API documentation is here: ALFAcoins API Reference.

Источник

AlfabankAPI для работы с Альфа-Клиент On-line

Как и у многих, в один прекрасный день появилась идея автоматизировать бизнес процессы в своей организации. Так или иначе автоматизировать можно всё и бесконечно долго, но задача по работе с банком показалась наиболее важной и интересной. Перед началом исследования стоит предъявить требования к необходимому API с помощью которого мы ходим общаться с банком. На первом этапе неплохо было бы установить соединение с банком, получить текущий баланс и список операций по счёту на указанный период.

Поиск готовых решений от банков мало что дал. У многих банков подобное API отсутствует в принципе.

Раз всё так плохо, создадим свой API с блэкджеком и для достижения цели. Так как автор работает с компанией Альфа-Банк, то и API будет на примере данного банка, но очень надеюсь, что после прочтения начнутся открытые разработки и для остальных.

Очевидно, что не имея специальных инструментов для работы с банками, общаться с ними придётся по протоколу https, а значит результат мы будем получать и обрабатывать в виде html. Для этого запаситесь соответствующими библиотеками.
Решение нашей проблемы сводится к двум основным задачам. Первая – это изучить как наш браузер общается с банком, и вторая – повторить увиденное в нашем API. У большинства программистов это не составит большого труда.

Анализ запросов

  1. При загрузке страницы ibank.alfabank.ru/ALFAIBS32 видим, что в ответе содержится jsessionid, который используется в следующем post-запросе.
  2. Второй запрос использует jsessionid, и передаёт команду на загрузку формы авторизации.
    Запрос:
https://ibank.alfabank.ru/ALFAIBS32/ControllerServlet;jsessionid=.

Разработка

Дабы не докучать скучным кодом, остановимся только на построении запросов к серверу для авторизации. В примере не представлен способ получения необходимых данных из html ответов сервера. Стоит отметить, что при авторизации не используются cookies.

private void SetRequestData(HttpWebRequest request, string data) < var encoding = new ASCIIEncoding(); byte[] byte1 = encoding.GetBytes(data); request.ContentLength = data.Length; var stream = request.GetRequestStream(); stream.Write(byte1, 0, byte1.Length); stream.Close(); >public void Connect(string login, string password) < // 1. Get- запрос для получения sessionId1 var url = "https://ibank.alfabank.ru/ALFAIBS32/"; var request = (HttpWebRequest)HttpWebRequest.Create(url); var response = (HttpWebResponse)request.GetResponse(); // Получаем первый jsessionid из ответа // sessionId1 = … // 2. Post- запрос для получения формы авторизации с новым jsessionid var controller = url +"ControllerServlet;jsessionid="; url =string.Format(controller, sessionId1); request = (HttpWebRequest)HttpWebRequest.Create, url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; SetRequestData(request, "command=auth_loginByPasswordPage"); response = (HttpWebResponse)request.GetResponse(); // Получаем из ответа otokey и новый jsessionid // var otokey = … // sessionId2 = … // 3. Заключительный запрос для завершения авторизации url =string.Format(controller, sessionId2); request = (HttpWebRequest)HttpWebRequest.Create, url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; var postData = string.Format( "command=auth_loginByPassword&username=&password " + "&null_div_expanded=false&OTOKey=", login, password, otokey); SetRequestData(request, postData); response = (HttpWebResponse)request.GetResponse(); // Profit! > 

Результат

class Program < static void Main(string[] args) < var api = new AlfabankAPI.AlfabankAPI(); api.Connect("k000000", "qwerty"); Console.WriteLine("Balance: ", api.GetBalance()); var date1 = new DateTime(2013, 9, 1); var date2 = DateTime.Now; var account = "40700000000000000000"; var operations = api.GetMovementOnAccount(account , date1, date2); foreach (var o in operations) Console.WriteLine("  ", o.Number, o.DateSend, o.Amount); Console.ReadKey(); > > 

Заключение

Надеюсь эта статья вдохновит на создание более качественного и открытого API для различных банков.
Github: AlfabankAPI
Всем пятницы.

Источник

AIOAlfacrm

История выпусков Уведомления о выпусках | Лента RSS

Загрузка файлов

Загрузите файл для вашей платформы. Если вы не уверены, какой выбрать, узнайте больше об установке пакетов.

Source Distribution

Uploaded 23 нояб. 2021 г. source

Built Distribution

Uploaded 23 нояб. 2021 г. py3

Хеши для aioalfacrm-0.3.2.tar.gz

Хеши для aioalfacrm-0.3.2.tar.gz
Алгоритм Хеш-дайджест
SHA256 5075c91d8020fb4c5dfa97929a4ad5af958555d35fcab0bdf5af112d595005e0 Копировать
MD5 9d672416b3a92fe8aaa31fa8922d238a Копировать
BLAKE2b-256 8c9b94e8819f27a1cfd6eaf83d06ef960f5152e2da57cf8a2737e357c5c51ccb Копировать

Хеши для aioalfacrm-0.3.2-py3-none-any.whl

Хеши для aioalfacrm-0.3.2-py3-none-any.whl
Алгоритм Хеш-дайджест
SHA256 985d49d3c09923cc2e018ff1d862d0ed5a9c8d460295909a80940684ad2aa0bb Копировать
MD5 684aeb66abc3e05f0c780d3a70a41ec4 Копировать
BLAKE2b-256 3d1a9113be592a6aa27082296301cef80abe61b260b2261780c295d650bb4171 Копировать

Помощь

О PyPI

Внесение вклада в PyPI

Использование PyPI

Разработано и поддерживается сообществом Python’а для сообщества Python’а.
Пожертвуйте сегодня!

PyPI», «Python Package Index» и логотипы блоков являются зарегистрированными товарными знаками Python Software Foundation.

Источник

Советы по использованию библиотеки Alfa Cgi Api (py.alfa)

Alfa Cgi Api — это Python-библиотека для работы с API банка Альфа-Банк. Она позволяет выполнять различные операции с банковскими счетами, картами, переводами, запросами на платежи и т.д.

Установка

Установить библиотеку можно с помощью команды:

Пример использования

Для начала работы с библиотекой необходимо получить токен для доступа к API банка. Это можно сделать на портале для разработчиков банка Альфа-Банк.

from alfacgiapi import AlfaClient client = AlfaClient('токен_для_доступа_к_API') accounts = client.get_accounts_list() for account in accounts: print(account['product'], account['account']) 

Данный пример демонстрирует, как получить список всех банковских счетов, доступных пользователю.

Советы по использованию

  • Обратите внимание, что некоторые операции с API могут быть платными. Перед использованием API обязательно ознакомьтесь с ценами на услуги банка Альфа-Банк.
  • Для работы с библиотекой необходимо иметь токен доступа к API банка Альфа-Банк. Получить его можно на портале для разработчиков банка.
  • Все запросы к API выполняются асинхронно. Это позволяет избежать блокировки при выполнении длительных запросов.
  • Библиотека поддерживает множество операций с банковскими счетами, картами и переводами. Изучите документацию и выберите наиболее подходящие для вашего проекта функции.

Заключение

Библиотека Alfa Cgi Api (py.alfa) позволяет управлять банковскими счетами, картами, переводами и другими операциями в банке Альфа-Банк. Она предоставляет широкие возможности для интеграции банковских операций в проекты на Python. Используйте библиотеку в своих проектах и экономьте время на выполнении операций с банком.

Источник

Альфа Банк API ошибка сертификата SSL

введите сюда описание изображения

Подскажите куда копать, или как исправить ошибку. В песочнице Банка получаю данное сообщение при попытке сделать запрос

При переходе по данной ссылке браузер:

Firefox поддерживает протокол TLS 1.2 и выше. Этот веб-сайт может не поддерживать данный протокол. Для установления соединения можно включить TLS 1.0 и TLS 1.1.

и предлагает включить TLS 1.0 и TLS 1.1. => Результат не удовлетворительный.(Данные манипуляции производились на MacOS и Windows). Так при запросе через POSTMAN или пример из песочницы результата никакого не принесло.

ssl.SSLError: [SSL: UNKNOWN_CIPHER_RETURNED] unknown cipher returned (_ssl.c:1123)

Ответы (1 шт):

Там целый букет проблем с сертификатами.

  1. Сертификат, который предъявляет сервер Альфа-банка, использует алгоритм цифровой подписи 1.2.643.7.1.1.3.2: ГОСТ Р 34.10-2012.
  2. Сервер требует от клиента предъявить сертификат с ключом цифровой подписи тип 22 (ГОСТ Р 34.10-2001), который был выпущен либо удостоверяющим центром «Минкомсвязь России» , либо удостоверяющим центром «CRYPTO-PRO LLC»

Поддержу гостовских шифров и сертификатов исключили из Openssl где-то на границе перехода от 1.0.x к 1.1.0. Вам необходима кастомная реализация Openssl от отечественных производителей. Посмотрите здесь: https://github.com/gost-engine/engine и здесь: https://www.altlinux.org/OSS-GOST-Crypto

Если вам интересно, как я всё это узнал, то ответ прост: посмотрел в Wireshark-е.

В консоли запустил команду openssl s_client -connect apiwsgdev.alfabank.ru:443 , а сканер пакетов предоставил расшифровку всех полей сообщения ServerHello

TLSv1 Record Layer: Handshake Protocol: Multiple Handshake Messages Content Type: Handshake (22) Version: TLS 1.0 (0x0301) Length: 4708 Handshake Protocol: Server Hello Handshake Protocol: Certificate Handshake Type: Certificate (11) Length: 4178 Certificates Length: 4175 Certificates (4175 bytes) Certificate Length: 2213 Certificate: … (id-at-commonName=АО "АЛЬФА-БАНК",id-at-organizationName=АО "АЛЬФА-БАНК",id-at-localityName=Москва,id-at-stateOrProvinceNa signedCertificate version: v3 (2) serialNumber: 0x01162fa60039ac9e964fb1d1f1ff76174a signature (iso.2.643.7.1.1.3.2) Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2) issuer: rdnSequence (0) rdnSequence: 9 items (id-at-commonName=ООО "КРИПТО-ПРО",id-at-organizationName=ООО "КРИПТО-ПРО",id-at-streetAddress=ул. Ибрагимова, д. 31, офи�,id-at-localityName=г. Москва,id-at-stateOrProvin validity subject: rdnSequence (0) subjectPublicKeyInfo extensions: 13 items algorithmIdentifier (iso.2.643.7.1.1.3.2) Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2) Padding: 0 encrypted: … Certificate Length: 1956 Certificate: … (id-at-commonName=ООО "КРИПТО-ПРО",id-at-organizationName=ООО "КРИПТО-ПРО",id-at-streetAddress=ул. Ибрагимова, д. signedCertificate version: v3 (2) serialNumber: 0x1770387d000000000405 signature (iso.2.643.7.1.1.3.2) Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2) issuer: rdnSequence (0) validity subject: rdnSequence (0) subjectPublicKeyInfo extensions: 11 items algorithmIdentifier (iso.2.643.7.1.1.3.2) Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2) Padding: 0 encrypted: … Handshake Protocol: Certificate Request Handshake Type: Certificate Request (13) Length: 433 Certificate types count: 1 Certificate types (1 type) Certificate type: GOST R 34.10-2001 (22) Distinguished Names (429 bytes) Distinguished Name: (id-at-commonName=Минкомсвязь России,iso.2.643.3.131.1.1=007710474375,iso.2.643.100.1=1047702026701,id-at-organizationName=Минкомсвязь России,id-at-streetAddress=улица Тверск Distinguished Name: (id-at-commonName=CRYPTO-PRO Test Center 2,id-at-organizationName=CRYPTO-PRO LLC,id-at-localityName=Moscow,id-at-countryName=RU,pkcs-9-at-emailAddress=[email protected]) Handshake Protocol: Server Hello Done 

Источник

Читайте также:  Python проверить наличие директории
Оцените статью