我创建了自定义支付模块。它来自system->高级和付款方式,但它不是在前端付款方式选择时间。 请查看我的代码
\应用\代码\本地\ GMO \付款\等
config.xml中
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<GMO_Payment>
<version>1.0.0</version>
</GMO_Payment>
</modules>
<global>
<models>
<GMO>
<class>GMO_Payment_Model</class>
</GMO>
</models>
<blocks>
<GMO_Payment>
<class>GMO_Payment_Block</class>
</GMO_Payment>
</blocks>
</global>
<resources>
<!-- resource identifier -->
<GMO_setup>
<!-- specify that this resource is a setup resource and used for upgrades -->
<setup>
<!-- which module to look for install/upgrade files in -->
<module>GMO_Payment</module>
</setup>
<!-- specify database connection for this resource -->
<connection>
<!-- do not create new connection, use predefined core setup connection -->
<use>core_setup</use>
</connection>
</GMO_setup>
<GMO_write>
<connection>
<use>core_write</use>
</connection>
</GMO_write>
<GMO_read>
<connection>
<use>core_read</use>
</connection>
</GMO_read>
</resources>
<default>
<payment>
<GMO>
<model>Payment/PaymentGMO</model>
<active>1</active>
<order_status>pending</order_status>
<title>GMO</title>
<payment_action>sale</payment_action>
<submit_url>https://someurl.com</submit_url>
<merchant_id>Insert merchant id</merchant_id>
<allowspecific>0</allowspecific>
<sort_order>1</sort_order>
</GMO>
</payment>
</default>
<frontend>
<routers>
<GMO>
<use>standard</use>
<args>
<module>GMO_Payment</module>
<frontName>GMO</frontName>
</args>
</GMO>
</routers>
</frontend>
</config>
的system.xml
<?xml version="1.0"?>
<config>
<sections>
<payment>
<groups>
<GMO_Payment translate="label comment" module="paypal">
<label>GMO</label>
<frontend_type>text</frontend_type>
<sort_order>0</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>10</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</active>
<title translate="label">
<label>Title</label>
<frontend_type>text</frontend_type>
<sort_order>20</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</title>
<order_status translate="label">
<label>New Order Status</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_order_status</source_model>
<sort_order>50</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</order_status>
<submit_url>
<label>Gateway URL</label>
<frontend_type>text</frontend_type>
<sort_order>58</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</submit_url>
<merchant_id>
<label>Merchant ID</label>
<frontend_type>text</frontend_type>
<sort_order>59</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</merchant_id>
<allowspecific translate="label">
<label>Payment Applicable From</label>
<frontend_type>select</frontend_type>
<sort_order>60</sort_order>
<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>0</show_in_store>
</allowspecific>
<specificcountry translate="label">
<label>Countries Payment Applicable From</label>
<frontend_type>multiselect</frontend_type>
<sort_order>70</sort_order>
<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>0</show_in_store>
<depends><allowspecific>1</allowspecific></depends>
</specificcountry>
<sort_order translate="label">
<label>Sort Order</label>
<frontend_type>text</frontend_type>
</sort_order><sort_order>100</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</fields>
</GMO_Payment>
</groups>
</payment>
</sections>
</config>
应用\代码\本地\ GMO \付款\模型\ standard.php
<?php
class GMO_Payment_Model_Standard extends Mage_Payment_Model_Method_Abstract
{
protected $_code = 'GMO_Payment';
protected $_isInitializeNeeded = true;
protected $_canUseInternal = false;
protected $_canUseForMultishipping = false;
protected $_isGateway = true;
* can this method capture funds?
*/
protected $_canCapture = true;
protected $_canRefund = false;
/**
* can this method void transactions?
*/
protected $_canVoid = true;
protected $_canUseCheckout = true;
/**
* can this method save cc info for later use?
*/
protected $_canSaveCc = false;
/**
* Return Order place redirect url
*
* @return string
*/
public function getOrderPlaceRedirectUrl() {
return Mage::getUrl('GMO/Payment/redirect', array('_secure' => true));
}
}
答案 0 :(得分:1)
我自己也经历过类似的事情。
我的问题(看起来你也有)在Magento的深处,它根据你的$_code
变量读取你的配置。因此,您的config.xml文件必须与您的代码匹配:
class GMO_Payment_Model_Standard extends Mage_Payment_Model_Method_Abstract
{
// Must be == config/default/payment/xxxx in your config.xml
protected $_code = GMO; // 'GMO_Payment';
}
此外,您的模型在config.xml中显示错误。它必须与您的类名的最后一部分(在您的情况下是“标准”)相同,但是小写:
<config>
<default>
<payment>
<GMO>
<model>Payment/standard</model>
....