2

这是一个相当奇怪的问题。如果我启用 Authorize.net 付款方式,则 HTML 中缺少用于输入 CC 详细信息的输入字段。这是一个开箱即用的安装,只完成了一些主题工作,我没有触及 opc 模板。

如果我启用 Saved CC 付款方式,这些字段会正确显示。

我没有对 Magneto 中的 OOTB Authorize.net 文件进行任何更改,甚至尝试禁用我的整个主题,但它没有任何影响。


代码截图: http ://cl.ly/image/3g1n2x021N2s


在进一步研究之后,模板/结帐/付款/方法.phtml 中的这一行似乎没有返回任何 HTML: $this->getPaymentMethodFormHtml($_method)

我找到了这个方法,它反过来又试图加载一个孩子。

public function getPaymentMethodFormHtml(Mage_Payment_Model_Method_Abstract $method)
{
     return $this->getChildHtml('payment.method.' . $method->getCode());
}

这就是我已经走了多远。

4

3 回答 3

2

我会尝试以下步骤:

  • 检查您的异常日志/var/log/exception.log
  • 检查您的 PHP 错误日志
  • 通过重命名主题文件夹来禁用当前主题,例如:/app/design/frontend/default/themename>> /app/design/frontend/default/_themename- 这排除了无效主题/布局 XML 问题的可能性。确保它回退到未触及的基本默认主题!
  • <active>false</active>通过在找到的 XML 中一一设置来禁用您的非标准扩展/app/etc/modules
  • $method->getCode()尝试打开和关闭已保存的 CC 时是否存在值差异。
  • 如果可能,请更新 Authorize.net 扩展。如果不是,至少检查您/app/etc/modules/Mage_Authorizenet.xml是否如下:
<config>
    <modules>
        <Mage_Authorizenet>
            <active>true</active>
            <codePool>core</codePool>
            <depends>
                <Mage_Paygate/>
                <Mage_Sales/>
                <Mage_Checkout/>
            </depends>
        </Mage_Authorizenet>
    </modules>
</config>
于 2013-06-06T23:09:49.443 回答
0

如果您找不到任何问题的解决方案,这是一种解决方法。

您可以为 authorize.net 创建自己的付款表格

Authorize.net 表单用于cc.phtml显示 Authorize.net 字段的文件,因此您可以复制此文件并从 xml 设置此表单。

转到您的 checkout.xml 并在<checkout_onepage_index translate="label">标签中找到checkout.payment.methods显示所有方法的操作方法,如下所示

 <action method="setMethodFormTemplate"><method>authorizenet</method><template>payment/form/authorizenet.phtml(which is copy of your cc.phtml)</template></action>

我没有测试它。

Authorize.net 使用此块显示表单字段,因此您可以进一步查看此文件 app\code\core\Mage\Paygate\Block\Authorizenet\Form\Cc.php

于 2013-06-03T07:00:44.950 回答
0

您还可以在 Magento 管理员中检查Mage_AuthorizenetMage_Paygate模块是否被禁用。

系统 -> 高级 -> 高级

确保它们在那里启用。

于 2017-04-25T12:29:19.623 回答