Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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