docs: def get_gateway_url(self, request):
          """
          Routes a payment to Gateway, should return URL for redirection.
          """
          params = {
              'id': self.get_backend_setting('id'),
              'description': self.get_order_description(self.payment, self.payment.order),
              'amount': self.payment.amount,
              'currency': self.payment.currency,
              'type': 0,  # 0 = show "return" button after finished payment
              'control': self.payment.pk,
              'URL': self.get_URL(self.payment.pk),
              'URLC': self.get_URLC(),
              'api_version': 'dev',
          }
  
          user_data = {
              'email': None,
              'lang': None,
          }
          signals.user_data_query.send(sender=None, order=self.payment.order, user_data=user_data)
  
          if user_data['email']:
              params['email'] = user_data['email']
  
          if user_data['lang'] and user_data['lang'].lower() in self._ACCEPTED_LANGS:
              params['lang'] = user_data['lang'].lower()
          elif self.get_backend_setting('lang', False
                                        ) and self.get_backend_setting('lang').lower() in self._ACCEPTED_LANGS:
              params['lang'] = self.get_backend_setting('lang').lower()
  
          if self.get_backend_setting('onlinetransfer', False):
              params['onlinetransfer'] = 1
          if self.get_backend_setting('p_email', False):
              params['p_email'] = self.get_backend_setting('p_email')
          if self.get_backend_setting('p_info', False):
              params['p_info'] = self.get_backend_setting('p_info')
          if self.get_backend_setting('tax', False):
              params['tax'] = 1
  
          gateway_url = self.get_backend_setting('gateway_url', self._GATEWAY_URL)
  
          if self.get_backend_setting('method', 'get').lower() == 'post':
              return gateway_url, 'POST', params
          elif self.get_backend_setting('method', 'get').lower() == 'get':
              for key in params.keys():
                  params[key] = six.text_type(params[key]).encode('utf-8')
              return gateway_url + '?' + urlencode(params), "GET", {}
          else:
              raise ImproperlyConfigured('Dotpay payment backend accepts only GET or POST')