示例#1
0
 public function actionEpayBg()
 {
     $db_ext = new DbExt();
     $data = $_GET;
     $msg = '';
     $error_receiver = '';
     if ($data['mode'] == "receiver") {
         $mode = Yii::app()->functions->getOptionAdmin('admin_mode_epaybg');
         if ($mode == "sandbox") {
             $min = Yii::app()->functions->getOptionAdmin('admin_sandbox_epaybg_min');
             $secret = Yii::app()->functions->getOptionAdmin('admin_sandbox_epaybg_secret');
         } else {
             $min = Yii::app()->functions->getOptionAdmin('admin_live_epaybg_min');
             $secret = Yii::app()->functions->getOptionAdmin('admin_live_epaybg_secret');
         }
         /*dump($min);
         		dump($secret);*/
         $EpayBg = new EpayBg();
         $ENCODED = $data['encoded'];
         $CHECKSUM = $data['checksum'];
         $hmac = $EpayBg->hmac('sha1', $ENCODED, $secret);
         /*dump("Check");
           dump($CHECKSUM);
           dump($hmac);*/
         //if ($hmac == $CHECKSUM) {
         $data_info = base64_decode($ENCODED);
         $lines_arr = split("\n", $data_info);
         $info_data = '';
         //dump($lines_arr);
         if (is_array($lines_arr) && count($lines_arr) >= 1) {
             foreach ($lines_arr as $line) {
                 if (!empty($line)) {
                     $payment_info = explode(":", $line);
                     $invoice_number = str_replace("INVOICE=", '', $payment_info[0]);
                     $status = str_replace("STATUS=", '', $payment_info[1]);
                     if (preg_match("/PAID/i", $payment_info[1])) {
                         $info_data .= "INVOICE={$invoice_number}:STATUS=OK\n";
                         Yii::app()->functions->epayBgUpdateTransaction($invoice_number, $status);
                     } else {
                         $info_data .= "INVOICE={$invoice_number}:STATUS=ERR\n";
                         Yii::app()->functions->epayBgUpdateTransaction($invoice_number, $status);
                     }
                 }
             }
             echo $info_data;
             Yii::app()->functions->createLogs($info_data, "epaybg");
             die;
         } else {
             $error_receiver = "ERR=Not valid CHECKSUM\n";
         }
         /*} else {
           	$error_receiver="ERR=Not valid CHECKSUM\n";
           }*/
         if (!empty($error_receiver)) {
             echo $error_receiver;
             Yii::app()->functions->createLogs($error_receiver, "epaybg");
         } else {
             Yii::app()->functions->createLogs("none response", "epaybg");
         }
         die;
     } elseif ($data['mode'] == "cancel") {
         $msg = t("Transaction has been cancelled");
     } elseif ($data['mode'] == "accept") {
         if ($trans_info = Yii::app()->functions->barclayGetTokenTransaction($data['token'])) {
             //dump($trans_info);
             switch ($data['mode']) {
                 case "accept":
                     if ($trans_info['transaction_type'] == "order") {
                         $params_update = array('status' => "pending", 'date_modified' => date('c'));
                         $db_ext->updateData("{{order}}", $params_update, 'order_id', $data['token']);
                         header('Location: ' . websiteUrl() . "/store/receipt/id/" . $data['token']);
                     } else {
                         if ($token_details = Yii::app()->functions->getMerchantByToken($data['token'])) {
                             $db_ext->updateData("{{merchant}}", array('payment_steps' => 3, 'membership_purchase_date' => date('c')), 'merchant_id', $token_details['merchant_id']);
                             header('Location: ' . websiteUrl() . "/store/merchantSignup/Do/thankyou2/token/" . $data['token']);
                         } else {
                             $msg = t("Token not found");
                         }
                     }
                     break;
                 case "cancel":
                     if ($trans_info['transaction_type'] == "order") {
                         header('Location: ' . websiteUrl() . "/store/");
                     } else {
                         header('Location: ' . websiteUrl() . "/store/merchantSignup/Do/step3/token/" . $data['token']);
                     }
                     break;
             }
         } else {
             $msg = t("Transaction information not found");
         }
     }
     if (!empty($msg)) {
         $this->render('error', array('message' => $msg));
     }
 }
示例#2
0
        $secret = Yii::app()->functions->getOptionAdmin('admin_live_epaybg_secret');
        $page = Yii::app()->functions->getOptionAdmin('admin_live_epaybg_request');
        $lang = Yii::app()->functions->getOptionAdmin('admin_live_epaybg_lang');
    }
    $params['MIN'] = $min;
    $params['INVOICE'] = $payment_ref;
    $params['AMOUNT'] = $amount_to_pay;
    $params['CURRENCY'] = adminCurrencyCode();
    $params['EXP_TIME'] = date('d.m.Y', strtotime('+5 days'));
    $params['DESCR'] = $payment_description;
    $fields['PAGE'] = $page;
    $fields['LANG'] = $lang;
    $fields['URL_OK'] = websiteUrl() . "/merchant/epaybg/mode/accept/token/{$my_token}";
    $fields['URL_CANCEL'] = websiteUrl() . "/merchant/epaybg/mode/cancel";
    $params['AMOUNT'] = $amount_to_pay;
    $EpayBg = new EpayBg();
    $EpayBg->params = $params;
    $EpayBg->fields = $fields;
    $EpayBg->min = $min;
    $EpayBg->secret = $secret;
    $forms = $EpayBg->generateForms();
    /*dump($params);
    	dump($fields);*/
    $trans_type = "sms_purchase";
    Yii::app()->functions->barclaySaveTransaction($payment_ref, $my_token, $trans_type, $package_id);
} else {
    $error = Yii::t("default", "Sorry but we cannot find what your are looking for.");
}
?>
<div class="page-right-sidebar payment-option-page">
  <div class="main">  
示例#3
0
    $params['MIN'] = $min;
    $params['INVOICE'] = $payment_ref;
    $params['AMOUNT'] = $amount_to_pay;
    $params['CURRENCY'] = adminCurrencyCode();
    $params['EXP_TIME'] = date('d.m.Y', strtotime('+5 days'));
    $params['DESCR'] = $payment_description;
    $fields['PAGE'] = $page;
    $fields['LANG'] = $lang;
    $fields['URL_OK'] = websiteUrl() . "/store/epaybg/mode/accept/token/{$order_id}";
    $fields['URL_CANCEL'] = websiteUrl() . "/store/epaybg/mode/cancel";
    /*dump($min);
    	dump($secret);
    	dump($params);
    	dump($fields);*/
    if (!empty($min) && !empty($secret)) {
        $EpayBg = new EpayBg();
        $EpayBg->params = $params;
        $EpayBg->fields = $fields;
        $EpayBg->min = $min;
        $EpayBg->secret = $secret;
        $forms = $EpayBg->generateForms();
        //save information later get the information
        $trans_type = 'order';
        $param3 = $EpayBg->getEncoded();
        Yii::app()->functions->barclaySaveTransaction($payment_ref, $order_id, $trans_type, '', $merchant_id, $param3);
    } else {
        $error = t("This merchant has not properly setup payment gateway");
    }
} else {
    $error = t("Something went wrong during processing your request. Please try again later.");
}