我正在尝试为Magento编写自定义支付网关。该模块在管理后端(系统 - 配置 - 付款方式)中被识别,但是当到达前端的“付款信息”时,不会出现选择模块的选项。
下面是我创建的三个XML文件,以及它们所在的目录。
非常感谢任何帮助。感谢。
根/应用的/ etc /模块/ Namespace_Module
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<active>true</active>
<codePool>local</codePool>
</Namespace_Module>
</modules>
</config>
根/应用程序/代码/本地//命名空间/模块的/ etc / config.xml中
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Module>
<version>0.1.0</version>
</Namespace_Module>
</modules>
<global>
<models>
<alias>
<class>Namespace_Module_Model</class>
</alias>
</models>
<resources>
<alias_setup>
<setup>
<module>Namespace_Module</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</alias_setup>
<alias_write>
<connection>
<use>core_write</use>
</connection>
</alias_write>
<alias_read>
<connection>
<use>core_read</use>
</connection>
</alias_read>
</resources>
</global>
根/应用程序/代码/本地//命名空间/模块的/ etc /的system.xml
<?xml version="1.0"?>
<config>
<sections>
<payment>
<groups>
<alias translate="label">
<label>Module</label>
<frontend_type>text</frontend_type>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<fields>
<active translate="label">
<label>Enabled: </label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</active>
<title translate="label">
<label>Title: </label>
<frontend_type>text</frontend_type>
<sort_order>2</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</title>
<host translate="label">
<label>Host Address: </label>
<frontend_type>text</frontend_type>
<sort_order>3</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</host>
<port translate="label">
<label>Port Number: </label>
<frontend_type>text</frontend_type>
<sort_order>4</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</port>
<cctypes translate="label">
<label>Credit Card Types: </label>
<frontend_type>multiselect</frontend_type>
<source_model>adminhtml/system_config_source_payment_cctype</source_model>
<sort_order>5</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</cctypes>
<useccv translate="label">
<label>Credit Card Verification: </label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>6</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</useccv>
</fields>
</alias>
</groups>
</payment>
</sections>
答案 0 :(得分:5)
您在system.xml
中设置的值是全局Magento配置值。支付模块需要包含名为model
的配置字段,该字段指定负责支付逻辑的PHP类。看看
app/code/core/Mage/Payment/etc/system.xml
通常,模块会将其设置为隐藏配置字段,然后在config.xml
中提供默认值。从Mage/Payment/etc/config.xml
<default>
<payment>
<ccsave>
<active>1</active>
<cctypes>AE,VI,MC,DI</cctypes>
<model>payment/method_ccsave</model>
<order_status>pending</order_status>
<title>Credit Card (saved)</title>
<allowspecific>0</allowspecific>
<group>offline</group>
</ccsave>
他们在这里设置了payment/method_ccsave
的模型。这是与PHP Model类
Mage_Payment_Model_Method_Ccsave
您的配置似乎缺少此课程,这是您的付款选项未显示的一个原因。
答案 1 :(得分:1)
您的xml似乎没有定义“块”部分。所以我假设你还没有创建* .phtml文件。我遇到了同样的问题。
这里的例子帮助我: http://www.magentocommerce.com/boards/viewthread/230559/
记下config.xml的“blocks”部分。 另外,请注意Blocks / * .php文件和form.phtml文件。