支付提供商

class odoo.addons.payment.models.payment_provider.PaymentProvider[源代码]
_build_request_auth(**_kwargs)[源代码]

设置请求的基本 HTTP 认证。

此方法作为钩子,允许提供商构建请求的基本 HTTP 认证。

参数

_kwargs (dict) – 提供商特定数据。

返回

基本 HTTP 认证(如果有)。

返回类型

tuple

_build_request_headers(method, endpoint, payload, **_kwargs)[源代码]

构建请求的头部。

此方法作为钩子,允许提供商构建请求头部。

参数
  • method (str) – 请求的 HTTP 方法。

  • endpoint (str) – 请求要到达的 API 端点。

  • payload (dict) – 请求的有效载荷。

  • _kwargs (dict) – 提供商特定数据。

返回

请求头部。

返回类型

dict

_build_request_url(endpoint, **_kwargs)[源代码]

构建请求的 URL。

此方法作为钩子,允许提供商构建请求 URL。

参数
  • endpoint (str) – 请求要到达的 API 端点。

  • _kwargs (dict) – 提供商特定数据。

返回

请求 URL。

返回类型

str

_compute_feature_support_fields()[源代码]

根据提供商计算功能支持字段。

功能支持字段用于指定某个提供商支持哪些附加功能。这些字段如下:

  • support_express_checkout :是否支持“快速结账”功能,默认为 False 。

  • support_manual_capture :是否支持“手动捕获”功能,默认为 False 。

  • support_refund:支持哪种类型的“退款”功能:None、'full_only' 或 'partial'。默认为 None。

  • support_tokenization :是否支持“令牌化功能”,默认为 False 。

为了指定某个提供商支持附加功能,它必须重写此方法,并在适当的 payment.provider 记录上将相关功能支持字段设置为所需的值。

返回

无

_find_available_payment_methods(partner_id, *, currency_id=None, force_tokenization=False, is_express_checkout=False, report=None, **_kwargs)[源代码]

查找在给定支付上下文中可用的提供商支付方式。

参数
  • partner_id (int) – 进行支付的合作伙伴,以 res.partner ID 表示

  • currency_id (int) – 支付货币,以 res.currency ID 表示

  • force_tokenization (bool) – 支付方式是否必须支持令牌化

  • is_express_checkout (bool) – 支付方式是否必须支持快速结账

  • report (dict) – 用于记录可用性状态的报告

返回

可用的支付方式

返回类型

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)[源代码]

查找在给定支付上下文中可用的提供商。

参数
  • company_id (int) – 提供商必须所属的公司,以 res.company ID 表示

  • partner_id (int) – 进行支付的合作伙伴,以 res.partner ID 表示

  • amount (float) – 要支付的金额(验证交易时为 0)

  • currency_id (int) – 支付货币,以 res.currency ID 表示

  • force_tokenization (bool) – 提供商是否必须允许令牌化

  • is_express_checkout (bool) – 提供商是否必须允许快速结账

  • is_validation (bool) – 该操作是否为验证

  • report (dict) – 用于记录可用性状态的报告

  • kwargs (dict) – 转发给 _is_tokenization_required,并可供覆盖使用

返回

可用的提供商

返回类型

payment.provider

_find_available_tokens(partner_id, **_kwargs)[源代码]

查找在给定支付上下文中可用的提供商令牌。

参数

partner_id (int) – 进行支付的合作伙伴,以 res.partner ID 表示

返回

可用的令牌

返回类型

payment.token

_get_code()[源代码]

返回提供商的代码。

注意:self.ensure_one()

返回

提供商的代码。

返回类型

str

_get_default_payment_method_codes()[源代码]

返回此提供商的默认付款方式。

注意:self.ensure_one()

返回

默认付款方式代码。

返回类型

set

_get_pm_from_code(generic_code, mapping=None)[源代码]

返回与提供商关联的具有给定代码的支付方式。

如果提供了映射,搜索将使用与给定提供商特定代码对应的通用支付方式代码。

参数
  • generic_code (str) – 要获取的支付方式的提供商特定代码

  • mapping (dict) – 通用支付方式代码到提供商特定代码的非穷尽映射

返回

匹配的支付方式(如果有)

返回类型

payment.method

_get_redirect_form_view(is_validation=False)[源代码]

返回用于渲染重定向表单的模板视图。

如果提供商需要根据操作是否为验证返回不同的视图,则必须覆盖此方法并返回适当的视图。

注意:self.ensure_one()

参数

is_validation (bool) – 操作是否为验证。

返回

重定向表单模板的视图。

返回类型

ir.ui.view 的记录

_get_provider_domain(provider_code, **_kwargs)[源代码]

返回付款提供商域。

参数
  • provider_code (str) – 要搜索的提供商代码。

  • _kwargs (dict) – 附加关键字参数。

返回

搜索提供商的域。

返回类型

list[tuple]

_get_removal_values()[源代码]

当其模块卸载时,返回用于更新提供商的值。

为了使模块指定额外的移除值,它必须重写此方法,并用其特定值补充通用值。

返回

用于更新已移除提供商的移除值。

返回类型

dict

_get_supported_currencies()[源代码]

返回付款提供商支持的货币。

默认情况下,所有货币(包括非活跃货币)都被视为受支持。如果提供商要过滤掉特定货币,必须重写此方法并返回受支持货币的子集。

注意:self.ensure_one()

返回

支持的货币。

返回类型

res.currency

_get_validation_amount()[源代码]

返回用于验证操作的金额。

为了支持令牌化,提供商必须覆盖此方法并返回验证金额。如果金额为 0 ,则无需创建覆盖。

注意:self.ensure_one()

返回

验证金额。

返回类型

float

_get_validation_currency()[源代码]

返回用于验证操作的货币。

验证货币必须同时被提供商和支付方式支持。如果未传递支付方式,则仅考虑提供商支持的货币。如果未找到合适的货币,则返回提供商公司的货币。

为了使提供商支持令牌化并指定不同的验证货币,它必须重写此方法并返回适当的验证货币。

注意:self.ensure_one()

返回

验证货币。

返回类型

res.currency 的记录集

_is_tokenization_required(**_kwargs)[源代码]

根据交易上下文返回是否需要对交易进行令牌化。

为了使模块基于支付上下文要求令牌化,它必须重写此方法并返回是否需要令牌化。

参数

_kwargs (dict) – 支付上下文

返回

是否需要对交易进行令牌化

返回类型

bool

_parse_response_content(response, **_kwargs)[源代码]

检索响应的 JSON 格式内容。

此方法用作钩子,允许提供商解析响应内容。

参数
  • response (requests.Response) – 要解析的响应。

  • _kwargs (dict) – 提供商特定数据。

返回

响应内容。

返回类型

dict

_parse_response_error(response)[源代码]

从响应中检索错误消息。

此方法用作钩子,允许提供商解析响应的错误消息。

参数

response (requests.Response) – 要解析的响应。

返回

错误消息。

返回类型

str

_send_api_request(method, endpoint, *, params=None, data=None, json=None, reference=None, **kwargs)[源代码]

向 API 发送请求。

尽可能将此方法的调用包装在 try-except 块中,以防止请求失败时引发的 ValidationError 向上传播。此规则的例外情况包括必须将错误消息返回给客户端的控制器调用。

注意:self.ensure_one()

参数
  • method (str) – 请求的 HTTP 方法。

  • endpoint (str) – 请求要到达的 API 端点。

  • params (dict) – 请求的查询字符串参数。

  • data (dict|str) – 请求的正文。

  • json (dict) – 请求的 JSON 格式正文。

  • reference (str) – 交易的参考(如果有)。

  • kwargs (dict) – 转发给专门辅助方法的提供商特定数据。

返回

响应的格式化内容。

返回类型

dict|str

引发

ValidationError – 如果发生 HTTP 错误。