stripe-payments - Stripe 如何检索 Checkout Session 的行项目数量?
问题描述
创建付款会话:
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'], //, 'fpx','alipay'
'line_items' => [[
'price_data' => [
'product_data' => [
'name' => "Topup USDT Wallet",
'images' => ["https://abc-uaha.co/uploads/site_logo/site_logo_20210321130054.png"],
'metadata' => [
'pro_id' => "USD".$_GET['price']/100
]
],
'unit_amount' => $_GET['price'],
'currency' => 'usd',
],
'quantity' => 1,
'description' => "Spartan Capital",
]],
'mode' => 'payment',
'success_url' => STRIPE_SUCCESS_URL.'?session_id={CHECKOUT_SESSION_ID}',
'cancel_url' => STRIPE_CANCEL_URL,
]);
请参阅此文档:https ://stripe.com/docs/api/checkout/sessions/line_items
我尝试从会话中检索数量:
try {
$checkout_session = \Stripe\Checkout\Session::retrieve([
'id' =>$session_id,
'expand' => ['line_items'],
]);
}catch(Exception $e) {
$api_error = $e->getMessage();
}
$line_items = $session->line_items[0].quantity;
echo $line_items; //it shows nothing, how to make it output "1"?
解决方案
line_items
检索结帐会话时,默认情况下不再包含。要在您的检索调用中获取它们,您需要扩展该line_item
属性。
您有两个语法错误:您缺少一个层并使用点表示法而不是 PHP 箭头语法。第二个错误是使用$session
而不是$checkout_session
. 所以应该是:
$quantity = $checkout_session->line_items->data[0]->quantity
;
推荐阅读
- javascript - 创建大小为 100% 的容器宽度的未知大小图像行
- c - 为什么我的 C mpi 程序中没有字符串?
- java - 您如何处理 JLabel 类?它说,“JLabel 不是一个声明”的错误
- azure - Azure Blob 存储 Spark
- javascript - Sweet Alert 2,自定义按钮
- ffmpeg - 带有缩略图块的 FFMPEG Dash
- google-home - 如何在 Google home 的风扇上实现百分比控制器?
- c# - 带有 if-else 条件的 Azure Bot 对话框
- android - Flutter - 获取 IOS 的外部存储路径以安全地存储认证文件
- javascript - 更改克隆的 html LI 中包含的 Id 引用