Skip to main content

Библиотека для работы с SberPay QR/Плати QR.

Project description

Supported python versions Downloads PyPi Package Version

Асинхронная и синхронная библиотека для работы с SberPay QR/Плати QR.

Асинхронная и синхронная библиотека для работы с SberPay QR/Плати QR.

Позволяет создавать динамический QR и проверять статус платежа.

Обязательно передавайте параметр russian_crt, без него не удастся установить SSL соединение с API Сбера

PEM Сертификат securepayments.sberbank.ru

Если при инициализации класса AsyncSberQR переданы одинаковые tid и id_qr, то будет создан платеж через СБП, иначе через ПлатиQR.

Пример (async)

import os
import asyncio
from SberQR import AsyncSberQR

member_id = '00000105'  # выдается через почту support@ecom.sberbank.ru
tid = '24601234'  # ID  терминала/Точки. Получить в ЛК Сбрербанк бизнес на странице Информация о точке
id_qr = '1000301234'  # Номер наклейки с QR-кодом. Получить в ЛК Сбрербанк бизнес Информация о точке/список оборудования
client_id = '6e7254e2-6de8-4074-b458-b7238689772b'  # получить на api.developer.sber.ru
client_secret = '3a0ea8cb-886c-4efa-ac45-e3d36aaba335'  # получить на api.developer.sber.ru

#
crt_from_pkcs12 = f'{os.getcwd()}/cert.crt'  # Для асинхронной версии требуется распаковать сертификат
key_from_pkcs12 = f'{os.getcwd()}/private.key'  # Для асинхронной версии требуется распаковать приватный ключ
pkcs12_password = 'SomeSecret'  # Пароль от файла сертификат. Получается на api.developer.sber.ru
russian_crt = f'{os.getcwd()}/Cert_CA.pem'  # Сертификат мин.цифры для установления SSL соединения
# Если требуется передайте аргумент redis=
# redis = aioredis.from_url("redis://localhost", decode_responses=True)
# redis = "redis://localhost"
# Redis используется только для временного хранения токена
sber_qr = AsyncSberQR(member_id=member_id, id_qr=tid, tid=tid,
                      client_id=client_id, client_secret=client_secret,
                      crt_file_path=crt_from_pkcs12, key_file_path=key_from_pkcs12,
                      pkcs12_password=pkcs12_password,
                      russian_crt=russian_crt)
positions = [{"position_name": 'Товар ра 10 рублей',
              "position_count": 1,
              "position_sum": 1000,
              "position_description": 'Какой-то товар за 10 рублей'}
             ]
async def creation_qr():
    data = await sber_qr.creation(description=f'Оплата заказа 3', order_sum=1000, order_number="3", positions=positions)
    print(data)
if __name__ == '__main__':
    asyncio.run(creation_qr())

Пример (sync)

import os
from SberQR import SberQR

member_id = '00000105'  # выдается через почту support@ecom.sberbank.ru
tid = '24601234'  # ID  терминала/Точки. Получить в ЛК Сбрербанк бизнес на странице Информация о точке
id_qr = '1000301234'  # Номер наклейки с QR-кодом. Получить в ЛК Сбрербанк бизнес Информация о точке/список оборудования
client_id = '6e7254e2-6de8-4074-b458-b7238689772b'  # получить на api.developer.sber.ru
client_secret = '3a0ea8cb-886c-4efa-ac45-e3d36aaba335'  # получить на api.developer.sber.ru

#
crt_from_pkcs12 = f'{os.getcwd()}/cert.crt'  # Для асинхронной версии требуется распаковать сертификат
key_from_pkcs12 = f'{os.getcwd()}/private.key'  # Для асинхронной версии требуется распаковать приватный ключ
pkcs12_password = 'SomeSecret'  # Пароль от файла сертификат. Получается на api.developer.sber.ru
russian_crt = f'{os.getcwd()}/Cert_CA.pem'  # Сертификат мин.цифры для установления SSL соединения
# Если требуется передайте аргумент redis=
# redis = aioredis.from_url("redis://localhost", decode_responses=True)
# redis = "redis://localhost"
# Redis используется только для временного хранения токена
sber_qr = SberQR(member_id=member_id, id_qr=tid, tid=tid,
                      client_id=client_id, client_secret=client_secret,
                      crt_file_path=crt_from_pkcs12, key_file_path=key_from_pkcs12,
                      pkcs12_password=pkcs12_password,
                      russian_crt=russian_crt)
positions = [{"position_name": 'Товар ра 10 рублей',
              "position_count": 1,
              "position_sum": 1000,
              "position_description": 'Какой-то товар за 10 рублей'}
             ]
def creation_qr():
    data = sber_qr.creation(description=f'Оплата заказа 3', order_sum=1000, order_number="3", positions=positions)
    print(data)
    
if __name__ == '__main__':
    creation_qr()

Для работы потребуется получить от банка следующие параметры

member_id = '00000105'  # выдается через почту support@ecom.sberbank.ru 
tid = '24601234'  # ID  терминала/Точки. Получить в ЛК Сбрербанк бизнес на странице Информация о точке
id_qr = '1000301234'  # Номер наклейки с QR-кодом. Получить в ЛК Сбрербанк бизнес Информация о точке/список оборудования
client_id = '6e7254e2-6de8-4074-b458-b7238689772b'  # получить на api.developer.sber.ru
client_secret = '3a0ea8cb-886c-4efa-ac45-e3d36aaba335'  # получить на api.developer.sber.ru
path_crt_from_pkcs12 = 'cert.crt' # Файл сертификат 'key.p12' Получается на api.developer.sber.ru 
path_key_from_pkcs12 = 'private.key' # Файл сертификат 'key.p12' Получается на api.developer.sber.ru
pkcs12_password = 'SomeSecret'  # Пароль от файла сертификата. Получается на api.developer.sber.ru

Распаковка pkcs12 с помощью OpenSSL

Инструкция от ssl.com - для Windows обратите внимание на Cygwin в инструкции

Откройте командную строку, перейдите в папку, где лежит архив сертификата с расширением .p12. Выполните команду:

openssl pkcs12 -in <название_архива>.p12 -nodes -nocerts -out private.key

Появится запрос пароля. Введите пароль, который вы вводили при создании приложения, нажмите Enter.

Далее аналогично выполните команду:

openssl pkcs12 -in <название_архива>.p12 -clcerts -nokeys -out client_cert.crt

В итоге вы получите приватный ключ в файле private.key и клиентский сертификат в файле client_cert.crt в папке, где лежит архив сертификата.

Ссылки

Для использования требуется аккаунт Сбер Банк бизнес. https://sbi.sberbank.ru:9443/ic/dcb/#/

Далее необходимо Авторизоваться https://api.developer.sber.ru/

Процесс подключения описан в инструкции https://api.developer.sber.ru/product/PlatiQR/doc/v1/QR_API_doc3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SberQR-2.0.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

SberQR-2.0.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file SberQR-2.0.0.tar.gz.

File metadata

  • Download URL: SberQR-2.0.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for SberQR-2.0.0.tar.gz
Algorithm Hash digest
SHA256 58208be2e0abdb092733562b12a77928a22fcc0d8a4aab063b195af0e3a6e945
MD5 d4d9f03104bc6801c0c10d2365592b3d
BLAKE2b-256 9d853ad39beb2e2286eb8a3b340b978ae5a1f88d3eb76456747ffd84fba3c726

See more details on using hashes here.

Provenance

File details

Details for the file SberQR-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: SberQR-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for SberQR-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7aa6dd022331a209851e0da2129305e06b8bd9ebb069697e232641109bd78e95
MD5 7c26a2d401ac5dc15656f445a5644263
BLAKE2b-256 454bb0b7adcd8e1c8f236d6af113f96f456fb4103fc03eaafb114ff2b1d9ca3a

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page