La vue pour la session de paiement
bonjour à tous,
la vue ci-dessous n'est pas même que dans la vidéo la façon de faire à du changer,
quelle sont les modifications à faire dans le code s'il vous plaît ?
#! /usr/bin/env python3.6
"""
server.py
Stripe Sample.
Python 3.6 or newer required.
"""
import os
from flask import Flask, redirect, request
import stripe
# This is your test secret API key.
stripe.api_key = 'sk_test_51N5YKXCfR23yIEyo3mU0HpBNAjf3A7sMX2tJLoc1NR7keOd2kujtUDFdWovwHaJJwAVWYomBuBzLUaJBiCF9ofTu00AnUm3oTF'
app = Flask(__name__,
static_url_path='',
static_folder='public')
YOUR_DOMAIN = 'http://localhost:4242'
@app.route('/create-checkout-session', methods=['POST'])
def create_checkout_session():
try:
checkout_session = stripe.checkout.Session.create(
line_items=[
{
# Provide the exact Price ID (for example, pr_1234) of the product you want to sell
'price': '{{PRICE_ID}}',
'quantity': 1,
},
],
mode='payment',
success_url=YOUR_DOMAIN + '/success.html',
cancel_url=YOUR_DOMAIN + '/cancel.html',
automatic_tax={'enabled': True},
)
except Exception as e:
return str(e)
return redirect(checkout_session.url, code=303)
if __name__ == '__main__':
app.run(port=4242)
le code n'est pas en django pour qu'il marche j'imagine qu'il faut le modifier.
le but est de créer la vue pour la session de paiment stripe
Ah j'ai bossé dessus il y a quelques temps.
Mais tu es avec Django ?
Car eux dans leur exemple ils utilisent flask. Tu n'as donc pas besoin de tout copier.
Le lien de la doc qui t'intéresse : https://stripe.com/docs/payments/accept-a-payment
Ta clé d'api il faudrait la "cacher" dans un fichier.env.
Perso elle est cachée dans un fichier .env
STRIPE_APIKEY = os.getenv('STRIPE_KEY')
Thibault explique dans la tuto comment mettre les données sensibles dans les fichiers .env il me semble
On gros sur le principe j'avais créé ma vue
def create_checkout_session(request):
Et tu as juste besoin de copier la séléction ci-dessous:

merci les gars ça marche! 💪
effectivement il fallait copié que la partie indiquée par Gabriel,
mais il aurait fallu définir un produit a vendre dans stripe avant de copier le code
si on ne fait pas cela dans le code on aura ça :
'price': '{{PRICE_ID}}',
et il y'aura une erreur
'str' object h'as no attribute 'get'si on définit un produit on aura ça :
'price': 'price_1N9X0iCfR23yIEyoQcR1rgLE',et ça devrait marcher
Ah oui excuse moi, le code de stripe que j'ai copié est lié à mon compte en plus. Après sur tes modèles tu inclus un champ stripe_id au pire. Et tu mets l'id qui est dans stripe.
line_items = [{"price": order.ticket.stripe_id,
"quantity": order.quantity} for order in cart.orders.all()]
Je boucle sur les commandes dans le panier de mon utilisateur.
Technique made in Thibault dans le tuto
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte