Есть правило, которому нужно стараться следовать: один метод на один кусок логики. Метод `getWebmoneyRedirectFormFields` делает слишком много, поэтому его стоит разделить на более мелкие, например, вот так:

```php
$params = array(
   ...
   'LMI_PAYMENT_AMOUNT' => $this->_getPaymentAmount($order),
   'LMI_PAYMENT_DESC'   => $this->_getOrderDescription($order),
   ...
);
```

После того, как метод разделится на более мелкие, получится группа методов, которые логично будет вынести в отдельный класс: 
```php
Mage::getModel('webmoney/payment_request')->getParams($order)
```
Таким образом, будет класс, который умеет формировать запрос к web-money для любого заказа, не только последнего из сессии.
Использовать этот класс нужно будет из напрямую из формы редиректа. Текущий заказ нужно будет получать в контроллере и передавать в форму 
(если это все не совсем ясно, обсудим вместе :)