Sauvegarder l'identifiant et l'adresse de livraison

Exclusif Premium

Débloquez votre potentiel ! ✨

Cette session fait partie de notre programme Premium exclusif

+100h de formations exclusives
+180 exercices de code avancés
+100h de mentorats en réécriture
20 projets guidés pas à pas
Mentorats groupés hebdomadaires
Support individuel avec nos mentors

Prêt à passer au niveau supérieur ?

Découvrez tous les avantages Premium et transformez votre apprentissage dès aujourd'hui!

Inscris-toi

(c'est gratuit !)

Un compte est nécessaire pour participer aux discussions.

Créer un compte

Toutes les questions

Fred

15 novembre 2024

Résolue
1 réponse

Erreur de valeur nulle pour 'customer'

Hello dans lenvironnement de test je retrouve une erreur, car customer est toujours égal à null. Est ce normal? Merci

koko

17 juillet 2023

Résolue
9 réponses

Stripe Sauvegarder l'identifiant et l'adresse de livraison

bonjour à tous, je n'arrive pas à Sauvegarder l'identifiant et l'adresse de livraison dans ma base de données sur stripe. ```python {'after_expiration': None, 'allow_promotion_codes': None, 'amount_subtotal': 159, 'amount_total': 159, 'automatic_tax': {'enabled': True, 'status': 'complete'}, 'billing_address_collection': None, 'cancel_url': 'http://127.0.0.1:8000/', 'client_reference_id': None, 'consent': None, 'consent_collection': None, 'created': 1688709289, 'currency': 'eur', 'currency_conversion': None, 'custom_fields': [], 'custom_text': {'shipping_address': None, 'submit': None}, 'customer': 'cus_ODYk8PU7nn7XGn', 'customer_creation': 'always', 'customer_details': {'address': {'city': None, 'country': 'FR', 'line1': None, 'line2': None, 'postal_code': None, 'state': None}, 'email': 'pymalien@gmail.com', 'name': 'kambila', 'phone': None, 'tax_exempt': 'none', 'tax_ids': []}, 'customer_email': None, 'expires_at': 1688795688, 'id': 'cs_test_a1CXcqtDwaxUM26SmoTD3eUlKhGccAB8WHJJzbNYMgEGI0qYL6pHlx2b7O', 'invoice': None, 'invoice_creation': {'enabled': False, 'invoice_data': {'account_tax_ids': None, 'custom_fields': None, 'description': None, 'footer': None, 'metadata': {}, 'rendering_options': None}}, 'livemode': False, 'locale': None, 'metadata': JSON: {}, 'mode': 'payment', 'object': 'checkout.session', 'payment_intent': 'pi_3NR7d3CfR23yIEyo1LqEz9O8', 'payment_link': None, 'payment_method_collection': 'always', 'payment_method_options': JSON: {}, 'payment_method_types': ['card', 'bancontact', 'eps', 'giropay', 'ideal', 'link'], 'payment_status': 'paid', 'phone_number_collection': {'enabled': False}, 'recovered_from': None, 'setup_intent': None, 'shipping_address_collection': {'allowed_countries': ['ML', 'FR']}, 'shipping_cost': None, 'shipping_details': {'address': {'city': 'Paris', 'country': 'FR', 'line1': '37 Rue Lamarck', 'line2': 'jjj', 'postal_code': '75018', 'state': ''}, 'name': 'konimba djimiga'}, 'shipping_options': [], 'status': 'complete', 'submit_type': None, 'subscription': None, 'success_url': 'http://127.0.0.1:8000/cart/success', 'total_details': {'amount_discount': 0, 'amount_shipping': 0, 'amount_tax': 0}, 'url': None} ``` ```python cart = request.user.cart # on recupère cart avec user qui est connecté grace à request # on va créer une liste une lise d'element à partir de ce panier # on va fairee une comprehention de liste en bouclant sur chaque article # on recupère un dict pour cheque element qui contient le le strip_id=produit et la quantite line_items = [{"price": Order.product.stripe_id, "quantity": Order.quantity} for Order in cart.orders.all()] try: checkout_session = stripe.checkout.Session.create( line_items=line_items, customer_creation='always', mode='payment', shipping_address_collection={"allowed_countries": ["ML", "FR"]}, success_url=request.build_absolute_uri(reverse("checkout-success")), cancel_url=request.build_absolute_uri(reverse("home")), automatic_tax={'enabled': True}, ) except Exception as e: return str(e) return redirect(checkout_session.url, code=303) def checkout_success(request): return render(request, 'store/success.html') endpoint_secret = 'whsec_9d9995195841efd099f24a481a1b47ba79e69531a6404f63d57a9cfd07d11dbf' @csrf_exempt def webhook(request): payload = request.body sig_header = request.META['HTTP_STRIPE_SIGNATURE'] event = None try: event = stripe.Webhook.construct_event( payload, sig_header, endpoint_secret ) except ValueError as e: # Invalid payload return HttpResponse(status=400) except stripe.error.SignatureVerificationError as e: # Invalid signature return HttpResponse(status=400) if event['type'] == 'checkout.session.completed': data = event['data']['object'] try: user = get_object_or_404(Shopper, email=data['customer_details']['email']) except KeyError: HttpResponse('invalid user email', status=404) complete_order(user=user, data=data) save_shipping_address(user=user, data=data) return HttpResponse(status=200) return HttpResponse(status=200) def complete_order(user, data): user.stripe_id = data['customer'] user.cart.delete() user.cart.save() return HttpResponse(status=200) def save_shipping_address(user, data): try: pprint(data) name = data["shipping_details"]["name"] city = data["address"]["city"] country = data["address"]["country"] address_1 = data["address"]["line1"] address_2 = data["address"]["line2"] zip_code = data["address"]["postal_code"] except KeyError: return HttpResponse(status=404) Shippingaddress.objects.get_or_create(user=user, name=name, city=city, country=country.lower(), address_1=address_1, address_2=address_2 or "", zipe_code=zip_code) return HttpResponse(status=200) ``` ``` ```

Ce n'est pas fini...

Tu as complété % du parcours 🔥

Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.

Rechercher sur le site

Inscris-toi à Docstring

Pour commencer ton apprentissage.

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