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;
- }
- }