Magento 1.9:Checkout Validate方法重复调用内部代码

时间:2018-08-14 08:23:12

标签: magento

我已经创建了一个用于自定义付款的模块,需要调用网络服务来检查结帐中插入的手机号码,然后将OTP号码发送给客户(如果正确)。我将代码添加到模型文件夹的validate方法内,但它发送了3次SMS:

public function validate()
{

    parent::validate();
    $info = $this->getInfoInstance();

    $GUID = sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));



    $phone = Mage::getSingleton('core/session')->getPhoneNO();
    $client = new SoapClient("http://Qitaf/Qitaf_Service.asmx?WSDL");
    $params = array('Requestid' => $GUID , 'StoreCode' => "873", 'Mobileno' => $phone);
    $result = $client->__soapCall('Qitaf_Request_Ecom', array($params));
    $store = Mage::app()->getStore();
    $name = $store->getName();


    if ($result->Qitaf_Request_EComResult == "Success|0")
    {
        return $this;
    }

1 个答案:

答案 0 :(得分:0)

我想您正在处理Magento 1一页结帐。请注意,在帐单/送货地址,送货方式和付款方式发生任何更改后,Magento都会验证结帐中的数据。因此,如果您填写所有这些字段,则将执行本机验证3次。

请记住,Magento验证会检查插入的数据。我不太了解这种付款方式的工作原理,但应分开进行验证。

最诚挚的问候。