Как я уже сказал - образец, который я использовал для этого решения в финале.
Я предпочел наблюдать за событием, чтобы сделать почтовый запрос. Действительно, если вы будете использовать метод, представленный здесь
Вы получите тот же эффект, но я предпочитаю использовать наблюдателя событий. Итак:
Сначала добавьте некоторые данные в config.xml , чтобы создать наблюдатель событий в интерфейсе разделе
<events>
<sales_model_service_quote_submit_before>
<observers>
<lacpaycs>
<type>singleton</type>
<class>OS_LacPayCS_Model_Observer</class>
<method>lacpaycs_payment_send</method>
</lacpaycs>
</observers>
</sales_model_service_quote_submit_before>
</events>
тогда мы должны создать класс Observer в OS / LacPayCS / Mode / Observer.php :
class OS_LacPayCS_Model_Observer {
protected $_code = 'lacpaycs';
// Here some our additional functions
/**
* @param Varien_Object $observer
*/
public function lacpaycs_payment_send(Varien_Object $observer)
{
/**
* @var Mage_Sales_Model_Order $order
* @var Mage_Sales_Model_Quote $quote
*/
$order = $observer->getOrder();
$quote = $observer->getQuote();
$payment = $order->getPayment();
if ($payment->getMethodInstance()->getCode() != $this->_code) {
return;
}
$helper = Mage::helper('lacpaycs');
try {
// Here we prepare data and sending request to gateway, and getting response
if (!$this->_validateResponse($response)) {
Mage::throwException('Error '.$this->errorMsg);
}
} catch (Exception $e) {
Mage::throwException($e->getMessage());
}
}
}
Итак, в двух словах, что мы здесь делаем $ _ код - это то же самое, что и в нашей модели платежей, и вместе с ней мы проверяем наблюдателя, поймали ли мы событие, когда клиент использует наш метод оплаты
Весь другой код прост, поэтому я думаю, что нет необходимости комментировать его