На этапе обработки платежей в Magento не происходит никаких наблюдаемых событий.Вместо этого вы определяете класс для любого шлюза, который вы реализуете, а затем определяете методы, которые Magento будет автоматически вызывать, когда заказ проходит через различные методы оплаты.
Просмотрите базовый абстрактный класс оплаты, чтобы увидетьразличные методы, которые будут вызываться при обработке платежа.Определите те же методы в своем классе, чтобы подключиться к процессу оплаты в любой момент.
File: app/code/core/Mage/Payment/Model/Method/Abstract.php
class abstract class Mage_Payment_Model_Method_Abstract
{
/**
* Authorize
*
* @param Varien_Object $orderPayment
* @return Mage_Payment_Model_Abstract
*/
public function authorize(Varien_Object $payment, $amount)
...
/**
* Capture payment
*
* @param Varien_Object $orderPayment
* @return Mage_Payment_Model_Abstract
*/
public function capture(Varien_Object $payment, $amount)
...
/**
* Void payment
*
* @param Varien_Object $invoicePayment
* @return Mage_Payment_Model_Abstract
*/
public function void(Varien_Object $payment)
...
/**
* Refund money
*
* @param Varien_Object $invoicePayment
* @return Mage_Payment_Model_Abstract
*/
//public function refund(Varien_Object $payment, $amount)
public function refund(Varien_Object $payment, $amount)
...
/**
* Cancel payment (GoogleCheckout)
*
* @param Varien_Object $invoicePayment
* @return Mage_Payment_Model_Abstract
*/
public function cancel(Varien_Object $payment)
...
Я не слишком часто внедряю Платежный шлюз, но я предполагаю, что refund
- это метод, который вы хотите использовать для кредитных нот, а capture
- для счетов.Похоже, что метод cancel
является специфическим для Google Checkout.Определите все пять в вашем классе с некоторыми функциями ведения журнала и пройдитесь по поддельным заказам в вашей системе разработки, если вы хотите знать наверняка.