Skip to main content

Official anore payments SDK for Python — accept SBP, cards and crypto payments

Project description

anore — Python SDK

Официальный SDK для приёма платежей через anore. Без зависимостей, только stdlib, Python 3.8+.

Структура

python/
├── pyproject.toml
└── anore/
    ├── __init__.py     публичный экспорт
    ├── client.py       AnoreClient — создание платежа, статус
    ├── _transport.py   HTTP с ретраями/бэкоффом
    ├── webhooks.py     verify_webhook / parse_webhook
    ├── models.py       Payment, WebhookEvent
    └── errors.py       иерархия ошибок

Установка

pip install . из этой папки, либо скопируйте папку anore/ в проект.

from anore import AnoreClient, parse_webhook

Быстрый старт

anore = AnoreClient(api_key="an_live_xxxxxxxxxxxxxxxx")

# 1. создать счёт
payment = anore.create_payment(
    amount=1500,
    description="Подписка Pro",
    order_id="order_42",
)
print(payment.payment_url)   # отправьте клиента на форму оплаты

# 2. проверить статус
status = anore.get_payment(payment.id)
print(status.status, status.paid)   # 'paid', True

Проверка вебхука

При оплате anore шлёт POST на ваш URL с заголовком Anore-Signature. Проверяйте подпись по сырому телу запроса (не распарсенному JSON):

# Flask
from flask import Flask, request, abort
from anore import parse_webhook, SignatureError
import os

app = Flask(__name__)

@app.post("/webhook")
def webhook():
    raw = request.get_data()  # сырые байты, не request.json
    sig = request.headers.get("Anore-Signature", "")
    try:
        event = parse_webhook(raw, sig, os.environ["ANORE_WEBHOOK_SECRET"])
    except SignatureError:
        abort(403)
    if event.is_succeeded:
        ...  # отгрузить заказ event.id / event.order_id
    return {"ok": True}

Обработка ошибок

from anore import AnoreClient, ValidationError, AuthenticationError, APIConnectionError

try:
    anore.create_payment(amount=1500, description="Заказ")
except ValidationError:      # 400 — кривой запрос
    ...
except AuthenticationError:  # 401 — неверный ключ
    ...
except APIConnectionError:   # сеть недоступна
    ...

Справка

API Описание
AnoreClient(api_key, secret=None, base_url=..., timeout=30, max_retries=2) клиент; secret подписывает исходящие запросы
create_payment(amount, description, order_id=None, shop_id=None) создать счёт → Payment
get_payment(id) статус → Payment (.status, .paid)
verify_webhook(raw_body, signature, secret) проверка подписи → bool
parse_webhook(raw_body, signature, secret) проверка + разбор → WebhookEvent (бросает SignatureError)

Ошибки: ValidationError (400), AuthenticationError (401), ForbiddenError (403), NotFoundError (404), ServerError (5xx), APIConnectionError (сеть), SignatureError (подпись). База — AnoreError.

Полная документация: https://anore.cc/docs

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

anore-1.0.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anore-1.0.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file anore-1.0.0.tar.gz.

File metadata

  • Download URL: anore-1.0.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for anore-1.0.0.tar.gz
Algorithm Hash digest
SHA256 614bb9c4723da97cb429e5e4301398a0f68b276fed6582adc1936354c9cf3bce
MD5 dfd84a9070e6b52bdcfc1f987df24a73
BLAKE2b-256 2ce5a100e4685ec8aa3a97072cb992c542511684b634f32c13ac4896a881d89a

See more details on using hashes here.

File details

Details for the file anore-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: anore-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for anore-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 22dc4b2641ebff6ee0bbf101f62b4598544247ba152edbea9521aeedd1b44164
MD5 c597e62b44c37acb6a331fdfb60fe913
BLAKE2b-256 b95727bad80e7d488cf3558a94907bbb1d526e843a926f3db81d4c79bde7bfd3

See more details on using hashes here.

Supported by

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