標準の CC ブロックではなく iFrame を呼び出す Magento Payments モジュールをコーディングしようとしています。ただし、以下のコードを実行すると、次のエラーが発生します。
致命的なエラー: 106 行目の /opt/bitnami/apps/magento/htdocs/app/code/core/Mage/Payment/Helper/Data.php の非オブジェクトに対するメンバー関数 setMethod() の呼び出し
構成.xml:
<?xml version="1.0"?>
<config>
<modules>
<Lynch_Peach>
<!-- declare module's version information for database updates -->
<version>0.1.0</version>
</Lynch_Peach>
</modules>
<global>
<blocks>
<peach>
<class>Lynch_Peach_Block</class>
</peach>
</blocks>
<models>
<peach>
<class>Lynch_Peach_Model</class>
</peach>
</models>
<!-- declare resource setup for new module -->
<resources>
<!-- resource identifier -->
<peach_setup>
<!-- specify that this resource is a setup resource and used for upgrades -->
<setup>
<!-- which module to look for install/upgrade files in -->
<module>Lynch_Peach</module>
</setup>
<!-- specify database connection for this resource -->
<connection>
<!-- do not create new connection, use predefined core setup connection -->
<use>core_setup</use>
</connection>
</peach_setup>
<peach_write>
<connection>
<use>core_write</use>
</connection>
</peach_write>
<peach_read>
<connection>
<use>core_read</use>
</connection>
</peach_read>
</resources>
</global>
<!-- declare default configuration values for this module -->
<default>
<!-- 'payment' configuration section (tab) -->
<payment>
<!-- 'peach' configuration group (fieldset) -->
<peach>
<!-- by default this payment method is inactive -->
<active>0</active>
<!-- model to handle logic for this payment method -->
<model>peach/paymentMethod</model>
<!-- order status for new orders paid by this payment method -->
<order_status>pending</order_status>
<!-- default title for payment checkout page and order view page -->
<title>Peach Payments</title>
<cctypes>VI,MC</cctypes>
<payment_action>authorize_capture</payment_action>
<allowspecific>0</allowspecific>
</peach>
</payment>
</default>
</config>
お支払い方法.php
<?php
class Lynch_Peach_Model_PaymentMethod extends Mage_Payment_Model_Method_Cc
{
protected $_code = 'peach';
protected $_formBlockType = 'peach/form';
protected $_isGateway = false;
protected $_canAuthorize = false;
protected $_canCapture = false;
protected $_canCapturePartial = false;
protected $_canRefund = false;
protected $_canVoid = false;
protected $_canUseInternal = false;
protected $_canUseCheckout = true;
protected $_canUseForMultishipping = false;
protected $_canSaveCc = false;
public function createFormBlock($name)
{
$block = $this->getLayout()->createBlock('peach/form', $name)
->setMethod('peach')
->setPayment($this->getPayment())
->setTemplate('peach/form.phtml');
return $block;
}
}
?>
フォーム.php:
<?php
class Lynch_Peach_Block_Form extends Mage_Payment_Block_Form
{
// {{{ _construct()
/**
* _construct()
*/
protected function _construct()
{
parent::_construct();
$$this->setTemplate( 'peach/form.phtml' );
}
// }}}
}
?>