Aperçu
Stripe gère le traitement des paiements pour les entreprises en ligne — débits uniques, facturation d'abonnement, facturation, versements de place de marché (Connect) et prévention de la fraude (Radar). Cette compétence couvre le SDK Python (stripe module).
Installation
uv pip install stripe
Débit unique
import stripe
stripe.api_key = "sk_test_..."
charge = stripe.Charge.create(
amount=2000, # $20.00 en cents
currency="usd",
source="tok_visa", # token from Stripe.js
description="Example charge",
)
print(charge.id, charge.status)
Abonnement
customer = stripe.Customer.create(email="customer@example.com")
subscription = stripe.Subscription.create(
customer=customer.id,
items=[{"price": "price_123"}], # recurring price ID
)
print(subscription.id, subscription.status)
Vérification Webhook
from flask import request
import stripe
payload = request.data
sig_header = request.headers.get("Stripe-Signature")
event = stripe.Webhook.construct_event(payload, sig_header, "whsec_...")
if event.type == "payment_intent.succeeded":
payment_intent = event.data.object
print(f"Payment {payment_intent.id} succeeded")
Plateforme Connect (Versements de place de marché)
# Create a connected account
account = stripe.Account.create(
type="express",
country="US",
email="seller@example.com",
)
# Transfer funds
transfer = stripe.Transfer.create(
amount=1000,
currency="usd",
destination=account.id,
)
Gestion des erreurs
try:
charge = stripe.Charge.create(amount=-1, currency="usd")
except stripe.error.InvalidRequestError as e:
print(f"Invalid request: {e.user_message}")
except stripe.error.CardError as e:
print(f"Card declined: {e.error.decline_code}")
except stripe.error.RateLimitError:
print("Rate limited — retry with exponential backoff")