Платіжна транзакція¶
- class odoo.addons.payment.models.payment_transaction.PaymentTransaction[source]¶
- _compute_reference(provider_code, prefix=None, separator='-', **kwargs)[source]¶
Обчисліть унікальне посилання для транзакції.
Посилання відповідає префіксу, якщо іншої транзакції з цим префіксом ще не існує. В іншому випадку воно дотримується шаблону
{computed_prefix}{separator}{sequence_number}, де:{computed_prefix}це:Наданий користувацький префікс, якщо такий є.
Результат обчислення
_compute_reference_prefix(), якщо користувацький префікс не заповнений, але kwargs є.`“tx-{datetime}““, якщо ні користувацький префікс, ні kwargs не заповнені.
{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(), якщо не вказано власний префікс.
- Повертає
Унікальне посилання на транзакцію.
- Тип повернення
- _compute_reference_prefix(provider_code, separator, **values)[source]¶
Обчисліть префікс посилання на основі значень транзакцій.
Примітка: Цей метод слід викликати в режимі sudo, щоб надати доступ до документів (рахунків-фактур, замовлень на продаж), на які посилаються у значеннях транзакцій.
- Параметри
- Повертає
Обчислений префікс посилання.
- Тип повернення
- _get_post_processing_values()[source]¶
Повертає словник значень, що використовуються для відображення стану транзакції.
Щоб постачальник міг обробити відображення статусу транзакції, він повинен перевизначити цей метод і повернути словник значень. Значення, специфічні для постачальника, мають пріоритет над значеннями, зазначеними в словнику загальних значень постобробки.
Повернутий словник містить такі записи:
provider_code: Код постачальника.provider_name: Назва постачальника.reference: Посилання на транзакцію.amount: Округлена сума транзакції.currency_id: Валюта транзакції, як ідентифікаторres.currency.state: Стан транзакції:draft,pending,authorized,done,cancel, абоerror.state_message: Інформаційне повідомлення про стан.operation: Операція транзакції.is_post_processed: Чи була транзакція вже оброблена після обробки.landing_route: Маршрут, на який перенаправляється користувач після транзакції.Додаткові записи, що стосуються конкретного постачальника.
Примітка:
self.ensure_one()- Повертає
Словник обробки значень.
- Тип повернення
- _get_specific_create_values(provider_code, values)[source]¶
Доповніть значення методу
createзначеннями, специфічними для постачальника.Щоб постачальник міг додати власні значення create, він повинен перезаписати цей метод і повернути словник значень. Значення, специфічні для постачальника, мають пріоритет над значеннями зі словарю загальних значень create.
- _get_specific_processing_values(processing_values)[source]¶
Повертає словник значень, специфічних для постачальника, що використовуються для обробки транзакції.
Щоб провайдер міг додати власні значення обробки, він повинен перезаписати цей метод і повернути словник значень, специфічних для провайдера, на основі загальних значень, повернутих цим методом. Значення, специфічні для провайдера, мають пріоритет над значеннями словника загальних значень обробки.
- _get_specific_rendering_values(processing_values)[source]¶
Повертає словник значень, специфічних для постачальника, що використовуються для відображення форми перенаправлення.
Щоб постачальник міг додати власні значення візуалізації, він повинен перезаписати цей метод і повернути словник значень, специфічних для постачальника, на основі значень обробки (включно зі значеннями обробки, специфічними для постачальника).
- _get_tx_from_notification_data(provider_code, notification_data)[source]¶
Знайдіть транзакцію на основі даних сповіщення.
Щоб постачальник міг обробити транзакції, він повинен перезаписати цей метод і повернути транзакцію, що відповідає даним сповіщення.
- _handle_notification_data(provider_code, notification_data)[source]¶
Зіставте транзакцію з даними сповіщення, оновіть її стан та поверніть її.
- _process_notification_data(notification_data)[source]¶
Оновіть стан транзакції та посилання на постачальника на основі даних сповіщення.
Цей метод зазвичай не слід викликати безпосередньо. Правильний метод для виклику після отримання даних сповіщення -
_handle_notification_data().Щоб постачальник міг обробити транзакції, він повинен перезаписати цей метод та обробити дані сповіщення.
Примітка:
self.ensure_one()- Параметри
notification_data (dict) – Дані сповіщення, надіслані постачальником.
- Повертає
Жоден
- _send_capture_request(amount_to_capture=None)[source]¶
Зверніться до постачальника послуг, який обробляє транзакцію, з проханням зафіксувати платіж.
Для часткових захоплень створіть дочірню транзакцію, пов’язану з вихідною транзакцією.
Щоб постачальник послуг підтримував авторизацію, він повинен перевизначити цей метод і зробити запит API для захоплення платежу.
Примітка:
self.ensure_one()- Параметри
amount_to_capture (float) – Сума для захоплення.
- Повертає
Створена дочірня транзакція захоплення, якщо така є.
- Тип повернення
payment.transaction
- _send_payment_request()[source]¶
Зверніться до постачальника послуг, який обробляє транзакцію, з проханням здійснити платіж.
Цей метод використовується виключно для здійснення платежів за допомогою токенів, які відповідають як полю
online_token, так і полюoperationтранзакціїoffline.Щоб постачальник підтримував токенізацію, він повинен перевизначити цей метод і зробити запит API для здійснення платежу.
Примітка:
self.ensure_one()- Повертає
Жоден
- _send_refund_request(amount_to_refund=None)[source]¶
Зверніться до постачальника послуг, який обробляв транзакцію, з проханням повернути кошти.
Щоб постачальник міг підтримувати повернення коштів, він повинен перевизначити цей метод і зробити запит API для повернення коштів.
Примітка:
self.ensure_one()- Параметри
amount_to_refund (float) – Сума, що підлягає поверненню.
- Повертає
Транзакція повернення коштів, створена для обробки запиту на повернення коштів.
- Тип повернення
набір записів
payment.transaction
- _send_void_request(amount_to_void=None)[source]¶
Зверніться до постачальника послуг, який обробляє транзакцію, з проханням анулювати платіж.
Для часткових анульованих транзакцій створіть дочірню транзакцію, пов’язану з вихідною транзакцією.
Щоб постачальник послуг підтримував авторизацію, він повинен перевизначити цей метод і зробити запит API для анулювання платежу.
Примітка:
self.ensure_one()- Параметри
amount_to_void (float) – Сума, що підлягає анулюванню.
- Повертає
Створена недійсна дочірня транзакція, якщо така є.
- Тип повернення
payment.transaction
- _set_authorized(state_message=None, extra_allowed_states=())[source]¶
Оновіть стан транзакцій на
authorized.
- _set_canceled(state_message=None, extra_allowed_states=())[source]¶
Оновіть стан транзакцій на
cancel.