zoukankan      html  css  js  c++  java
  • 在Magento中添加一个自己的支付模块----第一部分

    https://code.tutsplus.com/tutorials/create-a-custom-payment-method-module-in-magento-part-one--cms-23464

    首先,要对Magento的基础模型创建程序很熟悉;

    国外的一个网址:https://code.tutsplus.com/tutorials/magento-custom-module-development--cms-20643;

    这个是国内的比较好的博客文章:http://blog.csdn.net/suese/article/category/1916481

    自定义模块的代码池:local

    自定义模块的命名空间:Envato

    自定义模块的名字:Custompaymentmethod

    需要创建的文件:

    • app/etc/modules/Envato_All.xml: 这个文件让自定义模块可用;
    • app/code/local/Envato/Custompaymentmethod/etc/config.xml: 这个配置文件用来声明自定义模块;
    • app/code/local/Envato/Custompaymentmethod/etc/system.xml: 这个是系统配置文件,用来为自定义的支付方式设置配置项;
    • app/code/local/Envato/Custompaymentmethod/sql/custompaymentmethod_setup/install­-1.0.0.0.php:这个是和数据库相关的文件,用来给自定义支付方式创建自定义的字段;

    创建app/etc/modules/Envato_All.xml   

    <?xml version="1.0"?>

    <config>
      <modules>
        <Envato_Custompaymentmethod>
          <active>true</active>
          <codePool>local</codePool>
          <depends>
            <Mage_Payment />
          </depends>
        </Envato_Custompaymentmethod>
      </modules>
    </config>
      说明:这个配置文件指定了代码池 ,依赖的核心模块
    创建app/code/local/Envato/Custompaymentmethod/sql/custompaymentmethod_setup/install­-1.0.0.0.php
    <?php
    $installer = $this;
    $installer->startSetup();
    $installer->run("
    ALTER TABLE `{$installer->getTable('sales/quote_payment')}`
    ADD `custom_field_one` VARCHAR( 255 ) NOT NULL,
    ADD `custom_field_two` VARCHAR( 255 ) NOT NULL;
    ALTER TABLE `{$installer->getTable('sales/order_payment')}`
    ADD `custom_field_one` VARCHAR( 255 ) NOT NULL,
    ADD `custom_field_two` VARCHAR( 255 ) NOT NULL;
    ");
    $installer->endSetup();
      说明:这里在支付模块相关的表单中创建了两个字段;
    创建 app/code/local/Envato/Custompaymentmethod/etc/config.xml
    <?xml version="1.0"?>
    <config>
      <modules>
        <Envato_Custompaymentmethod>
          <version>1.0.0.0</version>
        </Envato_Custompaymentmethod>
      </modules>
      <global>
        <fieldsets>
          <sales_convert_quote_payment>
            <custom_field_one>
              <to_order_payment>*</to_order_payment>
            </custom_field_one>
            <custom_field_two>
              <to_order_payment>*</to_order_payment>
            </custom_field_two>
          </sales_convert_quote_payment>
        </fieldsets>
        <helpers>
          <custompaymentmethod>
            <class>Envato_Custompaymentmethod_Helper</class>
          </custompaymentmethod>
        </helpers>
        <blocks>
          <custompaymentmethod>
            <class>Envato_Custompaymentmethod_Block</class>
          </custompaymentmethod>
        </blocks>
        <models>
          <custompaymentmethod>
            <class>Envato_Custompaymentmethod_Model</class>
          </custompaymentmethod>
        </models>
        <resources>
          <custompaymentmethod_setup>
            <setup>
              <module>Envato_Custompaymentmethod</module>
            </setup>
          </custompaymentmethod_setup>
        </resources>
      </global>
      <default>
        <payment>
          <custompaymentmethod>
            <active>1</active>
            <model>custompaymentmethod/paymentmethod</model>
            <order_status>pending</order_status>
            <title>CustomPaymentMethod</title>
            <allowspecific>0</allowspecific>
            <payment_action>sale</payment_action>
          </custompaymentmethod>
        </payment>
      </default>
      <frontend>
        <routers>
          <custompaymentmethod>
            <use>standard</use>
            <args>
              <module>Envato_Custompaymentmethod</module>
              <frontName>custompaymentmethod</frontName>
            </args>
          </custompaymentmethod>
        </routers>
      </frontend>
    </config>
    说明:
    1、在用户确认订单的时候,希望用户可以看见我们的支付方式,当用户选择我们的支付方式的时候,给用户提供两输入信息的提示框;
    2、<fieldsets> 、<sales_convert_quote_payment>这两个标签告诉Magento将这些字段信息和客户订单信息一起保存;
    3、helpers、blocks、models标签是其他部分的补充;
    4、resources用来定义资源,使用的是<custompaymentmethod_setup>标签;Magento会检测这个文件,然后为我们的模块安装必要的SQL脚本;
    5、 <payment> 、<custompaymentmethod>将我们的支付模块插入到Magento的支付模块中;这标签里面可以继续创建支付模块的字段,如支付的状态、订单的状态等;
    6、<frontend>、<routers>在前端给支付方式指定了路由;
     
    创建 app/code/local/Envato/Custompaymentmethod/etc/system.xml
    <?xml version="1.0"?>
    <config>   
      <sections>
        <payment>
          <groups>
            <custompaymentmethod translate="label" module="custompaymentmethod">
              <label>CustomPaymentMethod Module</label>
              <sort_order>1000</sort_order>
              <show_in_default>1</show_in_default>
              <show_in_website>1</show_in_website>
              <show_in_store>0</show_in_store>
              <fields>
                <title translate="label">
                  <label>Title</label>
                  <frontend_type>text</frontend_type>
                  <show_in_default>1</show_in_default>
                  <show_in_website>1</show_in_website>
                  <show_in_store>0</show_in_store>
                  <sort_order>1</sort_order>
                </title>
                <active translate="label">
                  <label>Enabled</label>
                  <frontend_type>select</frontend_type>
                  <source_model>adminhtml/system_config_source_yesno</source_model>
                  <show_in_default>1</show_in_default>
                  <show_in_website>1</show_in_website>
                  <show_in_store>0</show_in_store>
                  <sort_order>2</sort_order>
                </active>
                <order_status translate="label">
                  <label>New order status</label>
                  <frontend_type>select</frontend_type>
                  <source_model>adminhtml/system_config_source_order_status</source_model>
                  <show_in_default>1</show_in_default>
                  <show_in_website>1</show_in_website>
                  <show_in_store>0</show_in_store>
                  <sort_order>3</sort_order>
                </order_status>
                <allowspecific translate="label">
                  <label>Payment from applicable countries</label>
                  <frontend_type>allowspecific</frontend_type>
                  <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
                  <show_in_default>1</show_in_default>
                  <show_in_website>1</show_in_website>
                  <show_in_store>1</show_in_store>
                  <sort_order>4</sort_order>
                </allowspecific>
                <specificcountry translate="label">
                  <label>Payment from Specific countries</label>
                  <frontend_type>multiselect</frontend_type>
                  <source_model>adminhtml/system_config_source_country</source_model>
                  <show_in_default>1</show_in_default>
                  <show_in_website>1</show_in_website>
                  <show_in_store>1</show_in_store>
                  <sort_order>5</sort_order>
                </specificcountry>
              </fields>
            </custompaymentmethod>
          </groups>
        </payment>
      </sections>
    </config>
      说明:为我们的支付方式配置字段的;
    创建/app/code/local/Envato/Custompaymentmethod/Helper/Data.php
    class Envato_Custompaymentmethod_Helper_Data extends Mage_Core_Helper_Abstract{
      //
    }

    验证: System > Configuration > Sales > Payment Methods查看我们自己的支付方式会显示在列表中;
     
    原文地址:https://code.tutsplus.com/tutorials/create-a-custom-payment-method-module-in-magento-part-one--cms-23464
     
     
     
     
  • 相关阅读:
    【黑金动力社区】【原创博文集锦】《Verilog HDL那些事儿》导读
    [黑金原创教程][连载]关于《iBoard 电子学堂》的学习及进阶方式
    发布《iBoard 电子学堂》DEMO代码
    Cyclone III中LVDS的设计
    [黑金原创教程][连载][iBoard 电子学堂][第八卷 设计任意波发生器]第三篇 直接数字合成(DDS)原理
    专业级FPGA视频图像处理开发板发布
    [黑金原创教程][连载][iBoard 电子学堂][第〇卷 电子基础]第二篇 电路图与印刷电路板
    [黑金原创教程][连载][iBoard 电子学堂][第八卷 设计任意波发生器]第一篇 iBoard 任意波发生器简介
    [黑金原创教程][连载][iBoard 电子学堂][第〇卷 电子基础]第一篇 认识电子元器件
    ucgui 在《iBoard 电子学堂》上的移植
  • 原文地址:https://www.cnblogs.com/liudongqing/p/7417183.html
Copyright © 2011-2022 走看看