我在现金流的扩张和发展期间 获取信用卡表格信息有问题,但读取的信用卡验证号码(CVN)不足
例如,课程
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覆盖,只能获取信用卡号,但没有得到验证码
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;
}
希望你能帮助我,谢谢你
答案 0 :(得分: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保存CVV代码。我认为注释掉的行是用于将CVV代码设置为保存在数据库中的内容。
您可能需要为管理员编辑模板文件,以使其显示在订单管理页面上。我不是肯定的。
在某些时候,Magento停止存储CVV代码的原因是因为它违反了信用卡公司的服务条款。我不建议重新引入这个功能,但是你去了。如果有效,请告诉我(除非您已找到解决方案)。