Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Magento-Tabelle sales_flat_order Feld protect_code Erklärung

Wo wird es generiert?

Wenn Sie in app/code/core/Mage/Sales/Model/Order.php schauen etwa auf der Linie 2052 , finden Sie Folgendes:

$this->setData('protect_code', substr(md5(uniqid(mt_rand(), true) . ':' . microtime(true)), 5, 6));

Hier ist protect_code wird für die Bestellung generiert (unter Verwendung einer Kombination aus md5, uniqid und zufälliger Ganzzahl.

Wofür wird es verwendet?

Wenn Sie in app/code/core/Mage/Sales/Helper/Guest.php nachsehen und finden Sie loadValidOrder Funktion. Sie sehen protect_code Wird in einigen Bereichen verwendet, um sicherzustellen, dass die geladene Bestellung die richtige für den Cookie-Wert des Gastes ist.

Es wird auch in anderen Bereichen verwendet, z. B. beim Vergleich von Tracking-Informationen. Sie können mehrere Instanzen von getProtectCode() sehen -Methode, die in den Sendungsmodellen aufgerufen wird, um die Bestellung mit den Sendungsverfolgungsinformationen zu vergleichen. Ein Beispiel für eine Funktion, die es verwendet, ist:

public function getTrackingInfoByTrackId()
{
    $track = Mage::getModel('sales/order_shipment_track')->load($this->getTrackId());
    if ($track->getId() && $this->getProtectCode() == $track->getProtectCode()) {
        $this->_trackingInfo = array(array($track->getNumberDetail()));
    }
    return $this->_trackingInfo;
}

Wie Sie mit $this->getProtectCode() == $track->getProtectCode() sehen können , der Tracking-protect_code muss mit dem protect_code der Sendung übereinstimmen .