parameters: (self, provider, data)
return_statement: return tx
docstring: Find the transaction based on the feedback data.
  
          :param str provider: The provider of the acquirer that handled the transaction
          :param dict data: The feedback data sent by the acquirer
          :return: The transaction if found
          :rtype: recordset of `payment.transaction`
docstring_summary: Find the transaction based on the feedback data.
docstring_tokens: Find the transaction based on the feedback data .
function: def _get_tx_from_feedback_data(self, provider, data):
          """ Find the transaction based on the feedback data.
  
          :param str provider: The provider of the acquirer that handled the transaction
          :param dict data: The feedback data sent by the acquirer
          :return: The transaction if found
          :rtype: recordset of `payment.transaction`
          """
          tx = super()._get_tx_from_feedback_data(provider, data)
          if provider != 'authorize':
              return tx
  
          reference = data.get('reference')
          tx = self.search([('reference', '=', reference), ('provider', '=', 'authorize')])
          if not tx:
              raise ValidationError(
                  "Authorize.Net: " + _("No transaction found matching reference %s.", reference)
              )
          return tx
function_tokens: def _get_tx_from_feedback_data ( self , provider , data ) : tx = super ( ) . _get_tx_from_feedback_data ( provider , data ) if provider != 'authorize' : return tx reference = data . get ( 'reference' ) tx = self . search ( [ ( 'reference' , '=' , reference ) , ( 'provider' , '=' , 'authorize' ) ] ) if not tx : raise ValidationError ( "Authorize.Net: " + _ ( "No transaction found matching reference %s." , reference ) ) return tx