用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();
}
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();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货