支付交易¶
- class odoo.addons.payment.models.payment_transaction.PaymentTransaction[源代码]¶
- _compute_reference(provider_code, prefix=None, separator='-', **kwargs)[源代码]¶
为交易计算唯一参考编号。
如果不存在具有相同前缀的其他交易,则参考编号对应于前缀。否则,它遵循以下模式:
{computed_prefix}{separator}{sequence_number}
,其中:{computed_prefix}
是:提供的自定义前缀(如果有)。
如果未填写自定义前缀但填写了 kwargs,则为
_compute_reference_prefix()
的计算结果。'tx-{datetime}'
如果既未填写自定义前缀也未填写 kwargs。
{separator}
是用于分隔前缀和序列号的字符串。{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_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(amount_to_capture=None)[源代码]¶
请求处理交易的提供商捕获付款。
对于部分捕获,创建一个链接到源交易的子交易。
为了支持授权,提供商必须覆盖此方法并通过 API 请求捕获付款。
注意:
self.ensure_one()
- 参数
amount_to_capture (float) – 要捕获的金额。
- 返回
创建的捕获子交易(如果有)。
- 返回类型
payment.transaction
- _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) – 要退款的金额。
- 返回
为处理退款请求而创建的退款交易。
- 返回类型
payment.transaction
的记录集
- _send_void_request(amount_to_void=None)[源代码]¶
请求处理交易的提供商取消支付。
对于部分取消,创建一个与源交易相关联的子交易。
为了使提供商支持授权,它必须重写此方法并发起 API 请求以取消支付。
注意:
self.ensure_one()
- 参数
amount_to_void (float) – 要取消的金额。
- 返回
如果存在,则为创建的取消子交易。
- 返回类型
payment.transaction