Skip to content

module : sdk.payment_strategies.default_payment_strategy

Link to GitHub

Entities:

  1. DefaultPaymentStrategy

Class DefaultPaymentStrategy

extends: PaymentStrategy

is extended by: -

description

The DefaultPaymentStrategy class is an implementation of the PaymentStrategy. It defines and returns payment metadata for a given service client, taking into account free calls, concurrency, and various payment strategies. In fact, it is not an implementation of a payment strategy on its own, this class is used by default and selects a payment strategy from FreeCallPaymentStrategy, PaidCallPaymentStrategy and PrePaidPaymentStrategy.

attributes

  • concurrent_calls (int): The number of concurrent calls allowed.
  • concurrencyManager (ConcurrencyManager): An instance of the ConcurrencyManager class for managing concurrency.
  • channel (PaymentChannel): The payment channel used for a specific service call.

methods

__init__

Initializes a new instance of the class.

args:
  • concurrent_calls (int): The number of concurrent calls allowed. Defaults to 1.
returns:
  • None

set_concurrency_token

Sets the concurrency token for the concurrency manager.

args:
  • token (str): The token to be set.
returns:
  • None

set_channel

Sets a new channel object.

args:
  • channel (PaymentChannel): The channel to set for the DefaultPaymentStrategy object.
returns:
  • None

get_payment_metadata

Retrieves payment metadata for the specified service client. Depending on several conditions, creates an instance of one of the FreeCallPaymentStrategy, PaidCallPaymentStrategy and PrePaidPaymentStrategy classes and calls the method of the same name in it.

args:
  • service_client (ServiceClient): The service client object.
returns:
  • The payment metadata. (list[tuple[str, Any]])

get_concurrency_token_and_channel

Retrieves the concurrency token and channel for a given service client.

args:
  • service_client (ServiceClient): The service client instance.
returns:
  • The concurrency token and channel. (tuple[str, PaymentChannel])