diff options
| author | Denis Ledoux <dle@odoo.com> | 2019-05-21 16:32:48 +0200 |
|---|---|---|
| committer | Denis Ledoux <dle@odoo.com> | 2019-05-21 16:32:48 +0200 |
| commit | c7274a48e3bf62443cdfa11033de17f00062ddf6 (patch) | |
| tree | a824dfac81aeaa02a32f27f430dc5758b660c1cf /addons/payment_authorize/models | |
| parent | 7237b8f2a223204792b1a9ff3a12719675fbc558 (diff) | |
| parent | b1e1c78ffab65445769b070a1af7efa876c532fd (diff) | |
[MERGE] forward port branch saas-15 up to b1e1c78ffab
Diffstat (limited to 'addons/payment_authorize/models')
| -rw-r--r-- | addons/payment_authorize/models/authorize_request.py | 8 | ||||
| -rw-r--r-- | addons/payment_authorize/models/payment.py | 21 |
2 files changed, 19 insertions, 10 deletions
diff --git a/addons/payment_authorize/models/authorize_request.py b/addons/payment_authorize/models/authorize_request.py index e23735fe037..c4e66b8ccfb 100644 --- a/addons/payment_authorize/models/authorize_request.py +++ b/addons/payment_authorize/models/authorize_request.py @@ -4,12 +4,14 @@ import requests from lxml import etree, objectify from xml.etree import ElementTree as ET from uuid import uuid4 +import logging from odoo.addons.payment.models.payment_acquirer import _partner_split_name from odoo.exceptions import ValidationError, UserError from odoo import _ XMLNS = 'AnetApi/xml/v1/schema/AnetApiSchema.xsd' +_logger = logging.getLogger(__name__) def strip_ns(xml, ns): @@ -209,6 +211,12 @@ class AuthorizeAPI(): etree.SubElement(customer, "email").text = partner.email or '' response = self._authorize_request(root) res = dict() + if not response.find('customerProfileId'): + _logger.warning( + 'Unable to create customer payment profile, data missing from transaction. Transaction_id: %s - Partner_id: %s' + % (transaction_id, partner) + ) + return res res['profile_id'] = response.find('customerProfileId').text res['payment_profile_id'] = response.find('customerPaymentProfileIdList/numericString').text root_profile = self._base_tree('getCustomerPaymentProfileRequest') diff --git a/addons/payment_authorize/models/payment.py b/addons/payment_authorize/models/payment.py index e3251f7770a..58d3c4ae88e 100644 --- a/addons/payment_authorize/models/payment.py +++ b/addons/payment_authorize/models/payment.py @@ -239,17 +239,18 @@ class TxAuthorize(models.Model): (self.type == 'form_save' or self.acquirer_id.save_token == 'always'): transaction = AuthorizeAPI(self.acquirer_id) res = transaction.create_customer_profile_from_tx(self.partner_id, self.acquirer_reference) - token_id = self.env['payment.token'].create({ - 'authorize_profile': res.get('profile_id'), - 'name': res.get('name'), - 'acquirer_ref': res.get('payment_profile_id'), - 'acquirer_id': self.acquirer_id.id, - 'partner_id': self.partner_id.id, - }) - self.payment_token_id = token_id + if res: + token_id = self.env['payment.token'].create({ + 'authorize_profile': res.get('profile_id'), + 'name': res.get('name'), + 'acquirer_ref': res.get('payment_profile_id'), + 'acquirer_id': self.acquirer_id.id, + 'partner_id': self.partner_id.id, + }) + self.payment_token_id = token_id - if self.payment_token_id: - self.payment_token_id.verified = True + if self.payment_token_id: + self.payment_token_id.verified = True return True elif status_code == self._authorize_pending_tx_status: self.write({ |
