我已经创建了一个用于自定义付款的模块,需要调用网络服务来检查结帐中插入的手机号码,然后将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;
}
答案 0 :(得分:0)
我想您正在处理Magento 1一页结帐。请注意,在帐单/送货地址,送货方式和付款方式发生任何更改后,Magento都会验证结帐中的数据。因此,如果您填写所有这些字段,则将执行本机验证3次。
请记住,Magento验证会检查插入的数据。我不太了解这种付款方式的工作原理,但应分开进行验证。
最诚挚的问候。