签出会话创建失败!无效的数组条带签出



我正在将Stripe签出集成到我的PHP项目中。我需要创建一个用于条带结账的会话,但当我单击支付按钮时,我收到了一个Invalid array错误,它不是创建会话,而是抛出了一个错误。我不知道我在哪里缺少了什么,我使用的是stripeV3代码。

我在会话创建条带签出时遇到的错误。

签出会话创建失败!无效的数组

结账页面代码

<?php 
// Include configuration file   
require_once 'config.php'; 

// Include Stripe PHP library  
require_once 'stripe-php/init.php'; 

// Set API key 
$stripe = new StripeStripeClient(STRIPE_API_KEY); 

$response = array( 
'status' => 0, 
'error' => array( 
'message' => 'Invalid Request!'    
) 
); 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
$input = file_get_contents('php://input'); 
$request = json_decode($input);     
} 

if (json_last_error() !== JSON_ERROR_NONE) { 
http_response_code(400); 
echo json_encode($response); 
exit; 
} 

if(!empty($request->checkoutSession)){ 
// Create new Checkout Session for the order 
try { 



$session =  $stripe->checkout->sessions->create([
'payment_method_types' => ['card'],
'line_items' => [[
'price_data' => [
'currency' => $currency,
'unit_amount' => $stripeAmount,
'product_data' => [
'name' => $productName,
'images' => $productName,
],
],
'quantity' => 1,
]],
'mode' => 'payment',

'success_url' => STRIPE_SUCCESS_URL.'?session_id={CHECKOUT_SESSION_ID}', 
'cancel_url' => STRIPE_CANCEL_URL,
]);



}catch(Exception $e) {  
$api_error = $e->getMessage();  
} 

if(empty($api_error) && $session){ 
$response = array( 
'status' => 1, 
'message' => 'Checkout Session created successfully!', 
'sessionId' => $session['id'] 
); 
}else{ 
$response = array( 
'status' => 0, 
'error' => array( 
'message' => 'Checkout Session creation failed! '.$api_error    
) 
); 
} 
} 

// Return response 
echo json_encode($response);
?>

我认为问题在于"line_items.price_data.product_data.images";因为它接受一个图像列表,而您正在传递产品名称。它应该看起来像这个

$session =  $stripe->checkout->sessions->create([
'payment_method_types' => ['card'],
'line_items' => [[
'price_data' => [
'currency' => $currency,
'unit_amount' => $stripeAmount,
'product_data' => [
'name' => $productName,
'images' => ["image_link1","image_link2"],
],
],
'quantity' => 1,
]],
'mode' => 'payment',

'success_url' => STRIPE_SUCCESS_URL.'?session_id={CHECKOUT_SESSION_ID}', 
'cancel_url' => STRIPE_CANCEL_URL,
]);

最新更新