def _get_params(self):
        """
        Generate SOAP parameters.
        """
        
        params = {'accountNumber': self._service.accountNumber}
        
        # Include object variables that are in field_order
        for key, val in self.__dict__.iteritems():
            if key in self.field_order:
                
                # Turn into Unicode
                if isinstance(val, str,):
                    val = val.decode('utf8')
                
                params[key] = val
        
        # Set missing parameters as empty strings
        for key in self.field_order:
            if key not in params:
                params[key] = u''
        
        # Parameter sorting method
        def order_keys(k):
            if k[0] in self.field_order:
                return self.field_order.index(k[0])
            return len(self.field_order) + 1
        
        # Sort the ordered dictionary
        params = OrderedDict(sorted(params.items(), key=order_keys))
        
        # Add hash to dictionary if present
        if hasattr(self, 'hash') and self.hash is not None:
            params['hash'] = self.hash
        
        return params
Generate SOAP parameters.