Пользовательский платежный шлюз Magento - PullRequest
4 голосов
/ 04 июня 2011

Я пытаюсь написать собственный платежный шлюз для Magento.Модуль распознается в административном бэкэнде (Система - Конфигурация - Способы оплаты), но при достижении «Платежной информации» во внешнем интерфейсе опция выбора модуля не появляется.

Ниже приведены три файла XMLЯ создал, и каталог, в котором они находятся.

Любая помощь будет принята с благодарностью.Спасибо.

root / app / etc / modules / Namespace_Module

<?xml version="1.0"?>

<config>
  <modules>
    <Namespace_Module>
        <active>true</active>
        <codePool>local</codePool>
    </Namespace_Module>
  </modules>
</config>

root / app / code / local // Пространство имен / Module / 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>

root / app / code / local // Пространство имен / Модуль / 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>

Ответы [ 2 ]

5 голосов
/ 04 июня 2011

Значения, которые вы устанавливаете в system.xml, являются глобальными значениями конфигурации Magento. Платежные модули должны включать поле конфигурации с именем model, в котором указывается класс PHP, отвечающий за логику оплаты. Взгляните на

app/code/core/Mage/Payment/etc/system.xml

Как правило, модуль делает это скрытым полем конфигурации, а затем предоставляет значение по умолчанию в config.xml. Рассмотрим этот бит 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 голос
/ 28 сентября 2011

Кажется, в вашем xml не определен раздел "блоки". Поэтому я предполагаю, что у вас еще нет файла * .phtml. Я испытал ту же проблему.

Пример, найденный здесь, помог мне: http://www.magentocommerce.com/boards/viewthread/230559/

Обратите внимание на раздел «блоки» в config.xml. Также обратите внимание на файл Blocks / *. Php и файл form.phtml.

...