1

キャッシュフローの拡大・発展途上 クレジットカードフォームの情報を取得するのに問題があるが、クレジットカード認証番号(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;
}

あなたが私を助けてくれることを願っています、ありがとう

4

1 に答える 1

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 コードの保存を停止しました。この機能を再導入することはお勧めしませんが、まあいいでしょう。それがうまくいくかどうか教えてください(すでに解決策を見つけていない限り).

于 2012-08-30T17:03:42.283 に答える