Symfony集成Stripe v9.5.0遇unit_amount无效整数及数组错误求助
Symfony集成Stripe v9.5.0支付的两个错误解决方案
错误1:"Invalid integer: 532.46"
- 原因:Stripe的
unit_amount参数要求传入最小货币单位的整数(例如欧元以「分」为单位),你当前传入的是带小数的欧元金额(如532.46欧元),不符合参数格式要求。 - 修复:将商品价格乘以100转换为分,再强转为整数:
'unit_amount' => (int)($product['product']->getPrix() * 100),
注意:不要直接用round($orderDetails->getPrice()),这只会把欧元金额取整,而不是转换为最小货币单位。
错误2:"Invalid array"
- 原因:
$product_for_stripe本身就是存储多个商品项的一维数组,你在line_items里又套了一层[$product_for_stripe],导致传入了二维数组,Stripe要求line_items是一维数组。 - 修复:直接将
$product_for_stripe赋值给line_items:
$checkout_session = Session::create([ 'line_items' => $product_for_stripe, 'mode' => 'payment', 'success_url' => $YOUR_DOMAIN . '/success.html', 'cancel_url' => $YOUR_DOMAIN . '/cancel.html', ]);
修正后的完整代码片段
$product_for_stripe = []; $YOUR_DOMAIN = 'https://localhost:8000/'; //Enregister sur mon entity Order_details foreach ($cart->getFull() as $product) { $orderDetails = new OrderDetails(); $orderDetails->setMyOrder($order); $orderDetails->setProduct($product['product']); $orderDetails->setQuantity($product['quantity']); $orderDetails->setPrice($product['product']->getPrix()); $orderDetails->setTotal($product['product']->getPrix() * $product['quantity']); $this->entityManager->persist($orderDetails); $product_for_stripe[] = [ 'price_data' => [ 'currency' => 'eur', 'product_data' => [ 'name' => $product['product']->getName(), 'images' => $product['product']->getImage() ], // 修复unit_amount:转换为最小货币单位的整数 'unit_amount' => (int)($product['product']->getPrix() * 100), ], 'quantity' => $product['quantity'], ]; } $this->entityManager->flush(); // 建议开启flush,确保订单详情正确存入数据库 Stripe::setApiKey('sk_test_51LiLoMDGYOFHKYepnY3xMBT5vwMJWH2XR3ntN9GpHXYtapN29AvQVty21GPUx0qVa2J6MWFr69ke3Yq1p3MJL1yV00kCU59YvE'); $checkout_session = Session::create([ // 修复line_items:直接传入一维数组 'line_items' => $product_for_stripe, 'mode' => 'payment', 'success_url' => $YOUR_DOMAIN . '/success.html', 'cancel_url' => $YOUR_DOMAIN . '/cancel.html', ]); dump($checkout_session->id); dd($checkout_session);
内容的提问来源于stack exchange,提问作者Halit Cinici
相关产品推荐
相关产品推荐

