编辑网关错误

时间:2013-04-19 18:51:12

标签: magento-1.7 authorize.net

如何自定义客户信用卡被拒绝时弹出的网关错误。

示例为“付款交易失败。原因网关错误:处理过程中出错。请重试。”

我们正在使用Authorize.net,如果这有所作为。为了澄清,我们不打算摆脱它们,只需修改它们中的语言。

2 个答案:

答案 0 :(得分:0)

将文件app / code / core / Mage / Paygate / Model / Authorizenet.php复制到本地。然后找到这个(第1334行):

protected function _wrapGatewayError($text)
{
    return Mage::helper('paygate')->__('Gateway error: %s', $text);
}

并替换为:

 protected function _wrapGatewayError($text)
{
    if($text == 'This transaction has been declined.') {
        $text = 'Custom message here.';
    }       
    return Mage::helper('paygate')->__('Gateway error: %s', $text);

}

答案 1 :(得分:0)

我知道这是一个古老的问题,但是如果有人碰到这个问题,我会留在这里,以备将来使用。

_wrapGatewayError()方法已经使用了一个助手来输出消息,那么为什么不翻译消息呢?

    app/design/frontend/{package_name}/{theme_name}/locale/en_US/translate.csv
  1. 创建(或编辑)您的本地化/翻译文件。您可以在“系统/配置/设计”(在“常规”下)中检查活动的package_nametheme_name

  2. 将要更改的消息以以下格式添加到该文件:“旧文本-您要更改的消息”,“新消息”。

在您的情况下,将是这样的: “付款交易失败。原因网关错误:在处理过程中发生错误。请重试。”,“您的自定义消息”

工作原理::每当使用帮助程序输出“付款翻译失败... ...”时,系统都会找到翻译文件(translate.csv)并将消息更改为您的自定义商品。

请不要修改核心文件。它会造成混乱,干扰补丁程序,并使调试更加困难。您可以根据需要扩展它们。参见Overriding Magento blocks, models, helpers and controllers