Ich versuche, Metadaten über eine Stripe-Checkout-Sitzung zu übergeben. Derzeit versuche ich, es über payment_intent_data.metadata zu übergeben, wie in der Stripe-Dokumentation vorgeschlagen, erhalte jedoch eine 500-Fehler-Ausnahme : „StripeExceptionInvalidRequestException“, Meldung : „Ungültiges Objekt“. Aber ich scheine die empfohlene Konfiguration in der Stripe-Dokumentation zu befolgen, also stecke ich fest.
StripeController.php
public function handle_checkout(Request $request) { $stripe = new \Stripe\StripeClient(env("STRIPE_PRIVATE_KEY")); $req_content = json_decode($request->getContent(), true); $line_items = []; $email = ""; foreach($req_content as $key => $val) { $new_line_item = [ 'price_data' => [ 'currency' => 'usd', 'product_data' => [ 'name' => $val["product_item"]["name"], ], 'unit_amount' => $val["product_item"]["price"] * 100, ], 'quantity' => $val["cart_item"]["quantity"] ]; $email = $val["user_email"]; array_push($line_items, $new_line_item); } $checkout_session = $stripe->checkout->sessions->create([ 'shipping_address_collection' => ['allowed_countries' => ['US']], 'payment_method_types' => ['card'], "customer_email" => $email, 'line_items' => $line_items, 'payment_intent_data' => [ ## Here, I am just putting "AAA" for testing 'metadata' => "AAA" ], 'mode' => 'payment', 'success_url' => 'my success url ...', 'cancel_url' => 'my cancel url...', ]); return $checkout_session->url; }
Wenn ich nicht
hinzufüge'payment_intent_data' => [ ## Here, I am just putting "AAA" for testing 'metadata' => "AAA" ],
Dann ist es das. Aber ich möchte die Metadaten durch den Checkout-Prozess weiterleiten und sie auf payment_intent.succeeded erhalten.
Ideen?