支付交易¶
- class odoo.addons.payment.models.payment_transaction.PaymentTransaction[源代码]¶
- _apply_updates(payment_data)[源代码]¶
根据从提供商收到的支付数据更新交易。
更新通常包括支付状态、提供商参考和所选支付方法。
不应直接调用此方法;支付数据应通过
_process()处理。提供商必须重写此方法以根据支付数据更新交易。
注意:来自
_process()的self.ensure_one()- 参数
payment_data (dict) – 提供商发送的支付数据。
- 返回
无
- _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(separator, **values)[源代码]¶
根据交易值计算参考前缀。
注意:此方法应在 sudo 模式下调用,以便访问交易值中引用的文档(如发票、销售订单)。
- _extract_amount_data(payment_data)[源代码]¶
从支付数据中提取金额、货币和舍入精度。
提供商必须重写此方法以从支付数据中解析金额数据。如果提供商返回
None,则跳过金额验证。
- _extract_token_values(payment_data)[源代码]¶
从支付数据中提取令牌的创建值。
提供商可以重写此方法以基于支付数据提供自己的令牌数据。
注意:来自 :meth:
_tokenize的 self.ensure_one()
- _get_specific_create_values(provider_code, values)[源代码]¶
使用提供商特定的值完成
create方法的值。为了添加自己的创建值,提供商必须覆盖此方法并返回一个值字典。提供商特定的值优先于通用创建值字典中的值。
- _get_specific_processing_values(processing_values)[源代码]¶
返回用于处理交易的提供商特定值的字典。
为了使提供商添加自己的处理值,它必须重写此方法,并基于此方法返回的通用值返回一个包含提供商特定值的字典。提供商特定值优先于通用处理值字典中的值。
- _get_specific_rendering_values(processing_values)[源代码]¶
返回用于渲染重定向表单的提供商特定值的字典。
为了使提供商添加自己的渲染值,它必须重写此方法,并基于处理值(包括提供商特定处理值)返回一个包含提供商特定值的字典。
- _send_api_request(method, endpoint, *, params=None, data=None, json=None, **kwargs)[源代码]¶
向 API 发送请求。
此方法用作辅助工具以:
将交易参考传递给提供商的
_send_api_request()方法。如果请求失败,将交易状态设置为
error,并将异常消息作为state_message。
注意:
self.ensure_one()
- _send_capture_request()[源代码]¶
请求处理交易的提供商发送捕获请求。
提供商要支持授权,必须重写此方法并发送 API 请求以捕获支付。
注意:来自
_capture()的self.ensure_one()- 返回
无
- _send_payment_request()[源代码]¶
请求处理交易的提供商发送令牌支付请求。
此方法专门用于通过令牌进行付款,对应于
online_token和offline交易的operation字段。提供商要支持令牌化,必须重写此方法并发送 API 请求以进行支付。
注意:来自
_charge_with_token()的self.ensure_one()- 返回
无
- _send_refund_request()[源代码]¶
请求处理交易的提供商发送退款请求。
提供商要支持退款,必须重写此方法并发送 API 请求以进行退款。
注意:来自
_refund()的self.ensure_one()- 返回
无
- _send_void_request()[源代码]¶
请求处理交易的提供商发送作废请求。
提供商要支持授权,必须重写此方法并发送 API 请求以使支付作废。
注意:来自
_void()的self.ensure_one()- 返回
无