我已經爲Magento開發了支付方式擴展。在這個擴展,我說:支付發票中沒有交易ID
protected $_canRefund = true;
然而,當我點擊收據,然後選擇貸項通知單,我只能看到「退款脫機」,而不是「退款」。我遵循的所有教程都堅持認爲,只需將該值更改爲true即可激活按鈕(顯然,我仍然需要實施退款方式和實際退款程序),但是我看不到執行此操作的方法。
如果我在訂單屏幕上的一個區塊內執行此行$order->getPayment()->getMethodInstance()->canRefund();
它確實會返回true,但實際的貸項憑證仍然沒有運氣。
編輯
我已經改變了問題的標題,以反映我的新發現。
基本上,它是沒有出現的原因是因爲我的發票不與事務ID創建的 - 我不知道爲什麼,但是這是生成發票時運行我的捕捉付款方式:
public function capturePayment($order) {
try {
if (!$order->canInvoice()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice.'));
}
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
if (!$invoice->getTotalQty()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.'));
}
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
$invoice->register();
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
$order->setState('processing', 'payment_received', "Payment has been received", false);
$order->save();
} catch (Mage_Core_Exception $e) {
Mage::throwException("Error Taking Payment, Please Try Again:\n" . $e);
}
}
爲什麼ISN交易ID是否分配給我的捕獲?
請把原來的'捕捉()'從模塊(模式),在這裏您將從網關獲得成功的付款捕獲。你會得到一個參考編號(交易編號)爲捕獲的付款 –
我已經成功地在我的嘗試,現在的作品。我將發佈解決方案,不久後 –
* bump *你說你找到了解決方案@DanHanly? –