【发布时间】:2021-08-05 14:49:27
【问题描述】:
我已经将 Django 与 Stripe 集成在一起,看起来效果不错。但是,我在条纹结帐页面中显示所有产品时遇到了问题。我需要告诉 Stripe 我们要购买哪些产品。如果我在购物车中有 2 件产品,我只会在条带结帐中看到一件产品。
views.py
def payments_stripe(request):
YOUR_DOMAIN = "http://127.0.0.1:8000/orders"
print(request.body)
body = json.loads(request.body)
cart = Cart.objects.get(cart_id=_cart_id(request))
cart_items = cartItem.objects.filter(cart=cart, is_active=True)
print(cart_items)
order = Order.objects.get(cart=cart, is_ordered=False, order_number=body['orderID'])
print(order)
for cart_item in cart_items:
quantity = cart_item.quantity
print(quantity)
name = cart_item.product.name
print(name)
try:
checkout_session = stripe.checkout.Session.create(
customer_email=order.email,
billing_address_collection='auto',
payment_method_types=['card'],
line_items=[
{
'price_data': {
'currency': 'eur',
'unit_amount': int(order.order_total * 100),
'product_data': {
'name': name,
'images': ['https://i.imgur.com/EHyR2nP.png'],
},
},
'quantity': quantity,
},
],
metadata={
'order_number': body['orderID'],
'payment_method': body['payment_method'],
'cart_id': cart,
},
mode='payment',
success_url=YOUR_DOMAIN + '/success/',
cancel_url=YOUR_DOMAIN + '/cancel/',
)
return JsonResponse({'id': checkout_session.id})
except Exception as e:
return JsonResponse(error=str(e)), 403
我迭代购物车项目,迭代给出: 1 金箭 1 银心
但是在 Stripe 仪表板中我只看到一个产品 1 Golden Arrow。
我想我需要创建一个新列表。那正确吗?在我的情况下,我该怎么做?
谢谢
【问题讨论】:
标签: django view stripe-payments