Résolue

Problème avec la session de paiement après séparation des URLs

# Stripe # Django

Bonjour,
j'ai un probleme apres voir bien séparer les urls.
Ma session de paiment ne marche plus, avant la separation des urls ça fonctionné.

merci c'est Jérémy

Gabriel Trouvé

Mentor

Salut,

Comme ça c'est compliqué, tu n'aurais pas un repo github ?

Que l'on voit ton code. Sinon je me demande si ce n'est pas avec tes data pour le checkout vu l'erreur.

Regardes si ça peut t'aider, à l'époque je l'avais fait :
https://github.com/gabigab117/DocShop/blob/main/store/views.py

A bientôt :)

Bonjour,
oui j'ai repo github https://github.com/Mountainbluesun/Docshop/

Merci

Gabriel Trouvé

Mentor

Il doit être en privé je n'ai pas accès.

En attendant, regarde mon code, et regarde à ce niveau si tu n'as pas un soucis avec ton line_items notamment :

def create_checkout_session(request):
    # récupère le panier
    cart = request.user.cart
    # compréhension de liste avec un dictionnaire (id + qté)
    line_items = [{"price": order.product.stripe_id,
                   "quantity": order.quantity} for order in cart.orders.all()]

    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:checkout-success')),
        "cancel_url": 'http://127.0.0.1:8000',
    }
    # une condition pour savoir si on a déjà un stripe_id pour notre user
    if request.user.stripe_id:
        checkout_data["customer"] = request.user.stripe_id
    else:
        checkout_data["customer_email"] = request.user.email
        # créer le client dans stripe la première fois
        checkout_data["customer_creation"] = "always"
    # tout ce que j'avais ici je l'ai passé à checkout_data en dictionnaire
    # on va utiliser l'unpacking
    session = stripe.checkout.Session.create(**checkout_data)

    return redirect(session.url, code=303)


def checkout_success(request):
    return render(request, "store/success.html")

Bonjour, je l'ai mis en privé desolé.
je vais le mettre en public et j'ai bien un problème sur le line_item
en response sur le serveur.
et j'ai fais un test sur stripe listen , et j'ai que des erreurs 404.
ce que je n'avais pas auparavant/

je vais regarder ton code

merci

Gabriel Trouvé

Mentor

Tu as bien des articles dans le panier ? et le stripe id est valide ? Car pour moi ça vient de là quand tu regardes ton erreur.

Bonjour, oui j'ai bien des articles dans le panier et tous fonctionne à nouveau .
,
j'ai un 404 sur le trigger avec stripe-webhook tous les paramètres sont en 404 not found.
sur mon dasbord de stripe le paiement est en succés. mon id customer fonctionne.

Je continue mon apprentissage que j'aime bien

merci Gabriel

c´ est un plaisir :)

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.