支付提供商

class odoo.addons.payment.models.payment_provider.PaymentProvider[源代码]
_compute_feature_support_fields()[源代码]

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

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

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

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

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

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

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

返回

_get_compatible_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) – 可选数据。此参数在此处未使用。

返回

兼容的提供商。

返回类型

payment.provider

_get_redirect_form_view(is_validation=False)[源代码]

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

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

注意:self.ensure_one()

参数

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

返回

重定向表单模板的视图。

返回类型

ir.ui.view 的记录

_get_validation_amount()[源代码]

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

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

注意:self.ensure_one()

返回

验证金额。

返回类型

float

_get_validation_currency()[源代码]

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

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

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

注意:self.ensure_one()

返回

验证货币。

返回类型

res.currency 的记录集

_is_tokenization_required(**kwargs)[源代码]

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

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

参数

kwargs (dict) – 支付上下文。此参数在此处未使用。

返回

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

返回类型

bool

_should_build_inline_form(is_validation=False)[源代码]

返回是否应实例化内联支付表单。

为了使提供商同时处理直接支付和带重定向的支付,它必须重写此方法,并根据操作(在线支付或验证)返回是否应实例化内联支付表单(即,如果支付应为直接支付)。

参数

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

返回

是否应实例化内联表单。

返回类型

bool

_get_removal_values()[源代码]

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

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

返回

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

返回类型

dict