2011-06-20 34 views
0

希望這裏的某個人能夠給我一個關於我正在爲Magento工作的付款方式出現問題的想法。Magento付款方式 - 可以通過支付網關獲取,但退款和取消dosent工作

正如標題所說,問題是取消並從管理員退款。 發貨時,可以從網關獲取我使用此模塊發出的訂單。

這是在型號命名空間/模塊名/模型/ standard.php這就是做延伸Mage_Payment_Model_Method_Abstract 函數名稱:捕捉

在這個類中我也有功能無效,取消和退款。但他們更新被稱爲。 我試圖在這些方法中插入一些Mage :: Log(),但是當訂單被取消或進行貸記憑證(從銷售 - 發票視圖)時沒有任何反應。

所以任何人都可以給我一些提示,說明我錯過了什麼 - 顯然我必須在某處忘記一些東西,但我真的不知道在哪裏。

standard.php類:

class Namespace_Module_Model_Standard extends Mage_Payment_Model_Method_Abstract 
{ 

const PAYMENT_TYPE_AUTH = 'AUTHORIZATION'; 
const PAYMENT_TYPE_SALE = 'SALE'; 

protected $_code = 'module'; 
protected $_isGateway    = true; 
protected $_canAuthorize   = false;  
protected $_canCapture    = true; 
protected $_canCapturePartial  = true; 
protected $_canRefund    = true; 
protected $_canRefundInvoicePartial = true; 
protected $_canVoid     = true; 
protected $_canUseInternal   = true; 
protected $_canUseCheckout   = true; 
protected $_canUseForMultishipping = true; 
protected $_canSaveCc    = false; 

//this function is not called when order is cancelled 
public function cancel(Varien_Object $payment) 
{ 
    Mage::Log('order canceled'); 

    return $this; 
} 
//same with this function - not called when creditmemo is made 
public function refund(Varien_Object $payment, $amount) 
{ 

    Mage::Log('refund'); 
    return $this; 
} 
//but this is called, when invoice is being made 
public function capture(Varien_Object $payment, $amount) 
{ 

    return $this; 
} 
} 
+0

在你的exception.log或system.log中是否有任何錯誤?你打開了'MAGE_IS_DEVELOPER_MODE'和'ini_set('display_errors',1)'?你有正確的方法簽名接受'Varien_Object $付款'。請張貼一些代碼示例,以便我們可以看到迄今爲止所做的工作。 –

+0

嗨喬納森,謝謝你的評論。 MAGE_IS_DEVELOPER_MODE未打開,感謝提示。但無論如何,在例外或系統日誌中什麼也沒有顯示出來。 –

+0

@jonathan有關類別,或至少其中的一小位:類Namespace_Module_Model_Standard擴展Mage_Payment_Model_Method_Abstract {公共功能取消(Varien_Object $支付) { \t法師::日誌(「取消訂單」); \t \t return $ this; }到目前爲止,我只想在我的system.log中看到一個條目,所以我知道該函數已被調用,但沒有任何反應。 –

回答

-1

我希望幫助別人!

對於貸項憑證: 您應該從發票創建貸項憑證,因爲發票是從付款中生成的,而不是由管理員用戶創建的。 在「訂單視圖(頁面)」>「發票(選項卡)」>「從列表中選擇發票」>「貸項憑證(按鈕)」>「發票(頁面)的新貸項憑證」 您應該看到兩個按鈕「退款離線」和「退款」。 「退款」按鈕將觸發您的付款方式模型類方法processBeforeRefund(),refund(),processCreditmemo()。