shop.payment_providers.abstract¶
Module Contents¶
Classes¶
Abstract base class for all payment providers in the ViUR Shop. |
Attributes¶
- shop.payment_providers.abstract.logger¶
- class shop.payment_providers.abstract.PaymentProviderAbstract(*, image_path=None, is_available=None)¶
Bases:
viur.core.prototypes.instanced_module.InstancedModule,viur.core.Module,abc.ABCAbstract base class for all payment providers in the ViUR Shop.
Provides a standardized interface for implementing different payment methods, including methods for checkout, charging, and handling payment states.
Subclasses must implement the required methods to integrate specific payment providers.
- Parameters:
image_path (str | None)
is_available (shop.types.t.Callable[[shop.types.t.Self, shop.types.SkeletonInstance_T[viur.shop.skeletons.order.OrderSkel] | None], bool] | None)
- abstract property name: str¶
Define the internal name of the payment provider
- Return type:
str
- property title: viur.core.translate¶
Define the external title of the payment provider
- Return type:
viur.core.translate
- property description: viur.core.translate¶
Define the description of the payment provider
- Return type:
viur.core.translate
- shop: shop.shop.Shop¶
Reference to the main
Shopinstance.
- is_available(order_skel)¶
- Parameters:
order_skel (shop.types.SkeletonInstance_T[viur.shop.skeletons.order.OrderSkel] | None)
- Return type:
bool
- can_checkout(order_skel)¶
Check if a checkout process can be started
An empty list means not error, a list with errors rejects the checkout start.
- Parameters:
order_skel (shop.types.SkeletonInstance_T[viur.shop.skeletons.order.OrderSkel] | None)
- Return type:
list[shop.types.ClientError]
- abstract checkout(order_skel)¶
- Parameters:
order_skel (viur.core.skeleton.SkeletonInstance)
- Return type:
shop.types.t.Any
- get_checkout_start_data(order_skel)¶
- Parameters:
order_skel (viur.core.skeleton.SkeletonInstance)
- Return type:
shop.types.t.Any
- can_order(order_skel)¶
- Parameters:
order_skel (viur.core.skeleton.SkeletonInstance)
- Return type:
list[shop.types.ClientError]
- abstract charge()¶
- abstract check_payment_state(order_skel)¶
Check the payment state from the PaymentProvider API/service
Access
OrderSkel.is_paidto get the payment state of an order.- Parameters:
order_skel (viur.core.skeleton.SkeletonInstance)
- Return type:
tuple[bool, shop.types.t.Any]
- abstract return_handler()¶
- abstract webhook()¶
- abstract get_debug_information()¶
- _append_payment_to_order_skel(order_skel, payment=None)¶
Append payment data to an order
Append payment_provider name and creationdate by default. Write safely in a transaction.
- Parameters:
order_skel (shop.types.SkeletonInstance_T[viur.shop.skeletons.order.OrderSkel])
payment (dict[str, shop.types.t.Any] | None)
- Return type:
shop.types.SkeletonInstance_T[viur.shop.skeletons.order.OrderSkel]
- serialize_for_api(order_skel)¶
Serialize this Payment Provder for the API
Used by
Order.get_payment_providers()andOrder.payment_providers_list()Can be subclasses to expose more information via API.- Parameters:
order_skel (shop.types.SkeletonInstance_T[viur.shop.skeletons.order.OrderSkel] | None)
- Return type: