Python 从Django视图返回Stripe Session.id
我试图在我的django网站上实现条带支付API。 在my cart.html页面中,我有一个按钮,可以转到我的签出视图,并从购物车中创建产品和价格:Python 从Django视图返回Stripe Session.id,python,django,stripe-payments,Python,Django,Stripe Payments,我试图在我的django网站上实现条带支付API。 在my cart.html页面中,我有一个按钮,可以转到我的签出视图,并从购物车中创建产品和价格: def checkout(request): customer = request.user.customer order = Order.objects.get(customer=customer) items = order.orderitem_set.all() prices =[] for item
def checkout(request):
customer = request.user.customer
order = Order.objects.get(customer=customer)
items = order.orderitem_set.all()
prices =[]
for item in items:
product =stripe.Product.create(
name = item.product.name,
description= item.product.description
)
price = stripe.Price.create(
product= product.id,
unit_amount=int(item.product.price.amount)*100,
currency='gbp',
)
prices.append(price.id)
line_items=[]
for item, price in zip(items,prices):
line_items.append({'price':price,'quantity':item.quantity}),
session = stripe.checkout.Session.create(
payment_method_types=['card'],
line_items=line_items,
mode='payment',
success_url='http://127.0.0.1:8000/SUCCESS/?session_id={CHECKOUT_SESSION_ID}',
cancel_url='http://127.0.0.1:8000/'
)
然后我必须重定向到Stripes checkout,我想从购物车上的按钮调用它,但我不确定如何将SessionId从视图返回到模板并调用它
非常感谢您的帮助。通常您会将会话ID传递到视图中,或者使用异步请求从后端创建会话。例如:
从django.exe导入渲染
def构建签出会话(客户):
#使用现有代码创建产品、价格等。。。
session=stripe.checkout.session.create(…)
返回会话
def签出_视图(请求):
会话=构建\签出\会话(客户=请求.用户.客户)
返回呈现(请求'checkout.html',{'session_id':session.id})
然后,在checkout.html中:
const sessionID=“{{session_id}}”;
常量条带=条带(“pk_测试_12345”)//把你的钥匙放在这里
document.getElementById('checkExputton')。addEventListener('click'(evt)=>{
evt.preventDefault();
stripe.redirectToCheckout({sessionId:sessionId});
});
我还想指出的是,与每次创建产品和价格不同,您可以将特定数据传递到结帐会话中,如图所示:刚刚解决了问题,但这更干净,非常感谢!工作是一种享受