Tôi biết câu hỏi mơ hồ này không nên được trả lời. Tuy nhiên tôi có thể gặp phải một vấn đề tương tự ở đây, đây là những gì tôi đã học được:
- form_key không được khác nhau trong mỗi yêu cầu
- form_key phù hợp trong suốt phiên
- một phiên khác sẽ tạo một form_key khác (thử trình duyệt khác)
- các CACHE TRANG nào đôi khi can thiệp vào đây
- với tôi điều này dẫn đến một Widget hiển thị cùng một form_key (được lưu trong bộ nhớ cache) cho tất cả các phiên.
- tôi không có "tính năng" này
Do đó, dựa trên ví dụ ngắn, tôi đã ghi đè hành động thanh toán addtocart như thế này trong Mô-đun mới:
ứng dụng / mã / cục bộ / Tên / Thanh toán / bộ điều khiển / CartContoder.php
<?php
require_once(Mage::getModuleDir('controllers','Mage_Checkout').DS.'CartController.php');
class Name_Checkout_CartController extends Mage_Checkout_CartController
{
public function addAction()
{
$request = $this->getRequest();
$formKey = Mage::getSingleton('core/session')->getFormKey();
$request->setParam('form_key', $formKey);
return parent::addAction();
}
}
ứng dụng / mã / cục bộ / Tên / Checkout / etc / config.xml
<?xml version="1.0"?>
<config>
<modules>
<Name_Checkout>
<version>0.1.0</version>
</Name_Checkout>
</modules>
<frontend>
<routers>
<checkout>
<args>
<modules>
<name_checkout before="Mage_Checkout">Name_Checkout</name_checkout>
</modules>
</args>
</checkout>>
</routers>
</frontend>
</config>
ứng dụng / etc / mô-đun / Name_Checkout.xml
<?xml version="1.0"?>
<config>
<modules>
<Name_Checkout>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Checkout/>
</depends>
</Name_Checkout>
</modules>
</config>
Tôi hy vọng điều này sẽ đủ rộng rãi để mọi người tái tạo điều này