1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
# -*- coding: utf-8 -*-
# File generated from our OpenAPI spec
from stripe._customer_session import CustomerSession
from stripe._request_options import RequestOptions
from stripe._stripe_service import StripeService
from typing import List, cast
from typing_extensions import Literal, NotRequired, TypedDict
class CustomerSessionService(StripeService):
class CreateParams(TypedDict):
components: "CustomerSessionService.CreateParamsComponents"
"""
Configuration for each component. Exactly 1 component must be enabled.
"""
customer: str
"""
The ID of an existing customer for which to create the Customer Session.
"""
expand: NotRequired[List[str]]
"""
Specifies which fields in the response should be expanded.
"""
class CreateParamsComponents(TypedDict):
buy_button: NotRequired[
"CustomerSessionService.CreateParamsComponentsBuyButton"
]
"""
Configuration for buy button.
"""
payment_element: NotRequired[
"CustomerSessionService.CreateParamsComponentsPaymentElement"
]
"""
Configuration for the Payment Element.
"""
pricing_table: NotRequired[
"CustomerSessionService.CreateParamsComponentsPricingTable"
]
"""
Configuration for the pricing table.
"""
class CreateParamsComponentsBuyButton(TypedDict):
enabled: bool
"""
Whether the buy button is enabled.
"""
class CreateParamsComponentsPaymentElement(TypedDict):
enabled: bool
"""
Whether the Payment Element is enabled.
"""
features: NotRequired[
"CustomerSessionService.CreateParamsComponentsPaymentElementFeatures"
]
"""
This hash defines whether the Payment Element supports certain features.
"""
class CreateParamsComponentsPaymentElementFeatures(TypedDict):
payment_method_allow_redisplay_filters: NotRequired[
List[Literal["always", "limited", "unspecified"]]
]
"""
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"].
"""
payment_method_redisplay: NotRequired[Literal["disabled", "enabled"]]
"""
Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled`.
"""
payment_method_redisplay_limit: NotRequired[int]
"""
Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `3`.
"""
payment_method_remove: NotRequired[Literal["disabled", "enabled"]]
"""
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).
"""
payment_method_save: NotRequired[Literal["disabled", "enabled"]]
"""
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`.
"""
payment_method_save_usage: NotRequired[
Literal["off_session", "on_session"]
]
"""
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.
"""
class CreateParamsComponentsPricingTable(TypedDict):
enabled: bool
"""
Whether the pricing table is enabled.
"""
def create(
self,
params: "CustomerSessionService.CreateParams",
options: RequestOptions = {},
) -> CustomerSession:
"""
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.
"""
return cast(
CustomerSession,
self._request(
"post",
"/v1/customer_sessions",
base_address="api",
params=params,
options=options,
),
)
async def create_async(
self,
params: "CustomerSessionService.CreateParams",
options: RequestOptions = {},
) -> CustomerSession:
"""
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.
"""
return cast(
CustomerSession,
await self._request_async(
"post",
"/v1/customer_sessions",
base_address="api",
params=params,
options=options,
),
)
|