首页 > 解决方案 > 如何在结账时获得 Stripe 的申请费以反映可调整的数量?

问题描述

我为 Stripe 的结帐会话呼叫添加了可调整的数量。我了解费用对象是在付款后创建的。

我正在查看 Stripe 文档中的申请费对象,它说它的上限为最终收费金额。如何在结帐期间检索费用金额或更好的数量?

    checkout_session = stripe.checkout.Session.create(
                success_url=domain_url + 'success?session_id={CHECKOUT_SESSION_ID}',
                cancel_url=domain_url + 'cancelled/',
                payment_method_types=['card'],
                customer=customer.id,
                payment_intent_data={
                    'application_fee_amount': int(stripe_price * fee_percentage),
                    'transfer_data': {
                    'destination': seller.stripe_user_id,
                    },
                },
                line_items=[
                {
                    'price_data': {
                        'currency': currency,
                        'unit_amount': price,
                        'product_data': {
                            'name': title
                        },
                    },
                    'adjustable_quantity': {
                    'enabled': True,
                    'minimum': 0,
                    'maximum': available_quantity,
                  },
                  'quantity': 1,
                },
                ],
                metadata={
                    "product_id": product.id,
                    "client_reference_id": user.id,
                },
                mode='payment',

            )
            return JsonResponse({'sessionId': checkout_session['id']})
        except Exception as e:
            return JsonResponse({'error': str(e)})

标签: pythondjangostripe-payments

解决方案


现在最好的选择是执行以下操作:

  1. 设置payment_method_data.capture_methodmanual结帐会话
  2. 结帐会话完成时设置application_fee_amount捕获资金时

这将您限制为支持单独授权和捕获的付款方式,但它允许您application_fee_amount在结帐会话完成后进行设置。


推荐阅读