2021-03-01 10:07:03 +01:00
< ? php
// File generated from our OpenAPI spec
namespace Stripe\Checkout ;
/**
* A Checkout Session represents your customer ' s session as they pay for one - time
* purchases or subscriptions through < a
2021-12-08 09:29:40 +01:00
* href = " https://stripe.com/docs/payments/checkout " > Checkout </ a > or < a
* href = " https://stripe.com/docs/payments/payment-links " > Payment Links </ a >. We
* recommend creating a new Session each time your customer attempts to pay .
2021-03-01 10:07:03 +01:00
*
* Once payment is successful , the Checkout Session will contain a reference to the
* < a href = " https://stripe.com/docs/api/customers " > Customer </ a > , and either the
* successful < a
* href = " https://stripe.com/docs/api/payment_intents " > PaymentIntent </ a > or an
* active < a href = " https://stripe.com/docs/api/subscriptions " > Subscription </ a >.
*
* You can create a Checkout Session on your server and pass its ID to the client
* to begin Checkout .
*
* Related guide : < a href = " https://stripe.com/docs/payments/checkout/api " > Checkout
* Server Quickstart </ a >.
*
* @ property string $id Unique identifier for the object . Used to pass to < code > redirectToCheckout </ code > in Stripe . js .
* @ property string $object String representing the object ' s type . Objects of the same type share the same value .
2021-12-08 09:29:40 +01:00
* @ property null | \Stripe\StripeObject $after_expiration When set , provides configuration for actions to take if this Checkout Session expires .
2021-03-01 10:07:03 +01:00
* @ property null | bool $allow_promotion_codes Enables user redeemable promotion codes .
* @ property null | int $amount_subtotal Total of all items before discounts or taxes are applied .
* @ property null | int $amount_total Total of all items after discounts and taxes are applied .
2021-08-23 08:37:03 +02:00
* @ property \Stripe\StripeObject $automatic_tax
2021-03-01 10:07:03 +01:00
* @ property null | string $billing_address_collection Describes whether Checkout should collect the customer ' s billing address .
* @ property string $cancel_url The URL the customer will be directed to if they decide to cancel payment and return to your website .
* @ property null | string $client_reference_id A unique string to reference the Checkout Session . This can be a customer ID , a cart ID , or similar , and can be used to reconcile the Session with your internal systems .
2021-12-08 09:29:40 +01:00
* @ property null | \Stripe\StripeObject $consent Results of < code > consent_collection </ code > for this session .
* @ property null | \Stripe\StripeObject $consent_collection When set , provides configuration for the Checkout Session to gather active consent from customers .
2021-03-01 10:07:03 +01:00
* @ property null | string $currency Three - letter < a href = " https://www.iso.org/iso-4217-currency-codes.html " > ISO currency code </ a > , in lowercase . Must be a < a href = " https://stripe.com/docs/currencies " > supported currency </ a >.
* @ property null | string | \Stripe\Customer $customer The ID of the customer for this Session . For Checkout Sessions in < code > payment </ code > or < code > subscription </ code > mode , Checkout will create a new customer object based on information provided during the payment flow unless an existing customer was provided when the Session was created .
2021-08-23 08:37:03 +02:00
* @ property null | \Stripe\StripeObject $customer_details The customer details including the customer 's tax exempt status and the customer' s tax IDs . Only present on Sessions in < code > payment </ code > or < code > subscription </ code > mode .
2021-03-01 10:07:03 +01:00
* @ property null | string $customer_email If provided , this value will be used when the Customer object is created . If not provided , customers will be asked to enter their email address . Use this parameter to prefill customer data if you already have an email on file . To access information about the customer once the payment flow is complete , use the < code > customer </ code > attribute .
2021-12-08 09:29:40 +01:00
* @ property int $expires_at The timestamp at which the Checkout Session will expire .
2021-03-01 10:07:03 +01:00
* @ property \Stripe\Collection $line_items The line items purchased by the customer .
* @ property bool $livemode Has the value < code > true </ code > if the object exists in live mode or the value < code > false </ code > if the object exists in test mode .
* @ property null | string $locale The IETF language tag of the locale Checkout is displayed in . If blank or < code > auto </ code > , the browser ' s locale is used .
* @ property null | \Stripe\StripeObject $metadata Set of < a href = " https://stripe.com/docs/api/metadata " > key - value pairs </ a > that you can attach to an object . This can be useful for storing additional information about the object in a structured format .
* @ property string $mode The mode of the Checkout Session .
* @ property null | string | \Stripe\PaymentIntent $payment_intent The ID of the PaymentIntent for Checkout Sessions in < code > payment </ code > mode .
2021-04-26 12:08:01 +02:00
* @ property null | \Stripe\StripeObject $payment_method_options Payment - method - specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession .
2021-03-01 10:07:03 +01:00
* @ property string [] $payment_method_types A list of the types of payment methods ( e . g . card ) this Checkout Session is allowed to accept .
* @ property string $payment_status The payment status of the Checkout Session , one of < code > paid </ code > , < code > unpaid </ code > , or < code > no_payment_required </ code >. You can use this value to decide when to fulfill your customer ' s order .
2021-12-08 09:29:40 +01:00
* @ property \Stripe\StripeObject $phone_number_collection
* @ property null | string $recovered_from The ID of the original expired Checkout Session that triggered the recovery flow .
2021-03-01 10:07:03 +01:00
* @ property null | string | \Stripe\SetupIntent $setup_intent The ID of the SetupIntent for Checkout Sessions in < code > setup </ code > mode .
* @ property null | \Stripe\StripeObject $shipping Shipping information for this Checkout Session .
* @ property null | \Stripe\StripeObject $shipping_address_collection When set , provides configuration for Checkout to collect a shipping address from a customer .
2021-12-08 09:29:40 +01:00
* @ property \Stripe\StripeObject [] $shipping_options The shipping rate options applied to this Session .
* @ property null | string | \Stripe\ShippingRate $shipping_rate The ID of the ShippingRate for Checkout Sessions in < code > payment </ code > mode .
* @ property null | string $status The status of the Checkout Session , one of < code > open </ code > , < code > complete </ code > , or < code > expired </ code >.
2021-03-01 10:07:03 +01:00
* @ property null | string $submit_type Describes the type of transaction being performed by Checkout in order to customize relevant text on the page , such as the submit button . < code > submit_type </ code > can only be specified on Checkout Sessions in < code > payment </ code > mode , but not Checkout Sessions in < code > subscription </ code > or < code > setup </ code > mode .
* @ property null | string | \Stripe\Subscription $subscription The ID of the subscription for Checkout Sessions in < code > subscription </ code > mode .
* @ property string $success_url The URL the customer will be directed to after the payment or subscription creation is successful .
2021-08-23 08:37:03 +02:00
* @ property \Stripe\StripeObject $tax_id_collection
2021-03-01 10:07:03 +01:00
* @ property null | \Stripe\StripeObject $total_details Tax and discount details for the computed total amount .
2021-08-23 08:37:03 +02:00
* @ property null | string $url The URL to the Checkout Session .
2021-03-01 10:07:03 +01:00
*/
class Session extends \Stripe\ApiResource
{
const OBJECT_NAME = 'checkout.session' ;
use \Stripe\ApiOperations\All ;
use \Stripe\ApiOperations\Create ;
use \Stripe\ApiOperations\NestedResource ;
use \Stripe\ApiOperations\Retrieve ;
const BILLING_ADDRESS_COLLECTION_AUTO = 'auto' ;
const BILLING_ADDRESS_COLLECTION_REQUIRED = 'required' ;
2021-08-23 08:37:03 +02:00
const MODE_PAYMENT = 'payment' ;
const MODE_SETUP = 'setup' ;
const MODE_SUBSCRIPTION = 'subscription' ;
2021-03-01 10:07:03 +01:00
const PAYMENT_STATUS_NO_PAYMENT_REQUIRED = 'no_payment_required' ;
const PAYMENT_STATUS_PAID = 'paid' ;
const PAYMENT_STATUS_UNPAID = 'unpaid' ;
2021-12-08 09:29:40 +01:00
const STATUS_COMPLETE = 'complete' ;
const STATUS_EXPIRED = 'expired' ;
const STATUS_OPEN = 'open' ;
2021-03-01 10:07:03 +01:00
const SUBMIT_TYPE_AUTO = 'auto' ;
const SUBMIT_TYPE_BOOK = 'book' ;
const SUBMIT_TYPE_DONATE = 'donate' ;
const SUBMIT_TYPE_PAY = 'pay' ;
2021-12-08 09:29:40 +01:00
/**
* @ param null | array $params
* @ param null | array | string $opts
*
* @ throws \Stripe\Exception\ApiErrorException if the request fails
*
* @ return \Stripe\Session the expired session
*/
public function expire ( $params = null , $opts = null )
{
$url = $this -> instanceUrl () . '/expire' ;
list ( $response , $opts ) = $this -> _request ( 'post' , $url , $params , $opts );
$this -> refreshFrom ( $response , $opts );
return $this ;
}
2021-03-01 10:07:03 +01:00
const PATH_LINE_ITEMS = '/line_items' ;
/**
* @ param string $id the ID of the session on which to retrieve the items
* @ param null | array $params
* @ param null | array | string $opts
*
* @ throws \Stripe\Exception\ApiErrorException if the request fails
*
* @ return \Stripe\Collection the list of items
*/
public static function allLineItems ( $id , $params = null , $opts = null )
{
return self :: _allNestedResources ( $id , static :: PATH_LINE_ITEMS , $params , $opts );
}
}