Résolue

La vue pour la session de paiement

# Stripe # Flask

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)

Hello,

peux dire s'il te plait dire quelle modifications tu cherches à faire et dans quel but ? Merci.

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 Gabirel pour ton retour.

Konimba dis nous si tu as toujours un souci.

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

Gabriel Trouvé

Mentor

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 !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.