Stripe : création d'un client
Re,
Promis dernière question pour aujourd'hui ^^
Dans ma conditon :
if request.user.stripe_id:
checkout_data["customer"] = request.user.stripe_id
else:
checkout_data["customer_email"] = request.user.email
checkout_data["customer_creation"] = "always"
Du code ci-dessous.
Si j'ai déjà un stripe_id je le passe à "customer". Du coup en faisant ça stripe récupère automatiquement l'adresse mail du client ?
Ou le "customer_email" je devrais le mettre à la fois dans le if et le else ?
def create_checkout_session(request):
# récupérer le panier
cart = request.user.cart
# compréhension de liste line_items :
line_items = [{"price": order.ticket.stripe_id,
"quantity": order.quantity} for order in cart.orders.all()]
# voir la doc https://stripe.com/docs/payments/accept-a-payment
# créer un objet de type Session
# https://stripe.com/docs/api/checkout/sessions/create
checkout_data = {
"locale": "fr",
"line_items": line_items,
"mode": 'payment',
# voir ds la doc. On passe un dico avec une liste de pays autorisés
"shipping_address_collection": {"allowed_countries": ["FR", "BE"]},
# il faut une url absolue car je suis sur Stripe à ce moment-là
"success_url": request.build_absolute_uri(reverse('store:success')),
"cancel_url": 'http://127.0.0.1:8000',
}
if request.user.stripe_id:
checkout_data["customer"] = request.user.stripe_id
else:
checkout_data["customer_email"] = request.user.email
checkout_data["customer_creation"] = "always"
session = stripe.checkout.Session.create(**checkout_data)
return redirect(session.url, code=303)
Merci
Salut Gab !
Oui si tu passes le stripe_id existant du client à "customer", Stripe récupérera automatiquement l'adresse e-mail correspondant à ce stripe_id car il aura l'information de son côté.
Tu n'as donc pas besoin de répéter l'adresse e-mail dans le bloc "else" parce que cela ne s'appliquerait que si le client n'a pas de stripe_id.
Dans ce cas, tu définis "customer_email" avec l'adresse e-mail du client et "customer_creation" sur "always" pour créer un nouveau client dans Stripe si nécessaire donc c'est tout bon :)
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte