Magento 扩展模型以获取信用卡验证码值为空
我正在扩大和发展现金流 获取信用卡表单信息存在问题,但读取的信息少于信用卡验证号(CVN) 例如,课堂Magento 扩展模型以获取信用卡验证码值为空,magento,Magento,我正在扩大和发展现金流 获取信用卡表单信息存在问题,但读取的信息少于信用卡验证号(CVN) 例如,课堂 class Xxx_Yzz_Model_Method_Zcc extends Mage_Payment_Model_Method_Abstract { public function setParams () { .... $ CcCid = $ this-> getInfoInstance () -> getCcCid ();
class Xxx_Yzz_Model_Method_Zcc extends Mage_Payment_Model_Method_Abstract
{
public function setParams ()
{
....
$ CcCid = $ this-> getInfoInstance () -> getCcCid ();
....
}
}
我在assignData覆盖中引用了的Mage_Payment_Model_Method_Cc,但徒劳
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 override,只能获取信用卡号码,但没有获取验证码
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;
}
希望您能帮助我,谢谢为了保存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保存CVV代码。我相信注释掉的那一行是用来设置CVV代码保存在数据库中的
您可能需要编辑管理员的模板文件,使其也显示在订单管理页面上。不过我不是很肯定
在某个时候,Magento出于某种原因停止存储CVV代码,因为它违反了信用卡公司的服务条款。我不建议您重新引入此功能,但您可以这样做。让我知道这是否有效(除非您已经找到解决方案)。看起来不错,但我想您还需要在sales\u flat\u order\u payment table中创建一个cc\u cid\u enc列。