为了账号安全,请及时绑定邮箱和手机立即绑定

在 Stripe 结账时添加额外金额

在 Stripe 结账时添加额外金额

收到一只叮咚 2023-11-09 22:29:12
我使用 python/Django 开发电子商务网站。我集成了条带支付,其中购物车项目作为行项目动态传递。如果购物车价值低于 500 卢比,我会添加运费。当前使用 stripe session Api 进行结账流程。我想将送货费作为额外金额添加到结帐订单项价格中。提前致谢@csrf_exemptdef createCheckoutSession(request):if request.method=='GET':    domain_url='http://localhost:8000/'    stripe.api_key= settings.STRIPE_SECRET_KEY    profile = UserProfile.objects.get(user__id=request.user.id)    try:        customer = stripe.Customer.retrieve(profile.stripe_id)        print (customer)        profile = UserProfile.objects.get(user__id=request.user.id)        checkoutSession = stripe.checkout.Session.create(        success_url =domain_url+'success?session_id={CHECKOUT_SESSION_ID}',        cancel_url =domain_url+'cancelled/',        payment_method_types = ['card'],        mode='payment',        line_items= get_line_items(request)[0],        customer= profile.stripe_id,        )        return JsonResponse({'sessionId':checkoutSession['id']})    except Exception as e:        return JsonResponse({"error":str(e)})
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

有几种方法可以解决这个问题,但一种方法是通过仪表板或 API 创建交货价格。然后,如果订单项价格总和unit_amounts小于 500,则将运费添加到订单项并将项目数组传递给会话创建调用:


# The shipping price ID

shipping_price = "price_xxx"


# Base price

price = stripe.Price.retrieve(

  "price_yyy",

)


# If there are more than one item you can iterate over items and sum the unit_amounts

items = [

  {

    "price": price.id,

    "quantity": 1,

  },

]


# For simplicity I assume there is only one price being charged, for summing, iterate over the items

if(price.unit_amount < 500):

  items.append({

    "price": shipping_price,

    "quantity": 1,

  })


stripe.checkout.Session.create(

  success_url="https://example.com/success",

  cancel_url="https://example.com/cancel",

  payment_method_types=["card"],

  line_items=items,

  mode="payment",

)


查看完整回答
反对 回复 2023-11-09
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信