Example #1
0
 def authorize_create(self, values):
     if values.get('cc_number'):
         values['cc_number'] = values['cc_number'].replace(' ', '')
         acquirer = self.env['payment.acquirer'].browse(
             values['acquirer_id'])
         expiry = str(values['cc_expiry'][:2]) + str(
             values['cc_expiry'][-2:])
         partner = self.env['res.partner'].browse(values['partner_id'])
         transaction = AuthorizeAPI(acquirer)
         res = transaction.create_customer_profile(partner,
                                                   values['cc_number'],
                                                   expiry, values['cc_cvc'])
         if res.get('profile_id') and res.get('payment_profile_id'):
             return {
                 'authorize_profile':
                 res.get('profile_id'),
                 'name':
                 'XXXXXXXXXXXX%s - %s' %
                 (values['cc_number'][-4:], values['cc_holder_name']),
                 'acquirer_ref':
                 res.get('payment_profile_id'),
             }
         else:
             raise ValidationError(
                 _('The Customer Profile creation in Authorize.NET failed.')
             )
     else:
         return values
Example #2
0
 def authorize_s2s_do_transaction(self, **data):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     if self.acquirer_id.auto_confirm != "authorize":
         res = transaction.auth_and_capture(self.payment_token_id, self.amount, self.reference)
     else:
         res = transaction.authorize(self.payment_token_id, self.amount, self.reference)
     return self._authorize_s2s_validate_tree(res)
Example #3
0
 def authorize_s2s_do_transaction(self, **data):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     if self.acquirer_id.auto_confirm != "authorize":
         res = transaction.auth_and_capture(self.payment_token_id, self.amount, self.reference)
     else:
         res = transaction.authorize(self.payment_token_id, self.amount, self.reference)
     return self._authorize_s2s_validate_tree(res)
Example #4
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
Example #5
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
Example #6
0
 def authorize_create(self, values):
     if values.get('cc_number'):
         values['cc_number'] = values['cc_number'].replace(' ', '')
         acquirer = self.env['payment.acquirer'].browse(values['acquirer_id'])
         expiry = str(values['cc_expiry'][:2]) + str(values['cc_expiry'][-2:])
         partner = self.env['res.partner'].browse(values['partner_id'])
         transaction = AuthorizeAPI(acquirer)
         res = transaction.create_customer_profile(partner, values['cc_number'], expiry, values['cc_cvc'])
         if res.get('profile_id') and res.get('payment_profile_id'):
             return {
                 'authorize_profile': res.get('profile_id'),
                 'name': 'XXXXXXXXXXXX%s - %s' % (values['cc_number'][-4:], values['cc_holder_name']),
                 'acquirer_ref': res.get('payment_profile_id'),
             }
         else:
             raise ValidationError('The Customer Profile creation in Authorize.NET failed.')
     else:
         return values
Example #7
0
 def authorize_s2s_void_transaction(self):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     tree = transaction.void(self.acquirer_reference or '')
     return self._authorize_s2s_validate_tree(tree)
Example #8
0
 def authorize_s2s_capture_transaction(self):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     tree = transaction.capture(self.acquirer_reference or '', self.amount)
     return self._authorize_s2s_validate_tree(tree)
Example #9
0
 def authorize_test_credentials(self):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     return transaction.test_authenticate()
Example #10
0
 def authorize_s2s_void_transaction(self):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     tree = transaction.void(self.acquirer_reference)
     return self._authorize_s2s_validate_tree(tree)
Example #11
0
 def authorize_s2s_capture_transaction(self):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     tree = transaction.capture(self.acquirer_reference, self.amount)
     return self._authorize_s2s_validate_tree(tree)
Example #12
0
 def authorize_test_credentials(self):
     self.ensure_one()
     transaction = AuthorizeAPI(self.acquirer_id)
     return transaction.test_authenticate()