Var genereras den?
Om du tittar i app/code/core/Mage/Sales/Model/Order.php
på runt linje 2052
, hittar du följande:
$this->setData('protect_code', substr(md5(uniqid(mt_rand(), true) . ':' . microtime(true)), 5, 6));
Det är här protect_code
genereras för ordern (med en kombination av md5, uniqid och slumpmässigt heltal.
Vad används det till?
Om du tittar i app/code/core/Mage/Sales/Helper/Guest.php
och hitta loadValidOrder
fungera. Du kommer att se protect_code
används i vissa områden för att säkerställa att beställningen som laddas är den korrekta för gästens cookievärde.
Det används också inom andra områden, till exempel spårningsinformationsjämförelser. Du kan se flera instanser av getProtectCode()
metod som anropas i leveransmodellerna för att jämföra beställningen med spårningsinformationen. Ett exempel på en funktion som använder den är:
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;
}
Som du kan se med $this->getProtectCode() == $track->getProtectCode()
, spårnings protect_code
måste matcha försändelsens protect_code
.