def _authorize_form_validate(self, data): if self.state == 'done': _logger.warning('Authorize: trying to validate an already validated tx (ref %s)' % self.reference) return True status_code = int(data.get('x_response_code', '0')) if status_code == self._authorize_valid_tx_status: if data.get('x_type').lower() in ['auth_capture', 'prior_auth_capture']: self.write({ 'state': 'done', 'acquirer_reference': data.get('x_trans_id'), 'date_validate': fields.Datetime.now(), }) elif data.get('x_type').lower() in ['auth_only']: self.write({ 'state': 'authorized', 'acquirer_reference': data.get('x_trans_id'), }) if self.partner_id and not self.payment_token_id and \ (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) 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 return True elif status_code == self._authorize_pending_tx_status: self.write({ 'state': 'pending', 'acquirer_reference': data.get('x_trans_id'), }) return True elif status_code == self._authorize_cancel_tx_status: self.write({ 'state': 'cancel', 'acquirer_reference': data.get('x_trans_id'), }) return True else: error = data.get('x_response_reason_text') _logger.info(error) self.write({ 'state': 'error', 'state_message': error, 'acquirer_reference': data.get('x_trans_id'), }) return False
def _authorize_form_validate(self, data): if self.state == 'done': _logger.warning('Authorize: trying to validate an already validated tx (ref %s)' % self.reference) return True status_code = int(data.get('x_response_code', '0')) if status_code == self._authorize_valid_tx_status: if data.get('x_type').lower() in ['auth_capture', 'prior_auth_capture']: self.write({ 'state': 'done', 'acquirer_reference': data.get('x_trans_id'), 'date_validate': fields.Datetime.now(), }) elif data.get('x_type').lower() in ['auth_only']: self.write({ 'state': 'authorized', 'acquirer_reference': data.get('x_trans_id'), }) if self.partner_id and not self.payment_token_id and \ (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 return True elif status_code == self._authorize_pending_tx_status: self.write({ 'state': 'pending', 'acquirer_reference': data.get('x_trans_id'), }) return True elif status_code == self._authorize_cancel_tx_status: self.write({ 'state': 'cancel', 'acquirer_reference': data.get('x_trans_id'), }) return True else: error = data.get('x_response_reason_text') _logger.info(error) self.write({ 'state': 'error', 'state_message': error, 'acquirer_reference': data.get('x_trans_id'), }) return False