61 $serviceMinimal = (!isset($serviceMinimal) ? false : $serviceMinimal);
62 $serviceSkipCredentials = (!isset($serviceSkipCredentials) ? false : $serviceSkipCredentials);
63 $serviceSkipSecurity = (!isset($serviceSkipSecurity) ? false : $serviceSkipSecurity);
64 $serviceAllowReadonly = (!isset($serviceAllowReadonly) ? false : $serviceAllowReadonly);
65 $serviceShowInfo = (!isset($serviceShowInfo) ? false : $serviceShowInfo);
66 $serviceLoadMenu = (!isset($serviceLoadMenu) ? false : $serviceLoadMenu);
67 $serviceShowMenu = (!isset($serviceShowMenu) ? false : $serviceShowMenu);
69 $serviceMenuScript = (!isset($serviceMenuScript) ?
"" : $serviceMenuScript);
71 $serviceLiveCheck = (!isset($serviceLiveCheck) ? false : $serviceLiveCheck);
72 $serviceLoadCuInfo = (!isset($serviceLoadCuInfo) ? true : $serviceLoadCuInfo);
73 $serviceSuppressBanner = (!isset($serviceSuppressBanner) ? false : $serviceSuppressBanner);
75 $validLanguageCodes = Array(
"en_US",
"es_US",
"pl_US");
76 $serviceViewFromCuAdmin =
false;
88 require_once( dirname(__FILE__) .
"/../library/hcuLoadLibs.i" );
91 $HB_ENV[
'SYSENV'] = LoadSystemEnv(
"banking");
93 $errHndlr =
new CatchErrorHandler(HCU_PRODUCT_BANKING, $HB_ENV[
'SYSENV'][
'logger'], $HB_ENV[
'SYSENV'][
'devmode']);
94 $excHndlr =
new CatchExceptionHandler(HCU_PRODUCT_BANKING, $HB_ENV[
'SYSENV'][
'logger'], $HB_ENV[
'SYSENV'][
'devmode']);
100 set_error_handler(array($errHndlr,
"catchError"));
101 set_exception_handler(array($excHndlr,
"catchException"));
103 $dbPluginFile =
"db." . $HB_ENV[
'SYSENV'][
'db'][
'platform'] .
".i";
105 include (dirname(__FILE__) .
'/../../shared/library/' . $dbPluginFile);
110 $HB_ENV[
'USE_BS_FRAMEWORK'] =
true;
113 $dbh = GetDBH( $HB_ENV[
'SYSENV'][
'db'] );
114 $HB_ENV[
"dbh"] = $dbh;
124 $HB_ENV[
'currentscript'] = basename($_SERVER[
'SCRIPT_NAME']);
127 $HB_ENV[
"currentQuery"] = $_SERVER[
"QUERY_STRING"];
129 $HB_ENV[
'remoteIp'] = filter_input(INPUT_SERVER,
'REMOTE_ADDR', FILTER_SANITIZE_STRING);
149 SetEnvStatic( $HB_ENV );
151 if ($serviceLoadCuInfo) {
152 $HB_ENV[
'cu'] = substr(filter_input(INPUT_GET,
'cu', FILTER_SANITIZE_STRING, array(
'flags' => (FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH))), 0, 12);
153 if ($HB_ENV[
'cu'] ==
'' && in_array(basename($_SERVER[
'SCRIPT_NAME']), array(
'OFXRequest.prg',
'hcuAppFeed.prg',
'hcuAppDirector.prg'))) {
154 $HB_ENV[
'cu'] = substr(filter_input(INPUT_POST,
'ORG', FILTER_SANITIZE_STRING, array(
'flags' => (FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH))), 0, 12);
155 $HB_ENV[
'no_cookies'] =
true;
157 if ($HB_ENV[
'cu'] ==
'' && in_array(basename($_SERVER[
'SCRIPT_NAME']), array(
'MoneyDesk3.prg'))) {
158 $ReqPathArr = explode(
"/", $_SERVER[
'PATH_INFO']);
159 $HB_ENV[
'cu'] = HCU_array_key_value(1, $ReqPathArr);
160 $HB_ENV[
'cu'] = substr(preg_replace(
"/[^A-Za-z0-9]/",
"",$HB_ENV[
'cu']), 0, 12);
161 $HB_ENV[
'no_cookies'] =
true;
167 $isValidCU = LoadCUAdmin( $dbh, $HB_ENV[
'cu'], $HB_ENV );
168 if (!$isValidCU && strlen($HB_ENV[
'cu']) > 0) {
169 throw new ErrorException(
'Credit Union Not Found');
171 if (HCU_array_key_value(
"live", $HB_ENV)) {
174 require_once(dirname(__FILE__) .
'/../../shared/library/sAPIAppl.i');
177 IncludeApplPlugin($HB_ENV);
182 SetLanguageEnv( $HB_ENV );
185 $HB_ENV[
"Flang"] =
"en_US";
188 require_once dirname(__FILE__) .
'/../../shared/includes/third-party/Mobile_Detect.php';
190 if ($mobileDetect->isMobile() || $mobileDetect->isTablet()) {
191 $HB_ENV[
'platform'] =
'MBL';
193 $HB_ENV[
'platform'] =
'DSK';
199 if (!in_array($HB_ENV[
'Flang'], $validLanguageCodes) || trim($HB_ENV[
'Flang']) ==
'') {
200 $HB_ENV[
'Flang'] =
"en_US";
204 $Flang = $HB_ENV[
'Flang'];
208 if ($HB_ENV[
'homebanking_status'] !=
"O") {
211 throw new ErrorException($MC->msg(
'Could not Open Database', HCU_DISPLAY_AS_HTML), 900);
216 throw new ErrorException($MC->msg(
'Could not Open Database', HCU_DISPLAY_AS_HTML), 900);
221 $HB_ENV[
'dbh'] = $dbh;
226 $HB_ENV[
'allowReadonly'] = $serviceAllowReadonly;
228 if ($serviceLoadCuInfo) {
229 $serverParts = explode(
".",$_SERVER[
'SERVER_NAME']);
230 $HB_ENV[
'cuhost'] = array_shift($serverParts);
233 setLoginScript($HB_ENV);
236 if (!$serviceMinimal) {
238 header(
'Content-Type: text/html; charset=UTF-8');
241 $mbrStatus = Array();
242 if (!$serviceSkipCredentials) {
244 $mbrStatus = Check_Member_Credentials($HB_ENV, HCU_array_key_value(
"Ticket", $_COOKIE));
247 $serviceViewFromCuAdmin = HCU_array_key_value(
'Ca', $HB_ENV) !=
"";
249 if (!$mbrStatus[
'result']) {
250 $loginscript = $HB_ENV[
'loginscript'];
252 $login_query_string = $_SERVER[
'QUERY_STRING'];
259 HCU_setcookie_env($HB_ENV[
'SYSENV'],
"Ticket",
"", $now);
261 header(
"Location: {$loginscript}?" . $login_query_string .
"#");
268 $newCe = $now + $HB_ENV[
'SYSENV'][
'ticket'][
'expires'];
271 SetTicket($HB_ENV, $_COOKIE[
'Ticket'],
"Ctime={$newCtime}&Ce={$newCe}");
275 if ($HB_ENV[
'cu'] ==
'') {
276 $redirScript = $HB_ENV[
'homebankingpath'] .
"/{$HB_ENV['currentscript']}";
277 $redirQuery =
"cu=" . $HB_ENV[
'Cu'];
278 header(
"Location: {$redirScript}?{$redirQuery}#");
282 if (!$serviceViewFromCuAdmin) {
285 $paramInputs = Array(
'Uid' => $HB_ENV[
'Uid']);
286 $featureAccess = Perm_FeatureAccessList($dbh, $HB_ENV, $paramInputs);
287 if ($featureAccess[
'status'][
'code'] ==
'000') {
288 $HB_ENV[
'FeatureAccessList'] = HCU_array_key_value($HB_ENV[
'Uid'], $featureAccess[
'data']);
291 $HB_ENV[
'FeatureAccessList'] = Array();
299 $HB_ENV[
'Cu'] = $HB_ENV[
'cu'];
300 $serviceSuppressBanner =
true;
304 LoadClientEnvInfo( $HB_ENV, HCU_array_key_value(
"envinfo", $_COOKIE) );
309 $cuSettings = Array();
310 if (HCU_array_key_value(
"chome", $HB_ENV) !=
'') {
312 $settingsDir = ($HB_ENV[
'testmenu'] ==
'1' ?
'preview' :
'production');
313 $HB_ENV[
'settingsDir'] = $settingsDir;
314 $loadSettingsFile =
"/home/{$HB_ENV['chome']}/public_html/bankingIncludes/{$settingsDir}/hcuSettings.i";
316 if (is_readable($loadSettingsFile)) {
318 $fileContent = file_get_contents($loadSettingsFile);
320 $cuSettings = HCU_JsonDecode($fileContent);
324 throw new ErrorException(
'Credit Union Not Found');
330 if (!hcu_checkOffline($dbh, $HB_ENV)) {
335 throw new ErrorException($HB_ENV[
'offlinemsg'], 902);
346 if (!$serviceSkipSecurity && !$serviceViewFromCuAdmin) {
352 $l_MbrSettings = Check_Member_Settings($dbh, $HB_ENV, $MC);
353 $serviceViewFromCUAdmin= $HB_ENV[
"Ca"] !=
"";
356 $platform = $HB_ENV[
"platform"];
357 if ( ($l_MbrSettings[
'code'] !=
'000') &&
358 (($platform !=
"ADA" && $platform !=
"APP") ||
359 ($platform ==
"ADA" || $platform ==
"APP") && $HB_ENV[
"envinfo"] ==
"Pegasus") ) {
367 if (intval(HCU_array_key_value(
'sC', $HB_ENV)) == 0) {
369 $retryCount = $HB_ENV[
"failedremain"];
370 $timeExpires = time() + $HB_ENV[
'SYSENV'][
'ticket'][
'expires'];
371 $hashedValue = md5( $retryCount . $timeExpires . $HB_ENV[
"secret"] );
372 $profileCookie =
"remain=$retryCount&until=$timeExpires&check=$hashedValue";
374 HCU_setcookie_env($HB_ENV[
'SYSENV'],
"securePass", $profileCookie, 0);
378 $nextScript = $HB_ENV[
"loginpath"].
"/hcuProfileRequire.prg?".$HB_ENV[
"cuquery"];
379 header(
"Location: {$nextScript}");
386 if (HCU_array_key_value(
'sC', $HB_ENV) == 1) {
389 $_COOKIE[
'Ticket'] = SetTicket($HB_ENV, $_COOKIE[
'Ticket'], $tixOption);
396 HCU_setcookie_env ($HB_ENV[
'SYSENV'],
"securePass",
"", (time() - 3600));
402 }
catch ( Error $e) {
404 if (isset($excHndlr)) {
406 $excHndlr->catchException($e);
409 include_once(dirname(__FILE__) .
'/../../shared/includes/hcuBadRequest.i');
412 }
catch (ErrorException $e) {
418 $serviceErrorMsg = $e->getMessage();
419 $serviceErrorCode = $e->getCode();
422 if (isset($excHndlr)) {
423 $excHndlr->logException($e);
425 require_once(dirname(__FILE__) .
'/../includes/hcuErrorPage.i');