如何自定义客户信用卡被拒绝时弹出的网关错误。
示例为“付款交易失败。原因网关错误:处理过程中出错。请重试。”
我们正在使用Authorize.net,如果这有所作为。为了澄清,我们不打算摆脱它们,只需修改它们中的语言。
答案 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
中 创建(或编辑)您的本地化/翻译文件。您可以在“系统/配置/设计”(在“常规”下)中检查活动的package_name
和theme_name
。
将要更改的消息以以下格式添加到该文件:“旧文本-您要更改的消息”,“新消息”。
在您的情况下,将是这样的: “付款交易失败。原因网关错误:在处理过程中发生错误。请重试。”,“您的自定义消息”
工作原理::每当使用帮助程序输出“付款翻译失败... ...”时,系统都会找到翻译文件(translate.csv)并将消息更改为您的自定义商品。
请不要修改核心文件。它会造成混乱,干扰补丁程序,并使调试更加困难。您可以根据需要扩展它们。参见Overriding Magento blocks, models, helpers and controllers