1. Generally in Vtiger 6.4 we create a module and just check / uncheck accordingly , to be able to see module in Customer Portal.
sometime if module not exists in vTiger CRM and we want a custom module without creating it in Vtiger CRM.
$avmod = array_merge(array("Home", 'Transaction'), $avmod);
4. Generally , transaction module contained two function success and cancel , so we need to allowed these two function whenever a request come to access Transaction success and cancel functions.Below condition / Code allowed you to access these function in MYC customer portal. You need to placed these condition inside class Router {}.
else if ($targetmodule == 'Transaction' && isset($_REQUEST['fun']) && $_REQUEST['fun'] == 'success')
$mod->get_success();
else if ($targetmodule == 'Transaction' && isset($_REQUEST['fun']) && $_REQUEST['fun'] == 'cancel')
$mod->get_cancel();
5. Now create a folder customerportal\modules\Transaction and create a file index.php and place below code
class Transaction extends BaseModule {
function get_success() {
$root_directory = $GLOBALS['root_dir'];
// Associated Transaction AS Deposit , Custom module Exists in vTiger CRM 6.4
$data['module'] = ($this->module == 'Transaction') ? 'Deposit' : '';
$data['contactid'] = $_SESSION["loggeduser"]['id'];
$data['sessionid'] = $_SESSION["loggeduser"]['sessionid'];
$getway_order_id = $_SESSION["getway_order_id"];
$order_id = isset($_GET['orid']) ? $_GET['orid'] : '';
$payment_method = isset($_GET['pm']) ? $_GET['pm'] : '';
$sparams = array(
'id' => $_SESSION["loggeduser"]['id'],
'module' => ($this->module == 'Transaction') ? 'Deposit' : '',
'sessionid' => $_SESSION["loggeduser"]['sessionid'],
'getway_order_id' => $getway_order_id,
'order_id' => $order_id,
'payment_method' => $payment_method,
'paypal_payer_id' => $payer_id
);
//first validate order id
$order_info = $GLOBALS["sclient"]->call('get_order_info', array($order_id));
if (isset($order_info) && count($order_info) > 0 && $order_info != "") {
$result = $this->do_save_transation($payment_method, $sparams);
}
if (isset($uresult) && count($uresult) > 0 && $uresult != "") {
unset($_SESSION["getway_order_id"]);
}
if (isset($_SESSION["getway_order_id"])) {
unset($_SESSION["getway_order_id"]);
}
$redirectUrl = 'index.php?module=Deposit&action=index';
header("Location: $redirectUrl");
exit;
}
public function do_save_transation($payment_method, $sparams) {
switch ($payment_method) {
case 'Neteller':
break;
case 'Paypal':
break;
case 'Skrill':
break;
case 'Debit/CreditCard':
break;
default:
break;
}
return $result;
}
function get_cancel() {
$data['module'] = ($this->module == 'Transaction') ? 'Deposit' : '';
$data['contactid'] = $_SESSION["loggeduser"]['id'];
$data['sessionid'] = $_SESSION["loggeduser"]['sessionid'];
$getway_order_id = $_SESSION["getway_order_id"];
$order_id = isset($_GET['orid']) ? $_GET['orid'] : '';
$payment_method = isset($_GET['pm']) ? $_GET['pm'] : '';
$sparams = array(
'id' => $_SESSION["loggeduser"]['id'],
'module' => ($this->module == 'Transaction') ? 'Deposit' : '',
'sessionid' => $_SESSION["loggeduser"]['sessionid'],
'getway_order_id' => $getway_order_id,
'order_id' => $order_id,
'payment_method' => $payment_method,
'paypal_payer_id' => $payer_id
);
$result = $GLOBALS["sclient"]->call('do_cancel_transaction', array($sparams));
if (isset($result) && count($result) > 0 && $result != "") {
unset($_SESSION["getway_order_id"]);
}
if (isset($_SESSION["getway_order_id"])) {
unset($_SESSION["getway_order_id"]);
}
$redirectUrl = 'index.php?module=Deposit&action=index&status=';
header("Location: $redirectUrl");
exit;
}
}
