Files
ms1inscription-v5/php/inc_settings.php
stephan 797e66fec3 MSIN-4417 Refactor refund handling in registration management to support event context
This commit enhances the refund functionality by introducing event context handling for refunds. It updates the logic to ensure that refunds are linked to the correct event, improving authorization checks and refund calculations. Additionally, the refund context is now passed through various functions to ensure accurate processing. The version code is incremented to 4.72.718 to reflect these changes.
2026-06-30 15:13:06 -04:00

478 lines
17 KiB
PHP

<?php
//ini_set( 'display_errors', 1 );
//error_reporting( E_ALL );
/*************
*
* Constantes *
*
**************/
define('_VERSION_CODE', '4.72.718');
define('_DATE_CODE', '2026-06-30');
//MSIN-4290
define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe');
// Outil temporaire ms1_kc_set.php — modifier key_chain_http (lien /kc/{pk}/)
// KEYCHAIN_HTTP_EDIT_SECRET : paramètre ?k= dans l'URL (mot de passe d'accès à la page)
// KEYCHAIN_HTTP_EDIT_SHIFT : ajouté au numéro saisi (ex. 8 → pk 108 en base)
// KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS : com_id autorisés (virgules) pour /ms1_kc_set.php sans ?k=
define('KEYCHAIN_HTTP_EDIT_SECRET', 'ms1_kc_http_edit_2026_c7e4a91f3b2d8e0f6a5c4b3d2e1f0a9');
define('KEYCHAIN_HTTP_EDIT_SHIFT', 100);
define('KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS', '');
/**************************************
*
* Profils connexion BD — source unique *
*
**************************************/
$tabConnClientPreprod = array(
'host' => 'localhost',
'user' => 'ms1incription_bd',
'pass' => '3+~=,y=eV)M;',
'db' => 'ms1incription_preprod',
);
$tabConnClientProd = array(
'host' => 'localhost',
'user' => 'ms1incription_bd',
'pass' => '3+~=,y=eV)M;',
'db' => 'ms1incription_prod',
);
$tabConnDevPreprod = array(
'host' => 'localhost',
'user' => 'devinscription_bd',
'pass' => 'x$@_v0-l_I((',
'db' => 'devinscription_preprod',
);
$tabConnDevProd = array(
'host' => 'localhost',
'user' => 'devinscription_bd',
'pass' => 'x$@_v0-l_I((',
'db' => 'devinscription_prod',
);
$tabConnCrmClient = array(
'host' => 'localhost',
'user' => 'ms1crm_bd',
'pass' => 'fPDJ,][ZGPwL',
'db' => 'ms1crm_prod',
);
$tabConnCrmDev = array(
'host' => 'localhost',
'user' => 'devcrmms1_bd',
'pass' => '.vB==c$s_Yk7',
'db' => 'devcrmms1_dev',
);
/**
* Branche le site sur un profil préprod + prod (même host/user/pass).
* $strMainRole : 'preprod' ou 'prod' → $strDatabaseMain
*/
function fxSettingsUseDbProfiles($tabPreprod, $tabProd, $strMainRole = 'preprod') {
global $strDatabaseHost, $strDatabaseUser, $strDatabasePass;
global $strDatabaseMain, $strDatabasePreProd, $strDatabaseProd;
$strDatabaseHost = $tabPreprod['host'];
$strDatabaseUser = $tabPreprod['user'];
$strDatabasePass = $tabPreprod['pass'];
$strDatabasePreProd = $tabPreprod['db'];
$strDatabaseProd = $tabProd['db'];
$strDatabaseMain = ($strMainRole === 'prod') ? $tabProd['db'] : $tabPreprod['db'];
}
function fxSettingsUseCrmProfile($tabCrm) {
global $strDatabaseHostcrm, $strDatabaseUsercrm, $strDatabasePasscrm, $strDatabaseMaincrm;
$strDatabaseHostcrm = $tabCrm['host'];
$strDatabaseUsercrm = $tabCrm['user'];
$strDatabasePasscrm = $tabCrm['pass'];
$strDatabaseMaincrm = $tabCrm['db'];
}
/**********************
*
* Variables globales *
*
**********************/
$strHost = (!empty($_SERVER['HTTP_HOST'])) ? trim($_SERVER['HTTP_HOST']) : '';
$currentFile = (!empty($_SERVER["PHP_SELF"])) ? trim($_SERVER["PHP_SELF"]) : '';
$parts = Explode('/', $currentFile);
$vPage = $parts[count($parts) - 1];
$vEmail = 'confirmation@ms1timing.com';
$vClient = 'ms1inscription';
$vNumero = '514-360-1610';
$vNumeroSF = '1-855-584-6464';
$vNumeroSFL = '1-855-5-TIMING';
date_default_timezone_set('America/Montreal');
$blnShowErrors = true;
$strConAdmin = '';
if (isset($_SESSION['usa_id'])) {
$strConAdmin = ' - Connecté en <span class="text-uppercase">admin</span> (' . $_SESSION['usa_info']['com_login'] . ')';
}
/**************************************
*
* Variables selon les environnements *
*
**************************************/
$vblnEnvironementPreProd = false;
$vblnEnvironementDev = false;
$arrConDatabaseClientPreProd = null;
$arrConDatabaseClientProd = null;
switch ($strHost) {
/****************************
* Environnement MYINTERNE *
****************************/
case "myinterne.com":
case "www.myinterne.com":
case "preprod.myinterne.com":
case "www.preprod.myinterne.com":
$vGoogleAnalytics = "";
$vblnEnvironementDev = false;
$blnShowErrors = false;
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.preprod.myinterne.com';
$vRepertoireFichiers = '/preprod';
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">TEST</span>' . $strConAdmin . '</strong>
</div>
';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'preprod');
fxSettingsUseCrmProfile($tabConnCrmClient);
$arrConFTP = array(
'host' => '127.0.0.1',
'user' => 'ms1inscription',
'pass' => 'ms1911',
'path_prod' => '/home/ms1incription/public_html',
'path_preprod'=> '/home/ms1incription/public_html/preprod'
);
$isPreprod = (strpos($strHost, 'preprod.') !== false);
if (!$isPreprod) {
$favicon = 'favicon.ico';
$faviconadm = 'favicon-rouge.ico';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'prod');
$vblnEnvironementDev = false;
$vGoogleAnalytics = "";
$vPaypaladv = true;
$vPaypaladv_SANDBOX = false;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_client');
define('PAYPAL_ENV_FOOTER', 'prod_client');
define('PAYPAL_BASE_URL', 'https://api-m.paypal.com');
define('PAYPAL_CLIENT_ID', 'AU3fhK6opJ2cBkTghAHf02fsimwj345zn3TOPL5we3z0C9HNT_sU341OkIP9l-ucgE1JdBhmt3WlHb2v');
define('PAYPAL_CLIENT_SECRET', 'EDg0Y1ZxvUmrAxY9_-NZP3EsuoMRf2lu9st1mDn8Ha7f5z4hrk7_KKsu_tM_PSri86YuFRqbaVKBADlX');
define('PAYPAL_WEBHOOK_ID', '2EW679080K7814041');
define('PAYPAL_SANDBOX', false);
define('PAYPAL_CURRENCY', 'CAD');
if (isset($_SESSION['usa_id'])) {
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">PROD</span>' . $strConAdmin . '</strong>
</div>
';
} else {
$vEnvNotice = '';
}
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.myinterne.com';
$vRepertoireFichiers = '';
$vGoogleAnalytics = "
<!-- Google tag (gtag.js) -->
<script async src=\"https://www.googletagmanager.com/gtag/js?id=G-9KF526LB6D\"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-8LEDDLNB94');
</script>
";
} else {
$favicon = 'favicon-jaune.ico';
$faviconadm = 'favicon-orange.ico';
$vblnEnvironementPreProd = true;
$vblnEnvironementDev = true;
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_test');
define('PAYPAL_ENV_FOOTER', 'prod_test');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AXiOtwcCb4Vqf7QylPje-K2xp9lOIfCv_HMW8oWn1k8cRJJ0sSu_sVNjtQqaoDll9-vN8LpmfrqfI82d');
define('PAYPAL_CLIENT_SECRET', 'EEs_rbmAZlZFgm8m8e8S9lmZD47I9sf44wjbYEqu99uVpgHb0PHa3aSYG8Pe3772kr9FWZ33iDrPL9Jr');
define('PAYPAL_WEBHOOK_ID', '58G68258926315914');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
}
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement backup <span class="text-uppercase">PROD
</div>
';
break;
/****************************
* Environnement PRODUCTION client *
****************************/
case "ms1inscription.com":
case "www.ms1inscription.com":
case "preprod.ms1inscription.com":
case "www.preprod.ms1inscription.com":
$vGoogleAnalytics = "";
$vblnEnvironementDev = false;
$blnShowErrors = false;
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.preprod.ms1inscription.com';
$vRepertoireFichiers = '/preprod';
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">TEST</span>' . $strConAdmin . '</strong>
</div>
';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'preprod');
fxSettingsUseCrmProfile($tabConnCrmClient);
$arrConFTP = array(
'host' => '127.0.0.1',
'user' => 'ms1inscription',
'pass' => 'ms1911',
'path_prod' => '/home/ms1incription/public_html',
'path_preprod'=> '/home/ms1incription/public_html/preprod'
);
$isPreprod = (strpos($strHost, 'preprod.') !== false);
if (!$isPreprod) {
$favicon = 'favicon.ico';
$faviconadm = 'favicon-rouge.ico';
fxSettingsUseDbProfiles($tabConnClientPreprod, $tabConnClientProd, 'prod');
$vblnEnvironementDev = false;
$vGoogleAnalytics = "";
$vPaypaladv = true;
$vPaypaladv_SANDBOX = false;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_client');
define('PAYPAL_ENV_FOOTER', 'prod_client');
define('PAYPAL_BASE_URL', 'https://api-m.paypal.com');
define('PAYPAL_CLIENT_ID', 'AU3fhK6opJ2cBkTghAHf02fsimwj345zn3TOPL5we3z0C9HNT_sU341OkIP9l-ucgE1JdBhmt3WlHb2v');
define('PAYPAL_CLIENT_SECRET', 'EDg0Y1ZxvUmrAxY9_-NZP3EsuoMRf2lu9st1mDn8Ha7f5z4hrk7_KKsu_tM_PSri86YuFRqbaVKBADlX');
define('PAYPAL_WEBHOOK_ID', '2EW679080K7814041');
define('PAYPAL_SANDBOX', false);
define('PAYPAL_CURRENCY', 'CAD');
if (isset($_SESSION['usa_id'])) {
$vEnvNotice = '
<div class="alert-warning py-2 text-center sticky-top">
<strong>Environnement Client <span class="text-uppercase">PROD</span>' . $strConAdmin . '</strong>
</div>
';
} else {
$vEnvNotice = '';
}
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://www.ms1inscription.com';
$vRepertoireFichiers = '';
$vGoogleAnalytics = "
<!-- Google tag (gtag.js) -->
<script async src=\"https://www.googletagmanager.com/gtag/js?id=G-9KF526LB6D\"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-8LEDDLNB94');
</script>
";
} else {
$favicon = 'favicon-jaune.ico';
$faviconadm = 'favicon-orange.ico';
$vblnEnvironementPreProd = true;
$vblnEnvironementDev = true;
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'prod_test');
define('PAYPAL_ENV_FOOTER', 'prod_test');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AXiOtwcCb4Vqf7QylPje-K2xp9lOIfCv_HMW8oWn1k8cRJJ0sSu_sVNjtQqaoDll9-vN8LpmfrqfI82d');
define('PAYPAL_CLIENT_SECRET', 'EEs_rbmAZlZFgm8m8e8S9lmZD47I9sf44wjbYEqu99uVpgHb0PHa3aSYG8Pe3772kr9FWZ33iDrPL9Jr');
define('PAYPAL_WEBHOOK_ID', '58G68258926315914');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
}
break;
/*************************
* Environnement dev (ms1inscriptiondev) *
*************************/
case "ms1inscriptiondev.progiweb.net":
case "preprod.ms1inscriptiondev.progiweb.net":
$vGoogleAnalytics = "";
$vblnEnvironementDev = true;
$blnShowErrors = true;
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://preprod.ms1inscriptiondev.progiweb.net';
$vRepertoireFichiers = '/preprod';
$vEnvNotice = '
<div class="alert-danger py-2 text-center sticky-top" >
<strong style="font-size: 1em;">
Environnement de Dévelopement<span class="text-uppercase">TEST</span>' . $strConAdmin . '
</strong>
</div>
';
fxSettingsUseDbProfiles($tabConnDevPreprod, $tabConnDevProd, 'preprod');
fxSettingsUseCrmProfile($tabConnCrmDev);
// Cross-BD client (tunnel/VPN) — sync_static_db.php, validation avant prod
$arrConDatabaseClientPreProd = $tabConnClientPreprod;
$arrConDatabaseClientProd = $tabConnClientProd;
$arrConFTP = array(
'host' => '127.0.0.1',
'user' => 'ms1inscription',
'pass' => 'ms1911',
'path_prod' => '/home/devinscription/public_html',
'path_preprod'=> '/home/devinscription/public_html/preprod'
);
$isPreprod = (strpos($strHost, 'preprod.') !== false);
if (!$isPreprod) {
$vEnvNotice = '
<div class="alert-danger py-2 text-center sticky-top">
<strong>Environnement de Dévelopement <span class="text-uppercase">client</span>' . $strConAdmin . '</strong>
</div>
';
$favicon = 'favicon-blan-dev.ico';
$faviconadm = 'favicon-rouge-dev.ico';
fxSettingsUseDbProfiles($tabConnDevPreprod, $tabConnDevProd, 'prod');
$vblnEnvironementDev = false;
$vGoogleAnalytics = "";
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'dev_client');
define('PAYPAL_ENV_FOOTER', 'dev_client');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AQXvt0u9caqG-l_S5H-qFra-rEGiDifuk-eCa1DeylT0o4Vgc6RpnHQfMZt7lREyWH8nur6-_cgGtazF');
define('PAYPAL_CLIENT_SECRET', 'EOsLApT-17U2hU2bm0wXl0ZRqCg0eBaXTr9iz97LLziMHUt8nwi8ymgcDkkJ_msbBCZnOlR8IOw1KpTH');
define('PAYPAL_WEBHOOK_ID', '5AD874137H322344J');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
$vDomaine = $vDomaine2 = $vDomaineTiming = 'https://ms1inscriptiondev.progiweb.net';
$vRepertoireFichiers = '';
} else {
$favicon = 'favicon-jaune-dev.ico';
$faviconadm = 'favicon-orange-dev.ico';
$vblnEnvironementPreProd = true;
$vPaypaladv = true;
$vPaypaladv_SANDBOX = true;
$vPaypal_devise = 'CAD';
define('PAYPAL_ENV', 'dev_test');
define('PAYPAL_ENV_FOOTER', 'dev_test');
define('PAYPAL_BASE_URL', 'https://api-m.sandbox.paypal.com');
define('PAYPAL_CLIENT_ID', 'AXLKhIIMWSaiLlNi6EqDK7zU5c65J7hEXAZUauPm_Nnd-5A3vxO81QZej3X0T1pgiZ9Wki_FexheCPgB');
define('PAYPAL_CLIENT_SECRET', 'EEEZPzN0mTANRpj1e2KdP-U0x8UpHKjktbITVLDr2STpwnNkvKMDQ66XcdJyrK0yIsjcW4UjTY7cUr9N');
define('PAYPAL_WEBHOOK_ID', '87T78443WB181490Y');
define('PAYPAL_SANDBOX', true);
define('PAYPAL_CURRENCY', 'CAD');
}
break;
}
/*****************************
*
* Connexion base de données *
*
*****************************/
$arrConDatabaseMain = array(
'host' => $strDatabaseHost,
'user' => $strDatabaseUser,
'pass' => $strDatabasePass,
'db' => $strDatabaseMain
);
$arrConDatabaseProd = array(
'host' => $strDatabaseHost,
'user' => $strDatabaseUser,
'pass' => $strDatabasePass,
'db' => $strDatabaseProd
);
$arrConDatabasePreProd = array(
'host' => $strDatabaseHost,
'user' => $strDatabaseUser,
'pass' => $strDatabasePass,
'db' => $strDatabasePreProd
);
$arrConDatabasecrm = array(
'host' => $strDatabaseHostcrm,
'user' => $strDatabaseUsercrm,
'pass' => $strDatabasePasscrm,
'db' => $strDatabaseMaincrm
);
/************************************
*
* Affichage des messages d'erreurs *
*
************************************/
if ($blnShowErrors) {
error_reporting(E_ALL);
ini_set('display_errors', false);
ini_set('display_startup_errors', TRUE);
define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br>');
}
// MSIN-3855
require_once $_SERVER['DOCUMENT_ROOT'] . "/paypal_advanced/config.php";