コード例 #1
0
 /**
  * Manages the 'return' and 'cancel' replies
  */
 function complete()
 {
     $this->extend("EwayPayment_Handler_completion_start");
     if (isset($_REQUEST['code']) && ($code = $_REQUEST['code'])) {
         $params = explode('-', $code);
         if (count($params) == 2) {
             $payment = EwayPayment::get()->byID(intval($params[0]));
             if ($payment && $payment->AuthorisationCode == $params[1]) {
                 if (isset($_REQUEST['AccessPaymentCode'])) {
                     $url = $payment->EwayConfirmationURL($_REQUEST['AccessPaymentCode']);
                     $response = file_get_contents($url);
                     if ($response) {
                         $response = Convert::xml2array($response);
                         if (isset($response['ResponseCode']) && $response['ResponseCode'] == '00') {
                             $payment->Status = 'Success';
                         } else {
                             $payment->Status = 'Failure';
                         }
                     } else {
                         $payment->Status = 'Failure';
                     }
                     $payment->write();
                     $payment->redirectToOrder();
                 }
             }
         }
     }
 }