- alfacoins-api-python 0.1.3
- Description
- APIs
- Building
- Installation
- Getting Started
- Gateway
- For public APIs
- AlfabankAPI для работы с Альфа-Клиент On-line
- Анализ запросов
- Разработка
- Результат
- Заключение
- AIOAlfacrm
- История выпусков Уведомления о выпусках | Лента RSS
- Загрузка файлов
- Source Distribution
- Built Distribution
- Хеши для aioalfacrm-0.3.2.tar.gz
- Хеши для aioalfacrm-0.3.2-py3-none-any.whl
- Помощь
- О PyPI
- Внесение вклада в PyPI
- Использование PyPI
- Советы по использованию библиотеки Alfa Cgi Api (py.alfa)
- Установка
- Пример использования
- Советы по использованию
- Заключение
- Альфа Банк API ошибка сертификата SSL
- Ответы (1 шт):
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. У большинства программистов это не составит большого труда.
Анализ запросов
- При загрузке страницы ibank.alfabank.ru/ALFAIBS32 видим, что в ответе содержится jsessionid, который используется в следующем post-запросе.
- Второй запрос использует 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
Алгоритм | Хеш-дайджест | |
---|---|---|
SHA256 | 5075c91d8020fb4c5dfa97929a4ad5af958555d35fcab0bdf5af112d595005e0 | Копировать |
MD5 | 9d672416b3a92fe8aaa31fa8922d238a | Копировать |
BLAKE2b-256 | 8c9b94e8819f27a1cfd6eaf83d06ef960f5152e2da57cf8a2737e357c5c51ccb | Копировать |
Хеши для 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.2.643.7.1.1.3.2: ГОСТ Р 34.10-2012.
- Сервер требует от клиента предъявить сертификат с ключом цифровой подписи тип 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