summaryrefslogtreecommitdiff
path: root/addons/payment_authorize/models/authorize_request.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-01-03 12:28:52 +0100
committerChristophe Simonis <chs@odoo.com>2018-01-03 12:28:52 +0100
commit362f0489d07d5bcd3673278e93848d0ea3d177a8 (patch)
treece164613ca633d736bf41c5b3d02b8ee541baa89 /addons/payment_authorize/models/authorize_request.py
parenta39491d459f7a70af21bce1f45434bab05f1c284 (diff)
parentfe22a0f9ca92ef0e76bb2f730a2b22da500db5dd (diff)
[MERGE] forward port branch 11.0 up to fe22a0f9ca9
Diffstat (limited to 'addons/payment_authorize/models/authorize_request.py')
-rw-r--r--addons/payment_authorize/models/authorize_request.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/addons/payment_authorize/models/authorize_request.py b/addons/payment_authorize/models/authorize_request.py
index c6a912de5d2..18c535aedcd 100644
--- a/addons/payment_authorize/models/authorize_request.py
+++ b/addons/payment_authorize/models/authorize_request.py
@@ -165,6 +165,22 @@ class AuthorizeAPI():
etree.SubElement(creditCard, "cardCode").text = card_code
etree.SubElement(root, "validationMode").text = 'liveMode'
response = self._authorize_request(root)
+
+ # If the user didn't set up authorize.net properly then the response
+ # won't contain stuff like customerProfileId and accessing text
+ # will raise a NoneType has no text attribute
+ msg = response.find('messages')
+ if msg is not None:
+ rc = msg.find('resultCode')
+ if rc is not None and rc.text == 'Error':
+ err = msg.find('message')
+ err_code = err.find('code').text
+ err_msg = err.find('text').text
+ raise UserError(
+ "Authorize.net Error:\nCode: %s\nMessage: %s"
+ % (err_code, err_msg)
+ )
+
res = dict()
res['profile_id'] = response.find('customerProfileId').text
res['payment_profile_id'] = response.find('customerPaymentProfileIdList/numericString').text