结帐时出现Magento错误消息

时间:2013-09-18 13:49:45

标签: magento message payment

在我的自定义付款分机上:

是否可以在结账的最后一步显示错误消息?如果我使用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);
    }
}

1 个答案:

答案 0 :(得分:1)

你试过这个吗?

throw new Mage_Payment_Model_Info_Exception(Mage::helper('checkout')->__('An error occured and this is the message'));

没有经过测试,但是看看OnePageController和saveOrder函数,这种类型的异常处理方式不同,看起来它可能会跳回到付款部分并显示错误消息。