Mode in Stripe API

Advertisements

What is the Mode parameter in Stripe API? When I test Stripe Api in laravel, it says:

Error sending request to Stripe: (Status 400) (Request req_XKxpoKv6C0eFDm) You must provide mode when using prices. Stripe\Exception\InvalidRequestException: You must provide mode when using prices.

Here is my code:

  $session = Session::create([
                    'payment_method_types' => ['card'],
                   
                    'line_items' =>  [
                        [
                           
                         'price_data' => [
                          
                           'unit_amount' => $secretPlan['amount'] * 100,
                           'currency' => $secretPlan['currency'],
                           'product_data' => [
                             'name' => $secretPlan['name'],
                             'description' => $secretPlan['description']
                           ]
                         ],
                         'quantity' => $secretPlan['quantity'],
                        
                        ],
 
                     ],
                    'success_url' => $successURL,
                    'cancel_url' => route('payment.cancel')
                ]);

Can anyone give me a solution? Thanks in advance.

>Solution :

From the Stripe docs:

The mode parameter is of type enum with 3 possible values:

payment: accept one-time payments for cards, iDEAL, and more.

setup: save payment details to charge your customers later.

subscription: use Stripe Billing to set up fixed-price subscriptions.

So in your case when creating a session, add the mode parameter that fits your context, for example:

$session = Session::create([
                    'payment_method_types' => ['card'],
                    'mode' => 'payment',
                    'line_items' =>  [
                        [
                           
                         'price_data' => [
                          
                           'unit_amount' => $secretPlan['amount'] * 100,
                           'currency' => $secretPlan['currency'],
                           'product_data' => [
                             'name' => $secretPlan['name'],
                             'description' => $secretPlan['description']
                           ]
                         ],
                         'quantity' => $secretPlan['quantity'],
                        
                        ],
 
                     ],
                    'success_url' => $successURL,
                    'cancel_url' => route('payment.cancel')
                ]);

Leave a ReplyCancel reply