我创建了如下所示的结帐会话:
checkout_session = stripe.checkout.Session.create(
success_url=domain_url + 'success?session_id={CHECKOUT_SESSION_ID}',
cancel_url=request.session['latestURL'],
payment_method_types=['card'],
mode='payment',
line_items=[
{
'name': 'Awesome Product',
'quantity': 1,
'currency': 'usd',
'amount': price,
}
]
)
return JsonResponse({'sessionId': checkout_session['id']})
except Exception as e:
return JsonResponse({'error': str(e)})
我还使用条纹仪表板创建了一个产品,并具有产品ID。现在,如何在上述结帐会话中传递该产品ID,这样我的产品图片和价格信息就会显示在结帐页面中。在上面,我已经手动传递产品名称价格。我想直接将其与从条纹仪表板创建的产品链接。我该怎么办?
答案 0 :(得分:0)
他们有一个名为“ product”的字段=> prod_ifxgshHhhhhlrt,当您调用Session :: create时,这是line_items字段的一部分。
因此从仪表板中获取产品ID,然后插入字段值。
答案 1 :(得分:0)
当您为产品设置价格时,它会创建一个“价格 ID”,您可以传递与特定产品相关联的价格 ID,当 checkout.session.completed 事件触发时,它将有一个 ID您可以使用它来检索 lineItems,然后这些 lineItems 将包含所购买的关联产品的列表(通过它们的价格 ID 链接)。
https://stripe.com/docs/payments/accept-a-payment#create-product-prices-upfront
示例:
line_items=[{'price': 'price_abcdefghi123456789', 'quantity': 1}]
您可以像这样使用产品 ID:
line_items=[{'price_data': {'currency': 'USD', 'product': 'prod_abcdef123456', 'unit_amount': 500}, 'quantity': 1}]
但这似乎毫无意义(并且可能不安全),因为您必须在 unit_amount 字段中提供价格。
您可以将产品添加到计划中,并以某种方式使用 plan_id,但这似乎比仅使用价格 ID(这可能是最好的解决方案)更复杂。
结帐会话中使用的订单项的 API 参考如下: https://stripe.com/docs/api/checkout/sessions/create