2012-05-18 13 views
1

我在現金流量的擴張和發展過程中 有一個問題,要獲取信用卡表格的信息,但讀取的信用卡驗證號碼少於一個(CVN)擴展模式取信用卡驗證碼的值爲空

例如,類

class Xxx_Yzz_Model_Method_Zcc extends Mage_Payment_Model_Method_Abstract 
{ 
    public function setParams() 
    { 
     .... 
     $ CcCid = $ this-> getInfoInstance() -> getCcCid(); 
     .... 
    } 
} 

我參考的Mage_Payment_Model_Method_Cc,所述assignData覆蓋的內部,但不成功

public function assignData ($ data) 
{ 
    if (! ($ data instanceof Varien_Object)) { 
     $ data = new Varien_Object ($ data); 
    } 
    $ info = $ this-> getInfoInstance(); 
    $ info-> setCcType ($ data-> getCcType()) 
     -> setCcOwner ($ data-> getCcOwner()) 
     -> setCcLast4 (substr ($ data-> getCcNumber(), -4)) 
     -> setCcNumber ($ data-> getCcNumber()) 
     -> setCcCid ($ data-> getCcCid()) 
     -> setCcExpMonth ($ data-> getCcExpMonth()) 
     -> setCcExpYear ($ data-> getCcExpYear()) 
     -> setCcSsIssue ($ data-> getCcSsIssue()) 
     -> setCcSsStartMonth ($ data-> getCcSsStartMonth()) 
     -> setCcSsStartYear ($ data-> getCcSsStartYear()) 
    ; 
    return $ this; 
} 

此外,我還參考了Mage_Payment_Model_Method_Cc,prepareSave覆蓋,只能獲得信用卡號碼,但並沒有得到驗證碼

public function prepareSave() 
{ 
    $ info = $ this-> getInfoInstance(); 
    if ($ this-> _canSaveCc) { 
     $ info-> setCcNumberEnc ($ info-> encrypt ($ info-> getCcNumber())); 
    } 
    // $ info-> setCcCidEnc ($ info-> encrypt ($ info-> getCcCid())); 
    // These three lines seems useless 
    $ info-> setCcNumber (null) 
     // These three lines seems useless 
     -> setCcCid (null); 
     // These three lines seem useless 
    return $ this; 
} 

希望你能幫助我,謝謝

回答

2

在爲了挽救CVV碼(驗證碼),該prepareSave()方法應該是這樣的:

public function prepareSave() 
{ 
    $info = $this->getInfoInstance(); 
    if ($this->_canSaveCc) { 
     $info->setCcNumberEnc($info->encrypt($info->getCcNumber())); 
    } 

    // Uncommented this line 
    $info->setCcCidEnc($info->encrypt($info->getCcCid())); 

    $info->setCcNumber(null)->setCcCid(null); 

    return $this; 
} 

除非本保存/檢索功能也被禁用的其他地方,這應該使Magento的SA有CVV代碼。我相信被註釋掉的行是用於設置CVV代碼以保存在數據庫中的行。

您可能必須編輯管理員的模板文件,以使其顯示在訂單管理頁面上。雖然我不積極。

在某個時候,Magento停止存儲CVV代碼的原因是它違反了信用卡公司的服務條款。我不建議重新引入這個功能,但是你可以去。讓我知道這是否有效(除非你已經找到解決方案)。

+0

謝謝親愛的樓層:) –

+0

看起來不錯,但我想你還需要在sales_flat_order_payment表創建一個cc_cid_enc列。 –