付款交易?

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() 的計算結果。

    • 如果自定義前綴和kwargs都未填寫,則為 'tx-{datetime}' 。

  • {separator} 是將前綴與序列號分開的字符串。

  • {sequence_number} 是具有相同前綴的參考文獻序列中的下一個整數。如果只有一個匹配的參考文獻,則序列從 1 開始。

Example

  • 假設自定義前綴為 'example' ,并且沒有與現有參考文獻匹配,完整的參考文獻將是 'example' 。

  • 假設自定義前綴為 'example' ,與現有參考文本 'example' 匹配,并且自定義分隔符為 '-' ,則完整的參考文本將為 'example-1' 。

  • 給定kwargs {'invoice_ids': [1, 2]} ,自定義分隔符 '-' 和無自定義前綴,如果沒有相同前綴的現有引用,則完整引用將是 'INV1-INV2' (或類似),否則將是 'INV1-INV2-n' ,其中 n 是具有相同前綴的現有引用數。

參數
  • provider_code (str) – 處理交易的服務提供商代碼。

  • prefix (str) – 用于計算完整參考的自定義前綴。

  • separator (str) – 用于將前綴與后綴分隔的自定義分隔符。

  • kwargs (dict) – 如果沒有提供自定義前綴,則傳遞給 _compute_reference_prefix() 的可選值。

返回

交易的唯一參考編號。

返回類型

str

_compute_reference_prefix(provider_code, separator, **values)[源代碼]?

從交易值計算參考前綴。

注意:此方法應在sudo模式下調用,以便訪問交易值中引用的文檔(發票、銷售訂單)。

參數
  • provider_code (str) – 處理交易的服務提供商代碼。

  • separator (str) – 用于分隔計算出的參考前綴的各個部分的自定義分隔符。

  • values (dict) – 用于計算參考前綴的交易值。

返回

計算出的參考前綴。

返回類型

str

_get_post_processing_values()[源代碼]?

返回一個字典,用于顯示交易狀態的值。

如果要提供商處理交易狀態顯示,則必須重寫此方法并返回值字典。提供商特定值優先于通用后處理值字典。

返回的字典包含以下條目:

  • provider_code : 供應商代碼。

  • reference : 交易的參考。

  • amount : 交易的四舍五入金額。

  • currency_id : 交易貨幣,以 res.currency id 形式表示。

  • state : 交易狀態: 草稿 , 待處理 , 已授權 , 已完成 , 已取消錯誤 。

  • state_message : 狀態信息的說明消息。

  • operation : 交易的操作。

  • is_post_processed : 該交易是否已經進行了后處理。

  • landing_route : 交易完成后用戶被重定向到的路由。

  • 額外的供應商特定條目。

注意: self.ensure_one()

返回

處理值的字典。

返回類型

dict

_get_specific_create_values(provider_code, values)[源代碼]?

使用提供商特定的值來完成 create 方法的值。

如果供應商要添加自己的創建值,它必須覆蓋此方法并返回值字典。供應商特定值優先于通用創建值字典的值。

參數
  • provider_code (str) – 處理交易的服務提供商代碼。

  • values (dict) – 原始創建數值。

返回

提供者特定創建值的字典。

返回類型

dict

_get_specific_processing_values(processing_values)[源代碼]?

返回一個字典,其中包含用于處理交易的特定于提供商的值。

為了讓提供商添加自己的處理值,它必須覆蓋此方法并返回一個基于此方法返回的通用值的提供商特定值字典。提供商特定值優先于通用處理值字典中的值。

參數

processing_values (dict) – 交易的通用處理值。

返回

提供商特定處理值的字典。

返回類型

dict

_get_specific_rendering_values(processing_values)[源代碼]?

返回一個字典,其中包含用于呈現重定向表單的特定于提供商的值。

如果供應商要添加自己的渲染值,它必須重寫此方法并返回一個字典,其中包含基于處理值的供應商特定值(包括供應商特定處理值)。

參數

processing_values (dict) – 交易的處理值。

返回

提供商特定渲染值的字典。

返回類型

dict

_get_tx_from_notification_data(provider_code, notification_data)[源代碼]?

根據通知數據查找交易。

為了處理交易,提供商必須重寫此方法并返回與通知數據匹配的交易。

參數
  • provider_code (str) – 處理交易的服務提供商代碼。

  • notification_data (dict) – 供應商發送的通知數據。

返回

如果找到,則返回交易。

返回類型

payment.transaction 的記錄集

_handle_notification_data(provider_code, notification_data)[源代碼]?

將交易與通知數據匹配,更新其狀態并返回。

參數
  • provider_code (str) – 處理交易的服務提供商代碼。

  • notification_data (dict) – 供應商發送的通知數據。

返回

交易。

返回類型

payment.transaction 的記錄集

_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_tokenoffline 交易的 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()[源代碼]?

請求處理交易的服務提供商取消支付。

為了支持授權,提供商必須重寫此方法并向API發出請求以取消付款。

注意: self.ensure_one()

返回

_set_authorized(state_message=None)[源代碼]?

將交易狀態更新為“已授權”(authorized)

參數

state_message (str) – 將交易狀態設置為“已授權”的原因。

返回

更新后的交易。

返回類型

payment.transaction 的記錄集

_set_canceled(state_message=None)[源代碼]?

將交易狀態更新為“取消”( cancel )。

參數

state_message (str) – 將交易狀態設置為“取消”的原因。

返回

更新后的交易。

返回類型

payment.transaction 的記錄集

_set_done(state_message=None)[源代碼]?

將交易狀態更新為“已完成”(done)。

參數

state_message (str) – 將交易狀態設置為“完成”的原因。

返回

更新后的交易。

返回類型

payment.transaction 的記錄集

_set_error(state_message)[源代碼]?

將交易狀態更新為“錯誤”( error )。

參數

state_message (str) – 將交易設置為“錯誤”狀態的原因。

返回

更新后的交易。

返回類型

payment.transaction 的記錄集

_set_pending(state_message=None)[源代碼]?

將交易狀態更新為“待處理”。

參數

state_message (str) – 將交易設置為“待處理”狀態的原因。

返回

更新后的交易。

返回類型

payment.transaction 的記錄集