在我的自定义付款分机上:
是否可以在结账的最后一步显示错误消息?如果我使用addError方法,则消息显示在下一页,用户无法更改地址数据,例如......
在所有验证函数中,Mage :: throwException消息使用Javascript显示给用户,但不显示在授权功能中。 Mage :: throwException只阻止下一页加载,但不显示任何消息。对用户不好!
public function authorize(Varien_Object $payment, $amount)
{
$error = $this->api_call($payment, $amount);
//no error, proceed to success page
if(strlen($error) == 0)
{
return $this;
}
//error
else
{
//this adds an error message
//which is displayed the next page
$session = Mage::getSingleton("checkout/session");
$session->addError($return);
session_write_close();
//throw exception, which is not displayed anywhere
//if i don't do this, i get success page with addError message,
//but user has to do checkout again
Mage::throwException($return);
}
}
答案 0 :(得分:1)
你试过这个吗?
throw new Mage_Payment_Model_Info_Exception(Mage::helper('checkout')->__('An error occured and this is the message'));
没有经过测试,但是看看OnePageController和saveOrder函数,这种类型的异常处理方式不同,看起来它可能会跳回到付款部分并显示错误消息。