Payment Provider¶
- class odoo.addons.payment.models.payment_provider.PaymentProvider[source]¶
- _build_request_auth(**_kwargs)[source]¶
Set the basic HTTP Auth of the request.
This method serves as a hook to allow providers to build the request’s basic HTTP Auth.
- _build_request_headers(method, endpoint, payload, **_kwargs)[source]¶
Build the headers of the request.
This method serves as a hook to allow providers to build the request headers.
- _build_request_url(endpoint, **_kwargs)[source]¶
Build the URL of the request.
This method serves as a hook to allow providers to build the request URL.
- _compute_feature_support_fields()[source]¶
Compute the feature support fields based on the provider.
Feature support fields are used to specify which additional features are supported by a given provider. These fields are as follows:
support_express_checkout: Whether the “express checkout” feature is supported.Falseby default.support_manual_capture: Whether the “manual capture” feature is supported.Falseby default.support_refund: Which type of the “refunds” feature is supported:None,'full_only', or'partial'.Noneby default.support_tokenization: Whether the “tokenization feature” is supported.Falseby default.
For a provider to specify that it supports additional features, it must override this method and set the related feature support fields to the desired value on the appropriate
payment.providerrecords.- Returns
None
- _find_available_payment_methods(partner_id, *, currency_id=None, force_tokenization=False, is_express_checkout=False, report=None, **_kwargs)[source]¶
Find the providers’ payment methods available for the given payment context.
- Parameters
partner_id (int) – The partner making the payment, as a
res.partneridcurrency_id (int) – The payment currency, as a
res.currencyidforce_tokenization (bool) – Whether payment methods must support tokenization
is_express_checkout (bool) – Whether payment methods must support express checkout
report (dict) – The report into which availability statuses are to be logged
- Returns
The available payment methods
- Return type
payment.method
- _find_available_providers(company_id, partner_id, amount, *, currency_id=None, force_tokenization=False, is_express_checkout=False, is_validation=False, report=None, **kwargs)[source]¶
Find the providers available for the given payment context.
- Parameters
company_id (int) – The company to which providers must belong, as a
res.companyidpartner_id (int) – The partner making the payment, as a
res.partneridamount (float) – The amount to pay (
0for validation transactions)currency_id (int) – The payment currency, as a
res.currencyidforce_tokenization (bool) – Whether providers must allow tokenization
is_express_checkout (bool) – Whether providers must allow express checkout
is_validation (bool) – Whether the operation is a validation
report (dict) – The report into which availability statuses are to be logged
kwargs (dict) – Forwarded to
_is_tokenization_requiredand available to overrides
- Returns
The available providers
- Return type
payment.provider
- _find_available_tokens(partner_id, **_kwargs)[source]¶
Find the providers’ tokens available for the given payment context.
- Parameters
partner_id (int) – The partner making the payment, as a
res.partnerid- Returns
The available tokens
- Return type
payment.token
- _get_code()[source]¶
Return the code of the provider.
Note:
self.ensure_one()- Returns
The code of the provider.
- Return type
- _get_default_payment_method_codes()[source]¶
Return the default payment methods for this provider.
Note:
self.ensure_one()- Returns
The default payment method codes.
- Return type
- _get_pm_from_code(generic_code, mapping=None)[source]¶
Return the payment method with the given code linked to the provider.
If a mapping is given, the search uses the generic payment method code that corresponds to the given provider-specific code.
- _get_redirect_form_view(is_validation=False)[source]¶
Return the view of the template used to render the redirect form.
For a provider to return a different view depending on whether the operation is a validation, it must override this method and return the appropriate view.
Note:
self.ensure_one()- Parameters
is_validation (bool) – Whether the operation is a validation.
- Returns
The view of the redirect form template.
- Return type
record of
ir.ui.view
- _get_removal_values()[source]¶
Return the values to update a provider with when its module is uninstalled.
For a module to specify additional removal values, it must override this method and complete the generic values with its specific values.
- Returns
The removal values to update the removed provider with.
- Return type
- _get_supported_currencies()[source]¶
Return the supported currencies for the payment provider.
By default, all currencies are considered supported, including the inactive ones. For a provider to filter out specific currencies, it must override this method and return the subset of supported currencies.
Note:
self.ensure_one()- Returns
The supported currencies.
- Return type
res.currency
- _get_validation_amount()[source]¶
Return the amount to use for validation operations.
For a provider to support tokenization, it must override this method and return the validation amount. If it is
0, it is not necessary to create the override.Note:
self.ensure_one()- Returns
The validation amount.
- Return type
- _get_validation_currency()[source]¶
Return the currency to use for validation operations.
The validation currency must be supported by both the provider and the payment method. If the payment method is not passed, only the provider’s supported currencies are considered. If no suitable currency is found, the provider’s company’s currency is returned instead.
For a provider to support tokenization and specify a different validation currency, it must override this method and return the appropriate validation currency.
Note:
self.ensure_one()- Returns
The validation currency.
- Return type
recordset of
res.currency
- _is_tokenization_required(**_kwargs)[source]¶
Return whether tokenizing the transaction is required given its context.
For a module to make the tokenization required based on the payment context, it must override this method and return whether it is required.
- _parse_response_content(response, **_kwargs)[source]¶
Retrieve the JSON-formatted content of the response.
This method serves as a hook to allow providers to parse the response content.
- _parse_response_error(response)[source]¶
Retrieve the error message from the response.
This method serves as a hook to allow providers to parse the response’s error message.
- Parameters
response (requests.Response) – The response to parse.
- Returns
The error message.
- Return type
- _send_api_request(method, endpoint, *, params=None, data=None, json=None, reference=None, **kwargs)[source]¶
Send a request to the API.
Whenever possible, calls to this method should be wrapped in a try-except block to prevent the
ValidationErrorthat is raised when the request fails from bubbling up. Exceptions to this rule include calls from a controller that must return the error message to the client.Note:
self.ensure_one()- Parameters
method (str) – The HTTP method of the request.
endpoint (str) – The endpoint of the API to reach with the request.
params (dict) – The query string parameters of the request.
json (dict) – The JSON-formatted body of the request.
reference (str) – The reference of the transaction, if any.
kwargs (dict) – Provider-specific data forwarded to the specialized helper methods.
- Returns
The formatted content of the response.
- Return type
- Raises
ValidationError – If an HTTP error occurs.