我正在爲opencart創建一個自定義網關模塊,但我在代碼中存在一些問題。 你能告訴我我做錯了什麼嗎?網關中的未定義方法
Opencart的調試器顯示錯誤:
[03-Oct-2013 06:50:02 America/Chicago] PHP Fatal error: Call to undefined method ControllerPaymentMyBank::check_order() in /home/***/public_html/catalog/controller/payment/mybank.php on line 207
[03-Oct-2013 06:50:34 America/Chicago] PHP Fatal error: Call to undefined method ControllerPaymentMyBank::ResponseToBank() in /home/***/public_html/catalog/controller/payment/mybank.php on line 225
我使用的功能:
public function callback() {
//SOME CODE HERE WORKS....
$xml = xml_parser_create('UTF-8');
xml_parse_into_struct($xml, html_entity_decode($_POST['ConfirmRequest']), $vals);
xml_parser_free($xml);
foreach ($vals as $data)
{
if ($data['tag']=='STATUS')
$Status=$data['value'];
if ($data['tag']=='PAYMENTID')
$PaymentId=$data['value'];
if ($data['tag']=='PAYMENTDATE')
$PaymentDate=$data['value'];
if ($data['tag']=='TRANSACTIONID')
$TransactionId=$data['value'];
if ($data['tag']=='AMOUNT')
$Amount=$data['value'];
if ($data['tag']=='REASON')
$Reason=$data['value'];
if ($data['tag']=='CARDTYPE')
$CardType=$data['value'];
}
if($Status=='C')
{
if($this->check_order($TransactionId,$Amount))
$this->ResponseToBank($TransactionId,$PaymentId,'ACCEPTED');
else
$this->ResponseToBank($TransactionId,$PaymentId,'DECLINED');
}
if($Status=='Y')
{
if($this->success_order($TransactionId))
$this->ResponseToBank($TransactionId,$PaymentId,'ACCEPTED');
else
$this->ResponseToBank($TransactionId,$PaymentId,'DECLINED');
}
$this->ResponseToBank($TransactionId,$PaymentId,'ACCEPTED');
function ResponseToBank($TransactionId,$PaymentId,$Status)
{
$xmlstr = "<ConfirmResponse>";
$xmlstr .= "<TransactionId>".$TransactionId."</TransactionId>";
$xmlstr .= "<PaymentId>".$PaymentId."</PaymentId>";
$xmlstr .= "<Status>".$Status."</Status>";
$xmlstr .= "</ConfirmResponse>";
header('Content-type: text/xml');
die($xmlstr);
}
function check_order($orderid,$amount)
{
return true;
}
function success_order($orderid)
{
return true;
}
}
我怎麼可以定義這些方法對不對?
耶穌在天堂,請確保你的PHP技能會做得更好,然後你會爲OpenCart寫任何東西......特別是如果這是一個支付網關! – shadyyx
是你的超級puper風格添加負面點?如果你不喜歡某些東西,只需關閉線程先生。大腦 – vkatsitadze
我給消極和積極的一點。我對這兩個答案給予了積極的評價,因爲它們都很好,但是由於這些原因,我對你的問題給出了一個否定的觀點:你沒有*展示出對解決問題的最低限度的理解*,恕我直言,這個問題對於社區,代碼看起來很糟糕,所以我不希望其他*開發人員*來舉例說明。我希望我解釋清楚。如果你看到我的帳戶你會發現從1051票我只給** ** 124積分,而708 upvotes ...所以不,這不是我的風格,除非我覺得需要downvote。 – shadyyx