mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-10-05 00:02:50 -04:00
114 lines
5.8 KiB
Ruby
114 lines
5.8 KiB
Ruby
# File generated from our OpenAPI spec
|
|
# frozen_string_literal: true
|
|
|
|
module Stripe
|
|
class CustomerSessionService < StripeService
|
|
class CreateParams < Stripe::RequestParams
|
|
class Components < Stripe::RequestParams
|
|
class BuyButton < Stripe::RequestParams
|
|
# Whether the buy button is enabled.
|
|
attr_accessor :enabled
|
|
|
|
def initialize(enabled: nil)
|
|
@enabled = enabled
|
|
end
|
|
end
|
|
|
|
class PaymentElement < Stripe::RequestParams
|
|
class Features < Stripe::RequestParams
|
|
# A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the Payment Element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list.
|
|
#
|
|
# If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"].
|
|
attr_accessor :payment_method_allow_redisplay_filters
|
|
# Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled`.
|
|
attr_accessor :payment_method_redisplay
|
|
# Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `3`.
|
|
attr_accessor :payment_method_redisplay_limit
|
|
# Controls whether the Payment Element displays the option to remove a saved payment method. This parameter defaults to `disabled`.
|
|
#
|
|
# Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods).
|
|
attr_accessor :payment_method_remove
|
|
# Controls whether the Payment Element displays a checkbox offering to save a new payment method. This parameter defaults to `disabled`.
|
|
#
|
|
# If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`.
|
|
attr_accessor :payment_method_save
|
|
# When using PaymentIntents and the customer checks the save checkbox, this field determines the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value used to confirm the PaymentIntent.
|
|
#
|
|
# When using SetupIntents, directly configure the [`usage`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-usage) value on SetupIntent creation.
|
|
attr_accessor :payment_method_save_usage
|
|
|
|
def initialize(
|
|
payment_method_allow_redisplay_filters: nil,
|
|
payment_method_redisplay: nil,
|
|
payment_method_redisplay_limit: nil,
|
|
payment_method_remove: nil,
|
|
payment_method_save: nil,
|
|
payment_method_save_usage: nil
|
|
)
|
|
@payment_method_allow_redisplay_filters = payment_method_allow_redisplay_filters
|
|
@payment_method_redisplay = payment_method_redisplay
|
|
@payment_method_redisplay_limit = payment_method_redisplay_limit
|
|
@payment_method_remove = payment_method_remove
|
|
@payment_method_save = payment_method_save
|
|
@payment_method_save_usage = payment_method_save_usage
|
|
end
|
|
end
|
|
# Whether the Payment Element is enabled.
|
|
attr_accessor :enabled
|
|
# This hash defines whether the Payment Element supports certain features.
|
|
attr_accessor :features
|
|
|
|
def initialize(enabled: nil, features: nil)
|
|
@enabled = enabled
|
|
@features = features
|
|
end
|
|
end
|
|
|
|
class PricingTable < Stripe::RequestParams
|
|
# Whether the pricing table is enabled.
|
|
attr_accessor :enabled
|
|
|
|
def initialize(enabled: nil)
|
|
@enabled = enabled
|
|
end
|
|
end
|
|
# Configuration for buy button.
|
|
attr_accessor :buy_button
|
|
# Configuration for the Payment Element.
|
|
attr_accessor :payment_element
|
|
# Configuration for the pricing table.
|
|
attr_accessor :pricing_table
|
|
|
|
def initialize(buy_button: nil, payment_element: nil, pricing_table: nil)
|
|
@buy_button = buy_button
|
|
@payment_element = payment_element
|
|
@pricing_table = pricing_table
|
|
end
|
|
end
|
|
# Configuration for each component. Exactly 1 component must be enabled.
|
|
attr_accessor :components
|
|
# The ID of an existing customer for which to create the Customer Session.
|
|
attr_accessor :customer
|
|
# Specifies which fields in the response should be expanded.
|
|
attr_accessor :expand
|
|
|
|
def initialize(components: nil, customer: nil, expand: nil)
|
|
@components = components
|
|
@customer = customer
|
|
@expand = expand
|
|
end
|
|
end
|
|
|
|
# Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.
|
|
def create(params = {}, opts = {})
|
|
request(
|
|
method: :post,
|
|
path: "/v1/customer_sessions",
|
|
params: params,
|
|
opts: opts,
|
|
base_address: :api
|
|
)
|
|
end
|
|
end
|
|
end
|