用zend studio 8.0.1打开phpcms V9,报错,:Class 'Sndapay' must implement inherited abstract method 'getPrepareData(...)'  令人费解:
Class 'Sndapay' 已经实现了这个'getPrepareData(...)方法啊,源码如下所示:
class Sndapay extends paymentabstract{
        
        public function __construct($config = array()) {        
                if (!empty($config)) $this->set_config($config);       
                $this->config['gateway_url'] = 'http://netpay.sdo.com/paygate/default.aspx';
                $this->config['gateway_method'] = 'POST';
                $this->config['notify_url'] = return_url('sndapay',1);
                $this->config['return_url'] = return_url('sndapay');
        }        public function getpreparedata() {                
                $prepare_data['Version'] = '3.0'; //gateway version
                $prepare_data['CurrencyType'] = 'RMB';
                $prepare_data['NotifyUrlType'] = 'http';
                $prepare_data['MerchantNo'] = $this->config['sndapay_account'];
                $prepare_data['MerchantUserId'] = '';
                $prepare_data['SignType'] = '2';                
                $prepare_data['NotifyUrl'] = $this->config['notify_url'];
                $prepare_data['PostBackUrl'] = $this->config['return_url'];
                $prepare_data['BackUrl'] = '';
                $prepare_data['PayChannel'] = '';        
                $prepare_data['DefaultChannel'] = '04';
                
                // 商品信息
                $prepare_data['ProductDesc'] = $this->product_info['name'];
                $prepare_data['Amount'] = $this->product_info['price'];
                $prepare_data['ProductNo'] = '';
                $prepare_data['ProductUrl'] = '';
                
                //订单信息
                $prepare_data['OrderNo'] = $this->order_info['id'];
                $prepare_data['OrderTime'] = date('YmdHis',$this->order_info['order_time']);                //买家信息
                $prepare_data['Re1'] = $this->product_info['body'];
                
                $data = $prepare_data['Version'].$prepare_data['Amount'].$prepare_data['OrderNo'].$prepare_data['MerchantNo'].$prepare_data['MerchantUserId'].$prepare_data['PayChannel'].$prepare_data['PostBackUrl'].$prepare_data['NotifyUrl'].$prepare_data['BackUrl'].$prepare_data['OrderTime'].$prepare_data['CurrencyType'].$prepare_data['NotifyUrlType'].$prepare_data['SignType'].$prepare_data['ProductNo'].$prepare_data['ProductDesc'].$prepare_data['Re1'].$prepare_data['DefaultChannel'].$prepare_data['ProductUrl'];
                
                // 数字签名
                $prepare_data['MAC'] = md5($data.$this->config['sndapay_key']);                return $prepare_data;
        }.....
}
abstract class paymentabstract
{
        ......
        abstract public function receive();        abstract public function notify();        abstract public function response($result);        abstract public function getPrepareData();
}