Stripe 如何检索结帐会话的行项目数量?

时间:2021-04-18 23:48:23

标签: stripe-payments

创建支付会话:

$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"?

1 个答案:

答案 0 :(得分:0)

检索结帐会话时,默认情况下不再包含

line_items。要在检索调用中获取它们,您需要expand line_item 属性。

您有两个语法错误: 您缺少一个图层并使用点表示法而不是 PHP 箭头语法。第二个错误是使用 $session 而不是 $checkout_session。所以应该是:

$quantity = $checkout_session->line_items->data[0]->quantity;

相关问题