Siirry sisältöön

Python-SDK

feitpay ei käytä kolmannen osapuolen riippuvuuksia (se käyttää moduuleja urllib, hmac ja json).

Terminal window
pip install feitpay # once published; in the monorepo use sdk/python directly
import os
from feitpay import FeitPay, FeitPayError, NotFoundError
gp = FeitPay(api_key=os.environ["FEITPAY_API_KEY"], base_url="https://api.feitpay.com", timeout=30, max_retries=2)
intent = gp.payment_intents.create(
store_id="store_YOUR_STORE_ID", amount="59.90", currency="EUR",
merchant_order_id="order-123", idempotency_key="order-123",
)
for pi in gp.payment_intents.list_all(status=["confirmed", "overpaid"]):
print(pi["id"], pi["fulfillable"])
try:
gp.invoices.retrieve("inv_missing")
except NotFoundError as exc:
print(exc.code, exc.request_id)

Resurssit: payment_intents, checkout_sessions, invoices, payment_links, transactions, wallets, stores, webhook_endpoints, webhook_deliveries, events, reports, billing, platform. Vastaukset ovat tavallisia dict-olioita, jotka vastaavat rajapinnan rakennetta; summat pysyvät merkkijonoina. format_base_units("99834", 8) muotoilee summan tarkasti.

Uudelleenyritykset noudattavat samoja sääntöjä kuin muut SDK:t (GET- ja avaimelliset POST-pyynnöt; verkkovirheet, 429, 5xx; satunnaistettu eksponentiaalinen viive Retry-After huomioiden).

from feitpay import webhooks
from feitpay.webhooks import WebhookVerificationError
try:
event = webhooks.verify(raw_body, headers["FeitPay-Signature"], [new_secret, old_secret])
except WebhookVerificationError as exc:
respond(400, {"error": exc.reason})

Aja testit hakemistossa sdk/python: python -I -m unittest discover -s tests -t .