编辑网关错误

问题描述 投票:0回答:2

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

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

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

magento-1.7 authorize.net
2个回答
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);

}

0
投票

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

_wrapGatewayError()方法已经使用帮助器输出消息,那么为什么不直接翻译消息呢?

  1. app/design/frontend/{package_name}/{theme_name}/locale/en_US/translate.csv中创建(或编辑)您的本地化/翻译文件。您可以在系统/配置/设计中查看活动的package_nametheme_name(在“常规”下)。
  2. 使用以下格式将要更改的消息添加到该文件:“旧文本 - 要更改的消息”,“新消息”。

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

工作原理:每当使用助手输出“付款转换失败......”时,系统将找到翻译文件(translate.csv),并将消息更改为自定义消息。

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

© www.soinside.com 2019 - 2024. All rights reserved.