付款交易¶
- class odoo.addons.payment.models.payment_transaction.PaymentTransaction[源代码]¶
- _compute_reference(provider_code, prefix=None, separator='-', **kwargs)[源代码]¶
为交易计算一个唯一的参考编号。
如果没有其他具有该前缀的交易,则参考文本对应于前缀。否则,它遵循模式
{computed_prefix}{separator}{sequence_number}
,其中:{computed_prefix}
is:如有提供,为所提供的自定义前缀。
如果自定义前缀未填充,但kwargs已填充,则为
_compute_reference_prefix()
的计算结果。如果自定义前缀和kwargs都未填写,则为
'tx-{datetime}'
。
{separator}
is the string that separates the prefix from the sequence number.{sequence_number}
是具有相同前缀的引用序列中的下一个整数。如果只有一个匹配的引用,序列从1
开始。
Example
给定自定义前缀
'example'
,该前缀与现有参考文献不匹配,完整的参考文献将是'example'
。给定自定义前缀
'example'
,它与现有的参考'example'
匹配,并且自定义分隔符'-'
,完整的参考将是'example-1'
。给定 kwargs
{'invoice_ids': [1, 2]}
,自定义分隔符'-'
和无自定义前缀,如果没有相同前缀的现有参考,完整参考将是'INV1-INV2'`(或类似),或者如果有 `n
个现有参考具有相同前缀,则为'INV1-INV2-n'
。
- _compute_reference_prefix(provider_code, separator, **values)[源代码]¶
从交易值计算参考前缀。
注意:此方法应在sudo模式下调用,以便访问交易值中引用的文档(发票、销售订单)。
- _get_post_processing_values()[源代码]¶
返回一个字典,用于显示交易状态的值。
如果要提供商处理交易状态显示,则必须重写此方法并返回值字典。提供商特定值优先于通用后处理值字典。
返回的字典包含以下条目:
provider_code
: The code of the provider.reference
: The reference of the transaction.amount
: The rounded amount of the transaction.currency_id
:交易的货币,作为`res.currency`的id。state
: 交易状态:`draft`(草稿)、`pending`(待处理)、`authorized`(已授权)、`done`(已完成)、`cancel`(已取消)或`error`(错误)。state_message
: The information message about the state.operation
: The operation of the transaction.is_post_processed
: Whether the transaction has already been post-processed.landing_route
: The route the user is redirected to after the transaction.额外的供应商特定条目。
注意:
self.ensure_one()
- 返回
处理值的字典。
- 返回类型
- _get_specific_create_values(provider_code, values)[源代码]¶
使用提供商特定的值来完成
create
方法的值。如果供应商要添加自己的创建值,它必须覆盖此方法并返回值字典。供应商特定值优先于通用创建值字典的值。
- _get_specific_processing_values(processing_values)[源代码]¶
返回一个字典,其中包含用于处理交易的特定于提供商的值。
为了让提供商添加自己的处理值,它必须覆盖此方法并返回一个基于此方法返回的通用值的提供商特定值字典。提供商特定值优先于通用处理值字典中的值。
- _get_specific_rendering_values(processing_values)[源代码]¶
返回一个字典,其中包含用于呈现重定向表单的特定于提供商的值。
如果供应商要添加自己的渲染值,它必须重写此方法并返回一个字典,其中包含基于处理值的供应商特定值(包括供应商特定处理值)。
- _get_tx_from_notification_data(provider_code, notification_data)[源代码]¶
根据通知数据查找交易。
为了处理交易,提供商必须重写此方法并返回与通知数据匹配的交易。
- _process_notification_data(notification_data)[源代码]¶
根据通知数据更新交易状态和提供商参考。
通常不应直接调用此方法。正确的方法是在接收到通知数据时调用
_handle_notification_data()
。为了处理交易,提供商必须重写此方法并处理通知数据。
注意:
self.ensure_one()
- 参数
notification_data (dict) – 供应商发送的通知数据。
- 返回
无
- _send_capture_request()[源代码]¶
请求处理交易的提供商进行付款捕获。
如果一个提供商要支持授权,它必须重写此方法并发出 API 请求以捕获付款。
注意:
self.ensure_one()
- 返回
无
- _send_payment_request()[源代码]¶
请求处理交易的提供商进行付款。
此方法专门用于通过令牌进行付款,对应于
online_token
和offline
交易的operation
字段。如果提供商支持令牌化,则必须重写此方法并进行 API 请求以进行付款。
注意:
self.ensure_one()
- 返回
无
- _send_refund_request(amount_to_refund=None)[源代码]¶
请求处理交易的供应商进行退款。
如果提供商支持退款,则必须重写此方法并发出 API 请求以进行退款。
注意:
self.ensure_one()
- 参数
amount_to_refund (float) – The amount to be refunded.
- 返回
创建的退款交易以处理退款请求。
- 返回类型
recordset of
payment.transaction
- _send_void_request()[源代码]¶
请求处理交易的服务提供商取消支付。
为了支持授权,提供商必须重写此方法并向API发出请求以取消付款。
注意:
self.ensure_one()
- 返回
无
- _set_authorized(state_message=None)[源代码]¶
将交易状态更新为
authorized
。- 参数
state_message (str) – 将交易设置为状态
authorized
的原因。- 返回
更新后的交易。
- 返回类型
recordset of
payment.transaction
- _set_canceled(state_message=None)[源代码]¶
将交易状态更新为
cancel
。- 参数
state_message (str) – 将交易设置为状态
cancel
的原因。- 返回
更新后的交易。
- 返回类型
recordset of
payment.transaction
- _set_done(state_message=None)[源代码]¶
将交易状态更新为
done
。- 参数
state_message (str) – 将交易设置为状态
done
的原因。- 返回
更新后的交易。
- 返回类型
recordset of
payment.transaction