支付提供商

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

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

功能支持字段用于指定给定提供商支持的其他功能。这些字段如下:

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

  • support_fees: 是否支持“额外费用”功能。默认为 False

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

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

  • support_tokenization: 是否支持“tokenization功能”。默认为`False`。

对于提供者来指定其支持额外功能,必须重写此方法,并在适当的 payment.provider 记录上将相关功能支持字段设置为所需值。

返回

_compute_fees(amount, currency, country)[源代码]

计算交易费用。

计算基于字段 fees_dom_fixed, fees_dom_var, fees_int_fixedfees_int_var,并使用公式执行计算 fees = (amount * variable / 100.0 + fixed) / (1 - variable / 100.0) 其中 fixedvariable 的值取自国内 (dom) 或国际 (int) 字段,取决于国家是否与公司的国家匹配。

如果提供商要基于不同的变量进行计算,或使用不同的公式,它必须重写此方法并返回结果费用。

参数
  • amount (float) – 交易的支付金额。

  • currency (recordset) – 交易的货币,以 res.currency 记录的形式。

  • country (recordset) – 客户国家,作为 res.country 记录。

返回

计算出的费用。

返回类型

float

_compute_view_configuration_fields()[源代码]

根据提供商计算视图配置字段。

视图配置字段用于从支付提供商的表单视图中隐藏特定元素(笔记本页、字段等)。这些字段默认设置为 True,具体如下:

  • show_credentials_page: Whether the “Credentials” notebook page should be shown.

  • show_allow_tokenization: 是否显示 allow_tokenization 字段。

  • show_allow_express_checkout: 是否显示 allow_express_checkout 字段。

  • show_payment_icon_ids: 是否显示 payment_icon_ids 字段。

  • show_pre_msg:是否显示`pre_msg`字段。

  • show_pending_msg:是否显示`pending_msg`字段。

  • show_auth_msg: 是否显示 auth_msg 字段。

  • show_done_msg:是否显示`done_msg`字段。

  • show_cancel_msg: 是否显示 cancel_msg 字段。

对于一个提供者来隐藏表单视图的特定元素,它必须重写此方法,并在适当的 payment.provider 记录上将相关的视图配置字段设置为 False

返回

_get_compatible_providers(company_id, partner_id, amount, currency_id=None, force_tokenization=False, is_express_checkout=False, is_validation=False, **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) – 操作是否为验证。

  • kwargs (dict) – 可选数据。此参数在此处未使用。

返回

兼容的支付提供商。

返回类型

支付提供商 payment.provider 的记录集

_get_redirect_form_view(is_validation=False)[源代码]

返回用于呈现重定向表单的模板视图。

如果提供商要根据操作是验证还是其他来返回不同的视图,则必须覆盖此方法并返回相应的视图。

注意: self.ensure_one()

参数

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

返回

重定向表单模板的视图。

返回类型

record of ir.ui.view

_get_validation_amount()[源代码]

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

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

注意: self.ensure_one()

返回

验证金额。

返回类型

float

_get_validation_currency()[源代码]

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

为了支持令牌化,提供商必须重写此方法并返回验证货币。如果验证金额为 0 ,则不需要创建重写。

注意: self.ensure_one()

返回

验证货币。

返回类型

recordset of res.currency

_is_tokenization_required(**kwargs)[源代码]

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

如果一个模块需要根据交易上下文使令牌化成为必需,它必须重写此方法并返回是否需要。

参数

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

返回

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

返回类型

bool

_should_build_inline_form(is_validation=False)[源代码]

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

如果一个提供商要处理直接支付和重定向支付,它必须重写此方法并根据操作(在线支付或验证)返回是否应该实例化内联支付表单(即是否应该进行直接支付)。

参数

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

返回

是否应该实例化内联表单。

返回类型

bool

_get_removal_values()[源代码]

返回卸载模块时更新提供程序的值。

如果一个模块需要指定额外的删除值,它必须重写此方法,并使用其特定值完成通用值。

返回

更新已删除的提供商的移除值。

返回类型

dict